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