Commit Graph

35 Commits (eac93ced80f0ef2ec109f6f560af45069dcf795f)

Author SHA1 Message Date
Oliver Hartkopp 1665abf46f can-utils: fix missing include of libgen.h
The basename() function needs libgen.h to be included as otherwise this
will fail to compile in some environments.

Reported-by: Robert Schwebel <r.schwebel@pengutronix.de>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
2020-04-28 19:14:52 +02:00
Alexander GQ Gerasiov 211c5cea49 can-calc-bit-timing.c: Reformat help/usage output to be compatible with help2man.
Gbp-Pq: Name 0020-can-calc-bit-timing.c-Reformat-help-usage-output-to-.patch
2020-04-27 08:20:09 +03:00
Alexander Gerasiov f4a9e5b57d can-calc-bit-timing.c: Reformat help/usage output to be compatible with help2man.
Signed-off-by: Alexander Gerasiov <gq@debian.org>

Gbp-Pq: Name 0003-can-calc-bit-timing.c-Reformat-help-usage-output-to-.patch
2020-04-27 08:20:08 +03:00
Yegor Yefremov 59f92965b9 Relicense GPL-2.0-or-later files to GPL-2.0-only
This way all licenses in the project will be homogenised.

Acked-by: Marc Kleine-Budde <mkl@pengutronix.de>
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Acked-by: Sven Schmitt <sven.schmitt@gmx.net>
Acked-by: Oleksij Rempel <ore@pengutronix.de>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Brennan Ashton <bashton@brennanashton.com>
Acked-By: IOhannes m zmölnig <zmoelnig@iem.at>
Acked-by: Frank Theile <ftheile@grundfos.com>
Acked-by: Wolfgang Grandegger <wg@grandegger.com>
Acked-by: Jeremiah Mahler <jmmahler@gmail.com>
Acked-by: Jonathan Challinger <mr.challinger@gmail.com>
Acked-by: Cheng-Lung Lee <chenglung@gmail.com>
Acked-by: Ramesh Shanmugasundaram <rashanmu@gmail.com>
Acked-by: Mans Rullgard <mans@mansr.com>
Acked-by: Søren Holm <sgh@sgh.dk>
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
2019-07-10 14:01:23 +02:00
Yegor Yefremov 7b7331976a Add SPDX identifiers
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
2019-06-19 12:24:24 +02:00
Marc Kleine-Budde b70a76670d can-calc-bit-timing: fix getopt typo: p -> q
Reported-by: Jon Neal <reportingsjr@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-05-24 08:34:44 +02:00
Marc Kleine-Budde 2920d41731 can-calc-bit-timing: add name parameter to ref clock
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-15 12:05:56 +02:00
Marc Kleine-Budde 588a19c95d can-calc-bit-timing: make it possible to have several ref clocks per bit timing definition
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-15 12:04:43 +02:00
Marc Kleine-Budde 6265825182 can-calc-bit-timint: rename bitrate -> bitrate_nominal
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-15 12:03:28 +02:00
Marc Kleine-Budde 798afd077a can-calc-bit-timint: rename spt_target, sample_point -> spt_nominal
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-15 12:02:18 +02:00
Marc Kleine-Budde 44a2900bd8 can-calc-bit-timing: better sample point calculation
This patch tries to optimize the calculation of the sample point. To
understand what it does have a look at the original implementation.

If there is a combination of timing parameters where both the bitrate
and sample point error are 0 the current implementation will find it.

However if the reference clock doesn't allow an optimal bitrate (this
means the bitrate error is always != 0) there might be several timing
parameter combinations having the same bitrate error. The original
implementation will allways choose the one with the highest brp. The
actual sample point error isn't taken into account.

This patch changes the algorithm to minimize the sample point error,
too. Now a brp/tseg combination is accepted as better if one of these
condition are fulfilled:
1) the bit rate error must be smaller, or
2) the bit rate error must be equal and
   the sample point error must be equal or smaller

