blob: b12534c8d30def2df24769367afef12a5f9974eb [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001From 6a892e9147ff5b6a21a752326841869427068f01 Mon Sep 17 00:00:00 2001
2From: Chircu-Mare Bogdan-Petru <Bogdan.Chircu@freescale.com>
3Date: Tue, 3 Nov 2015 17:25:46 +0200
4Subject: [PATCH] can: flexcan: Add S32V234 support to FlexCAN driver
5
6The FlexCAN driver is compatible with the modules on S32V234 chips.
7
8Signed-off-by: Chircu-Mare Bogdan-Petru <Bogdan.Chircu@freescale.com>
9Signed-off-by: Dan Nica <dan.nica@nxp.com>
10Signed-off-by: Stefan-Gabriel Mirea <stefan-gabriel.mirea@nxp.com>
11Reviewed-by: Li Yang <leoyang.li@nxp.com>
12Reviewed-by: Joakim Zhang <qiangqing.zhang@nxp.com>
13Reviewed-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@@ -1868,6 +1873,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);