net: fec: Add initial s32v234 support
authorWei Fang <wei.fang@nxp.com>
Wed, 7 Sep 2022 09:56:49 +0000 (17:56 +0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 20 Sep 2022 00:57:26 +0000 (17:57 -0700)
Update Kconfig to also check for ARCH_S32.
Add compatible string and quirks for fsl,s32v234

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/Kconfig
drivers/net/ethernet/freescale/fec_main.c

index e04e1c5..b7bf45c 100644 (file)
@@ -9,7 +9,7 @@ config NET_VENDOR_FREESCALE
        depends on FSL_SOC || QUICC_ENGINE || CPM1 || CPM2 || PPC_MPC512x || \
                   M523x || M527x || M5272 || M528x || M520x || M532x || \
                   ARCH_MXC || ARCH_MXS || (PPC_MPC52xx && PPC_BESTCOMM) || \
-                  ARCH_LAYERSCAPE || COMPILE_TEST
+                  ARCH_LAYERSCAPE || ARCH_S32 || COMPILE_TEST
        help
          If you have a network (Ethernet) card belonging to this class, say Y.
 
@@ -23,7 +23,7 @@ if NET_VENDOR_FREESCALE
 config FEC
        tristate "FEC ethernet controller (of ColdFire and some i.MX CPUs)"
        depends on (M523x || M527x || M5272 || M528x || M520x || M532x || \
-                  ARCH_MXC || SOC_IMX28 || COMPILE_TEST)
+                  ARCH_MXC || ARCH_S32 || SOC_IMX28 || COMPILE_TEST)
        default ARCH_MXC || SOC_IMX28 if ARM
        depends on PTP_1588_CLOCK_OPTIONAL
        select CRC32
@@ -31,7 +31,7 @@ config FEC
        imply NET_SELFTESTS
        help
          Say Y here if you want to use the built-in 10/100 Fast ethernet
-         controller on some Motorola ColdFire and Freescale i.MX processors.
+         controller on some Motorola ColdFire and Freescale i.MX/S32 processors.
 
 config FEC_MPC52xx
        tristate "FEC MPC52xx driver"
index 9a27b71..d8b487f 100644 (file)
@@ -156,6 +156,13 @@ static const struct fec_devinfo fec_imx8qm_info = {
                  FEC_QUIRK_DELAYED_CLKS_SUPPORT,
 };
 
+static const struct fec_devinfo fec_s32v234_info = {
+       .quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
+                 FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
+                 FEC_QUIRK_HAS_VLAN | FEC_QUIRK_HAS_AVB |
+                 FEC_QUIRK_ERR007885 | FEC_QUIRK_BUG_CAPTURE,
+};
+
 static struct platform_device_id fec_devtype[] = {
        {
                /* keep it for coldfire */
@@ -189,6 +196,9 @@ static struct platform_device_id fec_devtype[] = {
                .name = "imx8qm-fec",
                .driver_data = (kernel_ulong_t)&fec_imx8qm_info,
        }, {
+               .name = "s32v234-fec",
+               .driver_data = (kernel_ulong_t)&fec_s32v234_info,
+       }, {
                /* sentinel */
        }
 };
@@ -204,6 +214,7 @@ enum imx_fec_type {
        IMX6UL_FEC,
        IMX8MQ_FEC,
        IMX8QM_FEC,
+       S32V234_FEC,
 };
 
 static const struct of_device_id fec_dt_ids[] = {
@@ -216,6 +227,7 @@ static const struct of_device_id fec_dt_ids[] = {
        { .compatible = "fsl,imx6ul-fec", .data = &fec_devtype[IMX6UL_FEC], },
        { .compatible = "fsl,imx8mq-fec", .data = &fec_devtype[IMX8MQ_FEC], },
        { .compatible = "fsl,imx8qm-fec", .data = &fec_devtype[IMX8QM_FEC], },
+       { .compatible = "fsl,s32v234-fec", .data = &fec_devtype[S32V234_FEC], },
        { /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, fec_dt_ids);