1# SPDX-License-Identifier: GPL-2.0-only 2config STMMAC_ETH 3 tristate "STMicroelectronics Multi-Gigabit Ethernet driver" 4 depends on HAS_IOMEM && HAS_DMA 5 depends on PTP_1588_CLOCK_OPTIONAL 6 select MII 7 select PCS_XPCS 8 select PAGE_POOL 9 select PHYLINK 10 select CRC32 11 select RESET_CONTROLLER 12 help 13 This is the driver for the Ethernet IPs built around a 14 Synopsys IP Core. 15 16if STMMAC_ETH 17 18config STMMAC_SELFTESTS 19 bool "Support for STMMAC Selftests" 20 depends on INET 21 depends on STMMAC_ETH 22 default n 23 help 24 This adds support for STMMAC Selftests using ethtool. Enable this 25 feature if you are facing problems with your HW and submit the test 26 results to the netdev Mailing List. 27 28config STMMAC_PLATFORM 29 tristate "STMMAC Platform bus support" 30 depends on STMMAC_ETH 31 select MFD_SYSCON 32 default y 33 help 34 This selects the platform specific bus support for the stmmac driver. 35 This is the driver used on several SoCs: 36 STi, Allwinner, Amlogic Meson, Altera SOCFPGA. 37 38 If you have a controller with this interface, say Y or M here. 39 40 If unsure, say N. 41 42if STMMAC_PLATFORM 43 44config DWMAC_DWC_QOS_ETH 45 tristate "Support for snps,dwc-qos-ethernet.txt DT binding." 46 select CRC32 47 select MII 48 depends on OF && HAS_DMA 49 help 50 Support for chips using the snps,dwc-qos-ethernet.txt DT binding. 51 52config DWMAC_GENERIC 53 tristate "Generic driver for DWMAC" 54 default STMMAC_PLATFORM 55 help 56 Generic DWMAC driver for platforms that don't require any 57 platform specific code to function or is using platform 58 data for setup. 59 60config DWMAC_ANARION 61 tristate "Adaptrum Anarion GMAC support" 62 default ARC 63 depends on OF && (ARC || COMPILE_TEST) 64 help 65 Support for Adaptrum Anarion GMAC Ethernet controller. 66 67 This selects the Anarion SoC glue layer support for the stmmac driver. 68 69config DWMAC_INGENIC 70 tristate "Ingenic MAC support" 71 default MACH_INGENIC 72 depends on OF && HAS_IOMEM && (MACH_INGENIC || COMPILE_TEST) 73 select MFD_SYSCON 74 help 75 Support for ethernet controller on Ingenic SoCs. 76 77 This selects Ingenic SoCs glue layer support for the stmmac 78 device driver. This driver is used on for the Ingenic SoCs 79 MAC ethernet controller. 80 81config DWMAC_IPQ806X 82 tristate "QCA IPQ806x DWMAC support" 83 default ARCH_QCOM 84 depends on OF && (ARCH_QCOM || COMPILE_TEST) 85 select MFD_SYSCON 86 help 87 Support for QCA IPQ806X DWMAC Ethernet. 88 89 This selects the IPQ806x SoC glue layer support for the stmmac 90 device driver. This driver does not use any of the hardware 91 acceleration features available on this SoC. Network devices 92 will behave like standard non-accelerated ethernet interfaces. 93 94 Select the QCOM_SOCINFO config flag to enable specific dwmac 95 fixup based on the ipq806x SoC revision. 96 97config DWMAC_LPC18XX 98 tristate "NXP LPC18xx/43xx DWMAC support" 99 default ARCH_LPC18XX 100 depends on OF && (ARCH_LPC18XX || COMPILE_TEST) 101 select MFD_SYSCON 102 help 103 Support for NXP LPC18xx/43xx DWMAC Ethernet. 104 105config DWMAC_MEDIATEK 106 tristate "MediaTek MT27xx GMAC support" 107 depends on OF && (ARCH_MEDIATEK || COMPILE_TEST) 108 help 109 Support for MediaTek GMAC Ethernet controller. 110 111 This selects the MT2712 SoC support for the stmmac driver. 112 113config DWMAC_MESON 114 tristate "Amlogic Meson dwmac support" 115 default ARCH_MESON 116 depends on OF && COMMON_CLK && (ARCH_MESON || COMPILE_TEST) 117 help 118 Support for Ethernet controller on Amlogic Meson SoCs. 119 120 This selects the Amlogic Meson SoC glue layer support for 121 the stmmac device driver. This driver is used for Meson6, 122 Meson8, Meson8b and GXBB SoCs. 123 124config DWMAC_OXNAS 125 tristate "Oxford Semiconductor OXNAS dwmac support" 126 default ARCH_OXNAS 127 depends on OF && COMMON_CLK && (ARCH_OXNAS || COMPILE_TEST) 128 select MFD_SYSCON 129 help 130 Support for Ethernet controller on Oxford Semiconductor OXNAS SoCs. 131 132 This selects the Oxford Semiconductor OXNASSoC glue layer support for 133 the stmmac device driver. This driver is used for OX820. 134 135config DWMAC_QCOM_ETHQOS 136 tristate "Qualcomm ETHQOS support" 137 default ARCH_QCOM 138 depends on OF && (ARCH_QCOM || COMPILE_TEST) 139 help 140 Support for the Qualcomm ETHQOS core. 141 142 This selects the Qualcomm ETHQOS glue layer support for the 143 stmmac device driver. 144 145config DWMAC_ROCKCHIP 146 tristate "Rockchip dwmac support" 147 default ARCH_ROCKCHIP 148 depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST) 149 select MFD_SYSCON 150 help 151 Support for Ethernet controller on Rockchip RK3288 SoC. 152 153 This selects the Rockchip RK3288 SoC glue layer support for 154 the stmmac device driver. 155 156config DWMAC_SOCFPGA 157 tristate "SOCFPGA dwmac support" 158 default ARCH_INTEL_SOCFPGA 159 depends on OF && (ARCH_INTEL_SOCFPGA || COMPILE_TEST) 160 select MFD_SYSCON 161 help 162 Support for ethernet controller on Altera SOCFPGA 163 164 This selects the Altera SOCFPGA SoC glue layer support 165 for the stmmac device driver. This driver is used for 166 arria5 and cyclone5 FPGA SoCs. 167 168config DWMAC_STARFIVE 169 tristate "StarFive dwmac support" 170 depends on OF && (ARCH_STARFIVE || COMPILE_TEST) 171 select MFD_SYSCON 172 default m if ARCH_STARFIVE 173 help 174 Support for ethernet controllers on StarFive RISC-V SoCs 175 176 This selects the StarFive platform specific glue layer support for 177 the stmmac device driver. This driver is used for StarFive JH7110 178 ethernet controller. 179 180config DWMAC_STI 181 tristate "STi GMAC support" 182 default ARCH_STI 183 depends on OF && (ARCH_STI || COMPILE_TEST) 184 select MFD_SYSCON 185 help 186 Support for ethernet controller on STi SOCs. 187 188 This selects STi SoC glue layer support for the stmmac 189 device driver. This driver is used on for the STi series 190 SOCs GMAC ethernet controller. 191 192config DWMAC_STM32 193 tristate "STM32 DWMAC support" 194 default ARCH_STM32 195 depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST) 196 select MFD_SYSCON 197 help 198 Support for ethernet controller on STM32 SOCs. 199 200 This selects STM32 SoC glue layer support for the stmmac 201 device driver. This driver is used on for the STM32 series 202 SOCs GMAC ethernet controller. 203 204config DWMAC_SUNXI 205 tristate "Allwinner GMAC support" 206 default ARCH_SUNXI 207 depends on OF && (ARCH_SUNXI || COMPILE_TEST) 208 help 209 Support for Allwinner A20/A31 GMAC ethernet controllers. 210 211 This selects Allwinner SoC glue layer support for the 212 stmmac device driver. This driver is used for A20/A31 213 GMAC ethernet controller. 214 215config DWMAC_SUN8I 216 tristate "Allwinner sun8i GMAC support" 217 default ARCH_SUNXI 218 depends on OF && (ARCH_SUNXI || COMPILE_TEST) 219 select MDIO_BUS_MUX 220 help 221 Support for Allwinner H3 A83T A64 EMAC ethernet controllers. 222 223 This selects Allwinner SoC glue layer support for the 224 stmmac device driver. This driver is used for H3/A83T/A64 225 EMAC ethernet controller. 226 227config DWMAC_IMX8 228 tristate "NXP IMX8 DWMAC support" 229 default ARCH_MXC 230 depends on OF && (ARCH_MXC || COMPILE_TEST) 231 select MFD_SYSCON 232 help 233 Support for ethernet controller on NXP i.MX8 SOCs. 234 235 This selects NXP SoC glue layer support for the stmmac 236 device driver. This driver is used for i.MX8 series like 237 iMX8MP/iMX8DXL GMAC ethernet controller. 238 239config DWMAC_INTEL_PLAT 240 tristate "Intel dwmac support" 241 depends on OF && COMMON_CLK 242 depends on STMMAC_ETH 243 help 244 Support for ethernet controllers on Intel SoCs 245 246 This selects the Intel platform specific glue layer support for 247 the stmmac device driver. This driver is used for the Intel Keem Bay 248 SoC. 249 250config DWMAC_TEGRA 251 tristate "NVIDIA Tegra MGBE support" 252 depends on ARCH_TEGRA || COMPILE_TEST 253 help 254 This selects the Multi-GigaBit Ethernet (MGBE) Controller that is 255 found on the NVIDIA Tegra SoC devices. This driver provides the glue 256 layer on top of the stmmac driver required for these NVIDIA Tegra SoC 257 devices. 258 259config DWMAC_VISCONTI 260 tristate "Toshiba Visconti DWMAC support" 261 default ARCH_VISCONTI 262 depends on OF && COMMON_CLK && (ARCH_VISCONTI || COMPILE_TEST) 263 help 264 Support for ethernet controller on Visconti SoCs. 265 266endif 267 268config DWMAC_INTEL 269 tristate "Intel GMAC support" 270 default X86 271 depends on X86 && STMMAC_ETH && PCI 272 depends on COMMON_CLK 273 help 274 This selects the Intel platform specific bus support for the 275 stmmac driver. This driver is used for Intel Quark/EHL/TGL. 276 277config DWMAC_LOONGSON 278 tristate "Loongson PCI DWMAC support" 279 default MACH_LOONGSON64 280 depends on STMMAC_ETH && PCI 281 depends on COMMON_CLK 282 help 283 This selects the LOONGSON PCI bus support for the stmmac driver, 284 Support for ethernet controller on Loongson-2K1000 SoC and LS7A1000 bridge. 285 286config STMMAC_PCI 287 tristate "STMMAC PCI bus support" 288 depends on STMMAC_ETH && PCI 289 depends on COMMON_CLK 290 help 291 This selects the platform specific bus support for the stmmac driver. 292 This driver was tested on XLINX XC2V3000 FF1152AMT0221 293 D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit. 294 295 If you have a controller with this interface, say Y or M here. 296 297 If unsure, say N. 298endif 299