If a smaller bit rate error is found the sample point error is reset.
This ensures that we first optimize for small bit rate error and then
for small sample point errors.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:01 +02:00
Marc Kleine-Budde e36391c7d9 can-calc-bit-timing: introduce CAN_CALC_SYNC_SEG
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:01 +02:00
Marc Kleine-Budde 94e40d3c2d can-calc-bit-timing: fix checkpatch warnings
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:01 +02:00
Marc Kleine-Budde 197700d26e can-calc-bit-timing: import current can_calc_bittiming() from kernel
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:01 +02:00
Marc Kleine-Budde 95f62518d1 can-calc-bit-timing: import helper macros from kernel
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:01 +02:00
Marc Kleine-Budde 9ae9e7da02 can-calc-bit-timing: use "struct can_bittiming_const" from uapi headers
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:13:00 +02:00
Marc Kleine-Budde bc41784773 can-calc-bit-timing: make use of bool
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:12:16 +02:00
Marc Kleine-Budde a31b27f420 can-calc-bit-timing: fix checkpatch warnings
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:12:16 +02:00
Marc Kleine-Budde 8c703db361 can-calc-bit-timing: add support flexcan with 30MHz refclock
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-04-13 13:11:53 +02:00
Ramesh Shanmugasundaram c689803204 can-calc-bit-timing: add support for rcar_can
Signed-off-by: Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2016-02-29 11:27:05 +01:00
Marc Kleine-Budde 58716c1c29 can-calc-bit-timing: add some more timings for mscan and flexcan
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2015-06-30 21:04:13 +02:00
Wolfgang Grandegger 67a2bdcd33 can-calc-bit-timing: add a proper GNU license agreement
Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-02-27 22:08:04 +01:00
Brennan Ashton 31936b5a17 can-calc-bit-timing: fix MCP251x bit rate calculation
This patch adds the missing -1 to "bt->brp", as correctly used in the kernel
driver.

Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-01-06 10:35:45 +01:00
Uwe Kleine-König 03c1bacfde can-utils: trivial: fix typos concerning "separation" and "useful"
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
2013-08-15 21:09:27 +02:00
Marc Kleine-Budde ddef031408 can-calc-bit-timing: add support for ti_hecc
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2012-11-26 21:57:57 +01:00
Marc Kleine-Budde 423f018b30 can-calc-bit-timing: add 66.66 MHz mscan refclock
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2012-11-26 21:57:54 +01:00
Marc Kleine-Budde 3c89d3ab55 can-calc-bit-timing: add 24 and 66 MHz flexcan ref clock
as found on some imx boards.

Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2012-11-26 21:57:52 +01:00
Oliver Hartkopp 589fa16c27 removed unused variable warnings by removing the variables
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
2012-11-14 20:43:55 +01:00
Marc Kleine-Budde f5576a9833 can-calc-bit-timing: remove rtcantl1
No one can verify the timing parameters to be correct.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2010-07-20 14:10:38 +00:00
Marc Kleine-Budde 5c74d8d806 can-calc-bit-timing: add more can controller definitions and ref clocks
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2010-07-20 13:43:20 +00:00
Marc Kleine-Budde b9f9cd0c62 can-calc-bit-timing: calculate bit timings for all known controllers by default
When testing or improving the bit timing algorithm, you're probably
interested in the values of all can controllers. Further you might not
know the all reference clocks of the controllers.

This patch add a "ref_clock" member to the "struct can_bittiming_const"
that holds the reference clock of the controller in Hz.

By default now the bit timing is calculated for all known can
controllers with the default ref_clock defined in "can_bittiming_const".

It's still possible to overwrite the ref clock with the command line
option "-c".

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2010-07-20 13:43:16 +00:00
Marc Kleine-Budde 26488b16e6 can-calc-bit-timing: improve printing of bit timing parameters
This patch adds additional fields when printing the bit timing
parameters. Now the real bitrate the nominal and the real sample point
as well as the error of the sample point is displayed.

The output now looks like this:

Bit timing parameters for at91 with 100.000000 MHz ref clock
nominal                                 real Bitrt   nom  real SampP
Bitrate TQ[ns] PrS PhS1 PhS2 SJW BRP Bitrate Error SampP SampP Error     CAN_BR
1000000     50   7    7    5   1   5 1000000  0.0% 75.0% 75.0%  0.0% 0x00040664
 800000     50   8    8    8   1   5  800000  0.0% 80.0% 68.0% 15.0% 0x00040777
 500000    100   8    8    3   1  10  500000  0.0% 87.5% 85.0%  2.9% 0x00090772
 250000    250   6    7    2   1  25  250000  0.0% 87.5% 87.5%  0.0% 0x00180561
 125000    500   6    7    2   1  50  125000  0.0% 87.5% 87.5%  0.0% 0x00310561
 100000    500   8    8    3   1  50  100000  0.0% 87.5% 85.0%  2.9% 0x00310772
  50000   1250   6    7    2   1 125   50000  0.0% 87.5% 87.5%  0.0% 0x007c0561
  20000 ***bitrate not possible***
  10000 ***bitrate not possible***

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2010-07-20 13:43:12 +00:00
Marc Kleine-Budde ccd199739e can-calc-bit-timing: use algorithm from the kernel
This patch copies the algorithm functions (can_update_spt and
can_calc_bittiming) from the kernel. Then some glue code is added that
these functions compile in userspace.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2010-07-20 13:43:08 +00:00
Marc Kleine-Budde daed6be029 can-calc-bit-timing: fix indention
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2010-07-20 13:43:04 +00:00
Marc Kleine-Budde fa9c05021c add can-calc-bit-timing
Add the tool as sent by Wolfgang via email
(<4BE152D2.6060306@grandegger.com>).

Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2010-07-20 13:42:57 +00:00