]> rtime.felk.cvut.cz Git - socketcan-devel.git/commitdiff
can-calc-bit-timing: add more can controller definitions and ref clocks
authorbet-frogger <bet-frogger@030b6a49-0b11-0410-94ab-b0dab22257f2>
Tue, 20 Jul 2010 13:43:20 +0000 (13:43 +0000)
committerbet-frogger <bet-frogger@030b6a49-0b11-0410-94ab-b0dab22257f2>
Tue, 20 Jul 2010 13:43:20 +0000 (13:43 +0000)
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
git-svn-id: svn://svn.berlios.de//socketcan/trunk@1189 030b6a49-0b11-0410-94ab-b0dab22257f2

can-utils/can-calc-bit-timing.c

index a060ae53245d504016d641da7c19c141eb712d26..95bc79655037ef75cf478726a210d5ababe5a99a 100644 (file)
@@ -170,6 +170,21 @@ static void printf_btr_at91(struct can_bittiming *bt, int hdr)
        }
 }
 
+static void printf_btr_flexcan(struct can_bittiming *bt, int hdr)
+{
+       if (hdr) {
+               printf("%10s", "CAN_CTRL");
+       } else {
+               uint32_t ctrl = (((bt->brp        - 1) << 24) |
+                                ((bt->sjw        - 1) << 22) |
+                                ((bt->phase_seg1 - 1) << 19) |
+                                ((bt->phase_seg2 - 1) << 16) |
+                                ((bt->prop_seg   - 1) <<  0));
+
+               printf("0x%08x", ctrl);
+       }
+}
+
 static void printf_btr_mcp251x(struct can_bittiming *bt, int hdr)
 {
        uint8_t cnf1, cnf2, cnf3;
@@ -225,9 +240,51 @@ static struct can_bittiming_const can_calc_consts[] = {
                .brp_max = 64,
                .brp_inc = 1,
 
+               .ref_clk = 32000000,
+               .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 = 33000000,
                .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 = 33300000,
+               .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 = 33333333,
+               .printf_btr = printf_btr_sja1000,
+       },
        {
                .name = "at91",
                .tseg1_min = 4,
@@ -242,6 +299,63 @@ static struct can_bittiming_const can_calc_consts[] = {
                .ref_clk = 100000000,
                .printf_btr = printf_btr_at91,
        },
+       {
+               .name = "at91",
+               .tseg1_min = 4,
+               .tseg1_max = 16,
+               .tseg2_min = 2,
+               .tseg2_max = 8,
+               .sjw_max = 4,
+               .brp_min = 2,
+               .brp_max = 128,
+               .brp_inc = 1,
+
+               /* real world clock as found on the ronetix PM9263 */
+               .ref_clk = 99532800,
+               .printf_btr = printf_btr_at91,
+       },
+       {
+               .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,
+       },
+       {
+               .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,
+       },
+       {
+               .name = "mcp251x",
+               .tseg1_min = 3,
+               .tseg1_max = 16,
+               .tseg2_min = 2,
+               .tseg2_max = 8,
+               .sjw_max = 4,
+               .brp_min = 1,
+               .brp_max = 64,
+               .brp_inc = 1,
+
+               .ref_clk = 8000000,
+               .printf_btr = printf_btr_mcp251x,
+       },
        {
                .name = "mcp251x",
                .tseg1_min = 3,