657082caec009e860469c76e7972012ba0ce9467
[openwrt/staging/blocktrron.git] /
1 From 6a892e9147ff5b6a21a752326841869427068f01 Mon Sep 17 00:00:00 2001
2 From: Chircu-Mare Bogdan-Petru <Bogdan.Chircu@freescale.com>
3 Date: Tue, 3 Nov 2015 17:25:46 +0200
4 Subject: [PATCH] can: flexcan: Add S32V234 support to FlexCAN driver
5
6 The FlexCAN driver is compatible with the modules on S32V234 chips.
7
8 Signed-off-by: Chircu-Mare Bogdan-Petru <Bogdan.Chircu@freescale.com>
9 Signed-off-by: Dan Nica <dan.nica@nxp.com>
10 Signed-off-by: Stefan-Gabriel Mirea <stefan-gabriel.mirea@nxp.com>
11 Reviewed-by: Li Yang <leoyang.li@nxp.com>
12 Reviewed-by: Joakim Zhang <qiangqing.zhang@nxp.com>
13 Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
14 ---
15 drivers/net/can/flexcan.c | 7 +++++++
16 1 file changed, 7 insertions(+)
17
18 --- a/drivers/net/can/flexcan.c
19 +++ b/drivers/net/can/flexcan.c
20 @@ -6,6 +6,7 @@
21 // Copyright (c) 2009 Sascha Hauer, Pengutronix
22 // Copyright (c) 2010-2017 Pengutronix, Marc Kleine-Budde <kernel@pengutronix.de>
23 // Copyright (c) 2014 David Jander, Protonic Holland
24 +// Copyright 2015, 2018 NXP
25 //
26 // Based on code originally by Andrey Volkov <avolkov@varma-el.com>
27
28 @@ -384,6 +385,10 @@ static const struct flexcan_devtype_data
29 FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
30 };
31
32 +static struct flexcan_devtype_data fsl_s32v234_devtype_data = {
33 + .quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_DISABLE_MECR,
34 +};
35 +
36 static const struct can_bittiming_const flexcan_bittiming_const = {
37 .name = DRV_NAME,
38 .tseg1_min = 4,
39 @@ -1862,6 +1867,8 @@ static const struct of_device_id flexcan
40 { .compatible = "fsl,vf610-flexcan", .data = &fsl_vf610_devtype_data, },
41 { .compatible = "fsl,ls1021ar2-flexcan", .data = &fsl_ls1021a_r2_devtype_data, },
42 { .compatible = "fsl,lx2160ar1-flexcan", .data = &fsl_lx2160a_r1_devtype_data, },
43 + { .compatible = "fsl,s32v234-flexcan",
44 + .data = &fsl_s32v234_devtype_data, },
45 { /* sentinel */ },
46 };
47 MODULE_DEVICE_TABLE(of, flexcan_of_match);