From: Joakim Zhang <qiangqing.zh...@nxp.com>

The Flexcan on i.MX8QM supports CAN FD protocol.

Signed-off-by: Joakim Zhang <qiangqing.zh...@nxp.com>
Link: https://lore.kernel.org/r/20190712075926.7357-8-qiangqing.zh...@nxp.com
Signed-off-by: Marc Kleine-Budde <m...@pengutronix.de>
---
 drivers/net/can/flexcan.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index fc98b5d521f2..5f778c961a0c 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -206,15 +206,16 @@
 /* FLEXCAN hardware feature flags
  *
  * Below is some version info we got:
- *    SOC   Version   IP-Version  Glitch- [TR]WRN_INT IRQ Err Memory err RTR 
re-
- *                                Filter? connected?  Passive detection  
ception in MB
- *   MX25  FlexCAN2  03.00.00.00     no        no        no       no        no
- *   MX28  FlexCAN2  03.00.04.00    yes       yes        no       no        no
- *   MX35  FlexCAN2  03.00.00.00     no        no        no       no        no
- *   MX53  FlexCAN2  03.00.00.00    yes        no        no       no        no
- *   MX6s  FlexCAN3  10.00.12.00    yes       yes        no       no       yes
- *   VF610 FlexCAN3  ?               no       yes        no      yes       yes?
- * LS1021A FlexCAN2  03.00.04.00     no       yes        no       no       yes
+ *    SOC   Version   IP-Version  Glitch- [TR]WRN_INT IRQ Err Memory err RTR 
rece-   FD Mode
+ *                                Filter? connected?  Passive detection  ption 
in MB Supported?
+ *   MX25  FlexCAN2  03.00.00.00     no        no        no       no        no 
          no
+ *   MX28  FlexCAN2  03.00.04.00    yes       yes        no       no        no 
          no
+ *   MX35  FlexCAN2  03.00.00.00     no        no        no       no        no 
          no
+ *   MX53  FlexCAN2  03.00.00.00    yes        no        no       no        no 
          no
+ *   MX6s  FlexCAN3  10.00.12.00    yes       yes        no       no       yes 
          no
+ *   MX8QM FlexCAN3  03.00.23.00    yes       yes        no       no       yes 
         yes
+ *   VF610 FlexCAN3  ?               no       yes        no      yes       
yes?          no
+ * LS1021A FlexCAN2  03.00.04.00     no       yes        no       no       yes 
          no
  *
  * Some SOCs do not have the RX_WARN & TX_WARN interrupt line connected.
  */
@@ -368,6 +369,12 @@ static const struct flexcan_devtype_data 
fsl_imx6q_devtype_data = {
                FLEXCAN_QUIRK_SETUP_STOP_MODE,
 };
 
+static const struct flexcan_devtype_data fsl_imx8qm_devtype_data = {
+       .quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
+               FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | 
FLEXCAN_QUIRK_BROKEN_PERR_STATE |
+               FLEXCAN_QUIRK_SUPPORT_FD,
+};
+
 static const struct flexcan_devtype_data fsl_vf610_devtype_data = {
        .quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
                FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP |
@@ -1830,6 +1837,7 @@ static int flexcan_setup_stop_mode(struct platform_device 
*pdev)
 }
 
 static const struct of_device_id flexcan_of_match[] = {
+       { .compatible = "fsl,imx8qm-flexcan", .data = &fsl_imx8qm_devtype_data, 
},
        { .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, },
        { .compatible = "fsl,imx28-flexcan", .data = &fsl_imx28_devtype_data, },
        { .compatible = "fsl,imx53-flexcan", .data = &fsl_imx25_devtype_data, },
-- 
2.28.0

Reply via email to