| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | From 7ff112c7b144fb084f28f944d7021cd04acabecd Mon Sep 17 00:00:00 2001 |
| 2 | From: Joakim Zhang <qiangqing.zhang@nxp.com> |
| 3 | Date: Fri, 12 Jul 2019 08:02:59 +0000 |
| 4 | Subject: [PATCH] can: flexcan: add imx8qm support |
| 5 | |
| 6 | The Flexcan on i.MX8QM supports CAN FD protocol. |
| 7 | |
| 8 | Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com> |
| 9 | Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> |
| 10 | --- |
| 11 | drivers/net/can/flexcan.c | 26 +++++++++++++++++--------- |
| 12 | 1 file changed, 17 insertions(+), 9 deletions(-) |
| 13 | |
| 14 | --- a/drivers/net/can/flexcan.c |
| 15 | +++ b/drivers/net/can/flexcan.c |
| 16 | @@ -200,15 +200,16 @@ |
| 17 | /* FLEXCAN hardware feature flags |
| 18 | * |
| 19 | * Below is some version info we got: |
| 20 | - * SOC Version IP-Version Glitch- [TR]WRN_INT IRQ Err Memory err RTR re- |
| 21 | - * Filter? connected? Passive detection ception in MB |
| 22 | - * MX25 FlexCAN2 03.00.00.00 no no no no no |
| 23 | - * MX28 FlexCAN2 03.00.04.00 yes yes no no no |
| 24 | - * MX35 FlexCAN2 03.00.00.00 no no no no no |
| 25 | - * MX53 FlexCAN2 03.00.00.00 yes no no no no |
| 26 | - * MX6s FlexCAN3 10.00.12.00 yes yes no no yes |
| 27 | - * VF610 FlexCAN3 ? no yes no yes yes? |
| 28 | - * LS1021A FlexCAN2 03.00.04.00 no yes no no yes |
| 29 | + * SOC Version IP-Version Glitch- [TR]WRN_INT IRQ Err Memory err RTR rece- FD Mode |
| 30 | + * Filter? connected? Passive detection ption in MB Supported? |
| 31 | + * MX25 FlexCAN2 03.00.00.00 no no no no no no |
| 32 | + * MX28 FlexCAN2 03.00.04.00 yes yes no no no no |
| 33 | + * MX35 FlexCAN2 03.00.00.00 no no no no no no |
| 34 | + * MX53 FlexCAN2 03.00.00.00 yes no no no no no |
| 35 | + * MX6s FlexCAN3 10.00.12.00 yes yes no no yes no |
| 36 | + * MX8QM FlexCAN3 03.00.23.00 yes yes no no yes yes |
| 37 | + * VF610 FlexCAN3 ? no yes no yes yes? no |
| 38 | + * LS1021A FlexCAN2 03.00.04.00 no yes no no yes no |
| 39 | * |
| 40 | * Some SOCs do not have the RX_WARN & TX_WARN interrupt line connected. |
| 41 | */ |
| 42 | @@ -347,6 +348,12 @@ static const struct flexcan_devtype_data |
| 43 | FLEXCAN_QUIRK_SETUP_STOP_MODE, |
| 44 | }; |
| 45 | |
| 46 | +static struct flexcan_devtype_data fsl_imx8qm_devtype_data = { |
| 47 | + .quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS | |
| 48 | + FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | FLEXCAN_QUIRK_BROKEN_PERR_STATE | |
| 49 | + FLEXCAN_QUIRK_TIMESTAMP_SUPPORT_FD, |
| 50 | +}; |
| 51 | + |
| 52 | static const struct flexcan_devtype_data fsl_vf610_devtype_data = { |
| 53 | .quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS | |
| 54 | FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | |
| 55 | @@ -1775,6 +1782,7 @@ out_put_node: |
| 56 | } |
| 57 | |
| 58 | static const struct of_device_id flexcan_of_match[] = { |
| 59 | + { .compatible = "fsl,imx8qm-flexcan", .data = &fsl_imx8qm_devtype_data, }, |
| 60 | { .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, }, |
| 61 | { .compatible = "fsl,imx28-flexcan", .data = &fsl_imx28_devtype_data, }, |
| 62 | { .compatible = "fsl,imx53-flexcan", .data = &fsl_imx25_devtype_data, }, |