return (void *)&dev->priv;
}
-static void print_usage(char* cmd)
+static void print_usage(char *cmd)
{
printf("Usage: %s [options] [<CAN-contoller-name>]\n"
"\tOptions:\n"
}
}
+#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",
.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,
.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,
},
.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,
.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[] = {