0001 # SPDX-License-Identifier: GPL-2.0-only
0002 config STMMAC_ETH
0003 tristate "STMicroelectronics Multi-Gigabit Ethernet driver"
0004 depends on HAS_IOMEM && HAS_DMA
0005 depends on PTP_1588_CLOCK_OPTIONAL
0006 select MII
0007 select PCS_XPCS
0008 select PAGE_POOL
0009 select PHYLINK
0010 select CRC32
0011 select RESET_CONTROLLER
0012 help
0013 This is the driver for the Ethernet IPs built around a
0014 Synopsys IP Core.
0015
0016 if STMMAC_ETH
0017
0018 config STMMAC_SELFTESTS
0019 bool "Support for STMMAC Selftests"
0020 depends on INET
0021 depends on STMMAC_ETH
0022 default n
0023 help
0024 This adds support for STMMAC Selftests using ethtool. Enable this
0025 feature if you are facing problems with your HW and submit the test
0026 results to the netdev Mailing List.
0027
0028 config STMMAC_PLATFORM
0029 tristate "STMMAC Platform bus support"
0030 depends on STMMAC_ETH
0031 select MFD_SYSCON
0032 default y
0033 help
0034 This selects the platform specific bus support for the stmmac driver.
0035 This is the driver used on several SoCs:
0036 STi, Allwinner, Amlogic Meson, Altera SOCFPGA.
0037
0038 If you have a controller with this interface, say Y or M here.
0039
0040 If unsure, say N.
0041
0042 if STMMAC_PLATFORM
0043
0044 config DWMAC_DWC_QOS_ETH
0045 tristate "Support for snps,dwc-qos-ethernet.txt DT binding."
0046 select CRC32
0047 select MII
0048 depends on OF && HAS_DMA
0049 help
0050 Support for chips using the snps,dwc-qos-ethernet.txt DT binding.
0051
0052 config DWMAC_GENERIC
0053 tristate "Generic driver for DWMAC"
0054 default STMMAC_PLATFORM
0055 help
0056 Generic DWMAC driver for platforms that don't require any
0057 platform specific code to function or is using platform
0058 data for setup.
0059
0060 config DWMAC_ANARION
0061 tristate "Adaptrum Anarion GMAC support"
0062 default ARC
0063 depends on OF && (ARC || COMPILE_TEST)
0064 help
0065 Support for Adaptrum Anarion GMAC Ethernet controller.
0066
0067 This selects the Anarion SoC glue layer support for the stmmac driver.
0068
0069 config DWMAC_INGENIC
0070 tristate "Ingenic MAC support"
0071 default MACH_INGENIC
0072 depends on OF && HAS_IOMEM && (MACH_INGENIC || COMPILE_TEST)
0073 select MFD_SYSCON
0074 help
0075 Support for ethernet controller on Ingenic SoCs.
0076
0077 This selects Ingenic SoCs glue layer support for the stmmac
0078 device driver. This driver is used on for the Ingenic SoCs
0079 MAC ethernet controller.
0080
0081 config DWMAC_IPQ806X
0082 tristate "QCA IPQ806x DWMAC support"
0083 default ARCH_QCOM
0084 depends on OF && (ARCH_QCOM || COMPILE_TEST)
0085 select MFD_SYSCON
0086 help
0087 Support for QCA IPQ806X DWMAC Ethernet.
0088
0089 This selects the IPQ806x SoC glue layer support for the stmmac
0090 device driver. This driver does not use any of the hardware
0091 acceleration features available on this SoC. Network devices
0092 will behave like standard non-accelerated ethernet interfaces.
0093
0094 Select the QCOM_SOCINFO config flag to enable specific dwmac
0095 fixup based on the ipq806x SoC revision.
0096
0097 config DWMAC_LPC18XX
0098 tristate "NXP LPC18xx/43xx DWMAC support"
0099 default ARCH_LPC18XX
0100 depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
0101 select MFD_SYSCON
0102 help
0103 Support for NXP LPC18xx/43xx DWMAC Ethernet.
0104
0105 config DWMAC_MEDIATEK
0106 tristate "MediaTek MT27xx GMAC support"
0107 depends on OF && (ARCH_MEDIATEK || COMPILE_TEST)
0108 help
0109 Support for MediaTek GMAC Ethernet controller.
0110
0111 This selects the MT2712 SoC support for the stmmac driver.
0112
0113 config DWMAC_MESON
0114 tristate "Amlogic Meson dwmac support"
0115 default ARCH_MESON
0116 depends on OF && COMMON_CLK && (ARCH_MESON || COMPILE_TEST)
0117 help
0118 Support for Ethernet controller on Amlogic Meson SoCs.
0119
0120 This selects the Amlogic Meson SoC glue layer support for
0121 the stmmac device driver. This driver is used for Meson6,
0122 Meson8, Meson8b and GXBB SoCs.
0123
0124 config DWMAC_OXNAS
0125 tristate "Oxford Semiconductor OXNAS dwmac support"
0126 default ARCH_OXNAS
0127 depends on OF && COMMON_CLK && (ARCH_OXNAS || COMPILE_TEST)
0128 select MFD_SYSCON
0129 help
0130 Support for Ethernet controller on Oxford Semiconductor OXNAS SoCs.
0131
0132 This selects the Oxford Semiconductor OXNASSoC glue layer support for
0133 the stmmac device driver. This driver is used for OX820.
0134
0135 config DWMAC_QCOM_ETHQOS
0136 tristate "Qualcomm ETHQOS support"
0137 default ARCH_QCOM
0138 depends on OF && (ARCH_QCOM || COMPILE_TEST)
0139 help
0140 Support for the Qualcomm ETHQOS core.
0141
0142 This selects the Qualcomm ETHQOS glue layer support for the
0143 stmmac device driver.
0144
0145 config DWMAC_ROCKCHIP
0146 tristate "Rockchip dwmac support"
0147 default ARCH_ROCKCHIP
0148 depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST)
0149 select MFD_SYSCON
0150 help
0151 Support for Ethernet controller on Rockchip RK3288 SoC.
0152
0153 This selects the Rockchip RK3288 SoC glue layer support for
0154 the stmmac device driver.
0155
0156 config DWMAC_SOCFPGA
0157 tristate "SOCFPGA dwmac support"
0158 default ARCH_INTEL_SOCFPGA
0159 depends on OF && (ARCH_INTEL_SOCFPGA || COMPILE_TEST)
0160 select MFD_SYSCON
0161 help
0162 Support for ethernet controller on Altera SOCFPGA
0163
0164 This selects the Altera SOCFPGA SoC glue layer support
0165 for the stmmac device driver. This driver is used for
0166 arria5 and cyclone5 FPGA SoCs.
0167
0168 config DWMAC_STI
0169 tristate "STi GMAC support"
0170 default ARCH_STI
0171 depends on OF && (ARCH_STI || COMPILE_TEST)
0172 select MFD_SYSCON
0173 help
0174 Support for ethernet controller on STi SOCs.
0175
0176 This selects STi SoC glue layer support for the stmmac
0177 device driver. This driver is used on for the STi series
0178 SOCs GMAC ethernet controller.
0179
0180 config DWMAC_STM32
0181 tristate "STM32 DWMAC support"
0182 default ARCH_STM32
0183 depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST)
0184 select MFD_SYSCON
0185 help
0186 Support for ethernet controller on STM32 SOCs.
0187
0188 This selects STM32 SoC glue layer support for the stmmac
0189 device driver. This driver is used on for the STM32 series
0190 SOCs GMAC ethernet controller.
0191
0192 config DWMAC_SUNXI
0193 tristate "Allwinner GMAC support"
0194 default ARCH_SUNXI
0195 depends on OF && (ARCH_SUNXI || COMPILE_TEST)
0196 help
0197 Support for Allwinner A20/A31 GMAC ethernet controllers.
0198
0199 This selects Allwinner SoC glue layer support for the
0200 stmmac device driver. This driver is used for A20/A31
0201 GMAC ethernet controller.
0202
0203 config DWMAC_SUN8I
0204 tristate "Allwinner sun8i GMAC support"
0205 default ARCH_SUNXI
0206 depends on OF && (ARCH_SUNXI || COMPILE_TEST)
0207 select MDIO_BUS_MUX
0208 help
0209 Support for Allwinner H3 A83T A64 EMAC ethernet controllers.
0210
0211 This selects Allwinner SoC glue layer support for the
0212 stmmac device driver. This driver is used for H3/A83T/A64
0213 EMAC ethernet controller.
0214
0215 config DWMAC_IMX8
0216 tristate "NXP IMX8 DWMAC support"
0217 default ARCH_MXC
0218 depends on OF && (ARCH_MXC || COMPILE_TEST)
0219 select MFD_SYSCON
0220 help
0221 Support for ethernet controller on NXP i.MX8 SOCs.
0222
0223 This selects NXP SoC glue layer support for the stmmac
0224 device driver. This driver is used for i.MX8 series like
0225 iMX8MP/iMX8DXL GMAC ethernet controller.
0226
0227 config DWMAC_INTEL_PLAT
0228 tristate "Intel dwmac support"
0229 depends on OF && COMMON_CLK
0230 depends on STMMAC_ETH
0231 help
0232 Support for ethernet controllers on Intel SoCs
0233
0234 This selects the Intel platform specific glue layer support for
0235 the stmmac device driver. This driver is used for the Intel Keem Bay
0236 SoC.
0237
0238 config DWMAC_VISCONTI
0239 tristate "Toshiba Visconti DWMAC support"
0240 default ARCH_VISCONTI
0241 depends on OF && COMMON_CLK && (ARCH_VISCONTI || COMPILE_TEST)
0242 help
0243 Support for ethernet controller on Visconti SoCs.
0244
0245 endif
0246
0247 config DWMAC_INTEL
0248 tristate "Intel GMAC support"
0249 default X86
0250 depends on X86 && STMMAC_ETH && PCI
0251 depends on COMMON_CLK
0252 help
0253 This selects the Intel platform specific bus support for the
0254 stmmac driver. This driver is used for Intel Quark/EHL/TGL.
0255
0256 config DWMAC_LOONGSON
0257 tristate "Loongson PCI DWMAC support"
0258 default MACH_LOONGSON64
0259 depends on STMMAC_ETH && PCI
0260 depends on COMMON_CLK
0261 help
0262 This selects the LOONGSON PCI bus support for the stmmac driver,
0263 Support for ethernet controller on Loongson-2K1000 SoC and LS7A1000 bridge.
0264
0265 config STMMAC_PCI
0266 tristate "STMMAC PCI bus support"
0267 depends on STMMAC_ETH && PCI
0268 depends on COMMON_CLK
0269 help
0270 This selects the platform specific bus support for the stmmac driver.
0271 This driver was tested on XLINX XC2V3000 FF1152AMT0221
0272 D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit.
0273
0274 If you have a controller with this interface, say Y or M here.
0275
0276 If unsure, say N.
0277 endif