]> rtime.felk.cvut.cz Git - sojka/can-utils.git/blobdiff - can-calc-bit-timing.c
can-utils: AOSP build clean up
[sojka/can-utils.git] / can-calc-bit-timing.c
index 95bc79655037ef75cf478726a210d5ababe5a99a..a9fb992bf8129f2f568b20c29035a035eceea638 100644 (file)
@@ -199,18 +199,20 @@ static void printf_btr_mcp251x(struct can_bittiming *bt, int hdr)
        }
 }
 
-static void printf_btr_rtcantl1(struct can_bittiming *bt, int hdr)
+static void printf_btr_ti_hecc(struct can_bittiming *bt, int hdr)
 {
-       uint16_t bcr0, bcr1;
-
        if (hdr) {
-               printf("__BCR0 __BCR1");
+               printf("%10s", "CANBTC");
        } else {
-               bcr1 = ((((bt->prop_seg + bt->phase_seg1 - 1) & 0x0F) << 12) |
-                       (((bt->phase_seg2 - 1) & 0x07) << 8) |
-                       (((bt->sjw - 1) & 0x03) << 4));
-               bcr0 =  ((bt->brp - 1) & 0xFF);
-               printf("0x%04x 0x%04x", bcr0, bcr1);
+               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);
        }
 }
 
@@ -285,6 +287,20 @@ static struct can_bittiming_const can_calc_consts[] = {
                .ref_clk = 33333333,
                .printf_btr = printf_btr_sja1000,
        },
+       {
+               .name = "mscan",
+               .tseg1_min = 4,
+               .tseg1_max = 16,
+               .tseg2_min = 2,
+               .tseg2_max = 8,
+               .sjw_max = 4,
+               .brp_min = 1,
+               .brp_max = 64,
+               .brp_inc = 1,
+
+               .ref_clk = 66660000,    /* mpc5121 */
+               .printf_btr = printf_btr_sja1000,
+       },
        {
                .name = "at91",
                .tseg1_min = 4,
@@ -325,6 +341,20 @@ static struct can_bittiming_const can_calc_consts[] = {
                .brp_max = 256,
                .brp_inc = 1,
 
+               .ref_clk = 24000000,    /* mx28 */
+               .printf_btr = printf_btr_flexcan,
+       },
+       {
+               .name = "flexcan",
+               .tseg1_min = 4,
+               .tseg1_max = 16,
+               .tseg2_min = 2,
+               .tseg2_max = 8,
+               .sjw_max = 4,
+               .brp_min = 1,
+               .brp_max = 256,
+               .brp_inc = 1,
+
                .ref_clk = 49875000,
                .printf_btr = printf_btr_flexcan,
        },
@@ -339,6 +369,20 @@ static struct can_bittiming_const can_calc_consts[] = {
                .brp_max = 256,
                .brp_inc = 1,
 
+               .ref_clk = 66000000,
+               .printf_btr = printf_btr_flexcan,
+       },
+       {
+               .name = "flexcan",
+               .tseg1_min = 4,
+               .tseg1_max = 16,
+               .tseg2_min = 2,
+               .tseg2_max = 8,
+               .sjw_max = 4,
+               .brp_min = 1,
+               .brp_max = 256,
+               .brp_inc = 1,
+
                .ref_clk = 66500000,
                .printf_btr = printf_btr_flexcan,
        },
@@ -371,19 +415,19 @@ static struct can_bittiming_const can_calc_consts[] = {
                .printf_btr = printf_btr_mcp251x,
        },
        {
-               .name = "rtcantl1",
-               .tseg1_min = 4,
+               .name = "ti_hecc",
+               .tseg1_min = 1,
                .tseg1_max = 16,
-               .tseg2_min = 2,
+               .tseg2_min = 1,
                .tseg2_max = 8,
                .sjw_max = 4,
                .brp_min = 1,
                .brp_max = 256,
                .brp_inc = 1,
 
-               .ref_clk = 8000000,
-               .printf_btr = printf_btr_rtcantl1,
-       },
+               .ref_clk = 13000000,
+               .printf_btr = printf_btr_ti_hecc,
+       }
 };
 
 static long common_bitrates[] = {
@@ -420,7 +464,7 @@ static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt)
 {
        struct can_priv *priv = netdev_priv(dev);
        const struct can_bittiming_const *btc = priv->bittiming_const;
-       long rate, best_rate = 0;
+       long rate = 0;
        long best_error = 1000000000, error = 0;
        int best_tseg = 0, best_brp = 0, brp = 0;
        int tsegall, tseg = 0, tseg1 = 0, tseg2 = 0;
@@ -472,7 +516,6 @@ static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt)
                }
                best_tseg = tseg / 2;
                best_brp = brp;
-               best_rate = rate;
                if (error == 0)
                        break;
        }