]> rtime.felk.cvut.cz Git - can-utils.git/blobdiff - can-calc-bit-timing.c
can-calc-bit-timing: fix checkpatch warnings
[can-utils.git] / can-calc-bit-timing.c
index 36ff1e97024690b8e59abb27a852e05bd2327999..6e9fc39eaa2d98b8f615089e16fa33ca542b3bf1 100644 (file)
@@ -130,7 +130,7 @@ static inline void *netdev_priv(const struct net_device *dev)
        return (void *)&dev->priv;
 }
 
-static void print_usage(charcmd)
+static void print_usage(char *cmd)
 {
        printf("Usage: %s [options] [<CAN-contoller-name>]\n"
               "\tOptions:\n"
@@ -219,6 +219,27 @@ static void printf_btr_ti_hecc(struct can_bittiming *bt, int hdr)
        }
 }
 
+#define RCAR_CAN_BCR_TSEG1(x)  (((x) & 0x0f) << 20)
+#define RCAR_CAN_BCR_BPR(x)    (((x) & 0x3ff) << 8)
+#define RCAR_CAN_BCR_SJW(x)    (((x) & 0x3) << 4)
+#define RCAR_CAN_BCR_TSEG2(x)  ((x) & 0x07)
+
+static void printf_btr_rcar_can(struct can_bittiming *bt, int hdr)
+{
+       if (hdr) {
+               printf("%10s", "CiBCR");
+       } else {
+               uint32_t bcr;
+
+               bcr = RCAR_CAN_BCR_TSEG1(bt->phase_seg1 + bt->prop_seg - 1) |
+                       RCAR_CAN_BCR_BPR(bt->brp - 1) |
+                       RCAR_CAN_BCR_SJW(bt->sjw - 1) |
+                       RCAR_CAN_BCR_TSEG2(bt->phase_seg2 - 1);
+
+               printf("0x%08x", bcr << 8);
+       }
+}
+
 static struct can_bittiming_const can_calc_consts[] = {
        {
                .name = "sja1000",
@@ -304,6 +325,20 @@ static struct can_bittiming_const can_calc_consts[] = {
                .ref_clk = 66660000,    /* mpc5121 */
                .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 = 66666666,    /* mpc5121 */
+               .printf_btr = printf_btr_sja1000,
+       },
        {
                .name = "at91",
                .tseg1_min = 4,
@@ -358,6 +393,20 @@ static struct can_bittiming_const can_calc_consts[] = {
                .brp_max = 256,
                .brp_inc = 1,
 
+               .ref_clk = 30000000,    /* mx6 */
+               .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,
        },
@@ -389,6 +438,34 @@ static struct can_bittiming_const can_calc_consts[] = {
                .ref_clk = 66500000,
                .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 = 66666666,
+               .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 = 83368421,
+               .printf_btr = printf_btr_flexcan, /* vybrid */
+       },
        {
                .name = "mcp251x",
                .tseg1_min = 3,
@@ -430,7 +507,21 @@ static struct can_bittiming_const can_calc_consts[] = {
 
                .ref_clk = 13000000,
                .printf_btr = printf_btr_ti_hecc,
-       }
+       },
+       {
+               .name = "rcar_can",
+               .tseg1_min = 4,
+               .tseg1_max = 16,
+               .tseg2_min = 2,
+               .tseg2_max = 8,
+               .sjw_max = 4,
+               .brp_min = 1,
+               .brp_max = 1024,
+               .brp_inc = 1,
+
+               .ref_clk = 65000000,
+               .printf_btr = printf_btr_rcar_can,
+       },
 };
 
 static long common_bitrates[] = {