From ddef0314086a9ef595b6cbc43f60bbe08343ca7e Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Thu, 1 Nov 2012 21:46:46 +0100 Subject: [PATCH] can-calc-bit-timing: add support for ti_hecc Acked-by: Oliver Hartkopp Signed-off-by: Marc Kleine-Budde --- can-calc-bit-timing.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/can-calc-bit-timing.c b/can-calc-bit-timing.c index d97ebe6..a9fb992 100644 --- a/can-calc-bit-timing.c +++ b/can-calc-bit-timing.c @@ -199,6 +199,23 @@ static void printf_btr_mcp251x(struct can_bittiming *bt, int hdr) } } +static void printf_btr_ti_hecc(struct can_bittiming *bt, int hdr) +{ + if (hdr) { + printf("%10s", "CANBTC"); + } else { + uint32_t can_btc; + + can_btc = (bt->phase_seg2 - 1) & 0x7; + can_btc |= ((bt->phase_seg1 + bt->prop_seg - 1) + & 0xF) << 3; + can_btc |= ((bt->sjw - 1) & 0x3) << 8; + can_btc |= ((bt->brp - 1) & 0xFF) << 16; + + printf("0x%08x", can_btc); + } +} + static struct can_bittiming_const can_calc_consts[] = { { .name = "sja1000", @@ -397,6 +414,20 @@ static struct can_bittiming_const can_calc_consts[] = { .ref_clk = 16000000, .printf_btr = printf_btr_mcp251x, }, + { + .name = "ti_hecc", + .tseg1_min = 1, + .tseg1_max = 16, + .tseg2_min = 1, + .tseg2_max = 8, + .sjw_max = 4, + .brp_min = 1, + .brp_max = 256, + .brp_inc = 1, + + .ref_clk = 13000000, + .printf_btr = printf_btr_ti_hecc, + } }; static long common_bitrates[] = { -- 2.39.2