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 and RZ/T2H, RZ/N2H GMAC support" 137 default ARCH_RENESAS 138 depends on OF && (ARCH_RENESAS || COMPILE_TEST) 139 select PCS_RZN1_MIIC 140 help 141 Support for Gigabit Ethernet Interface (GBETH)/ Ethernet MAC (GMAC) 142 on Renesas SoCs. 143 144 This selects Renesas SoC glue layer support for the stmmac device 145 driver. This driver is used for the RZ/V2H(P) family, RZ/T2H and 146 RZ/N2H SoCs. 147 148config DWMAC_ROCKCHIP 149 tristate "Rockchip dwmac support" 150 default ARCH_ROCKCHIP 151 depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST) 152 select MFD_SYSCON 153 help 154 Support for Ethernet controller on Rockchip RK3288 SoC. 155 156 This selects the Rockchip RK3288 SoC glue layer support for 157 the stmmac device driver. 158 159config DWMAC_RZN1 160 tristate "Renesas RZ/N1 dwmac support" 161 default ARCH_RZN1 162 depends on OF && (ARCH_RZN1 || COMPILE_TEST) 163 select PCS_RZN1_MIIC 164 help 165 Support for Ethernet controller on Renesas RZ/N1 SoC family. 166 167 This selects the Renesas RZ/N1 SoC glue layer support for 168 the stmmac device driver. This support can make use of a custom MII 169 converter PCS device. 170 171config DWMAC_S32 172 tristate "NXP S32G/S32R GMAC support" 173 default ARCH_S32 174 depends on OF && (ARCH_S32 || COMPILE_TEST) 175 help 176 Support for ethernet controller on NXP S32CC SOCs. 177 178 This selects NXP SoC glue layer support for the stmmac 179 device driver. This driver is used for the S32CC series 180 SOCs GMAC ethernet controller, ie. S32G2xx, S32G3xx and 181 S32R45. 182 183config DWMAC_SOCFPGA 184 tristate "SOCFPGA dwmac support" 185 default ARCH_INTEL_SOCFPGA 186 depends on OF && (ARCH_INTEL_SOCFPGA || COMPILE_TEST) 187 select MFD_SYSCON 188 select MDIO_REGMAP 189 select REGMAP_MMIO 190 select PCS_LYNX 191 help 192 Support for ethernet controller on Altera SOCFPGA 193 194 This selects the Altera SOCFPGA SoC glue layer support 195 for the stmmac device driver. This driver is used for 196 arria5 and cyclone5 FPGA SoCs. 197 198config DWMAC_SOPHGO 199 tristate "Sophgo dwmac support" 200 depends on OF && (ARCH_SOPHGO || COMPILE_TEST) 201 default m if ARCH_SOPHGO 202 help 203 Support for ethernet controllers on Sophgo RISC-V SoCs 204 205 This selects the Sophgo SoC specific glue layer support 206 for the stmmac device driver. This driver is used for the 207 ethernet controllers on various Sophgo SoCs. 208 209config DWMAC_STARFIVE 210 tristate "StarFive dwmac support" 211 depends on OF && (ARCH_STARFIVE || COMPILE_TEST) 212 select MFD_SYSCON 213 default m if ARCH_STARFIVE 214 help 215 Support for ethernet controllers on StarFive RISC-V SoCs 216 217 This selects the StarFive platform specific glue layer support 218 for the stmmac device driver. This driver is used for the 219 StarFive JH7100 and JH7110 ethernet controllers. 220 221config DWMAC_STI 222 tristate "STi GMAC support" 223 default ARCH_STI 224 depends on OF && (ARCH_STI || COMPILE_TEST) 225 select MFD_SYSCON 226 help 227 Support for ethernet controller on STi SOCs. 228 229 This selects STi SoC glue layer support for the stmmac 230 device driver. This driver is used on for the STi series 231 SOCs GMAC ethernet controller. 232 233config DWMAC_STM32 234 tristate "STM32 DWMAC support" 235 default ARCH_STM32 236 depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST) 237 select MFD_SYSCON 238 help 239 Support for ethernet controller on STM32 SOCs. 240 241 This selects STM32 SoC glue layer support for the stmmac 242 device driver. This driver is used on for the STM32 series 243 SOCs GMAC ethernet controller. 244 245config DWMAC_SUNXI 246 tristate "Allwinner GMAC support" 247 default ARCH_SUNXI 248 depends on OF && (ARCH_SUNXI || COMPILE_TEST) 249 help 250 Support for Allwinner A20/A31 GMAC ethernet controllers. 251 252 This selects Allwinner SoC glue layer support for the 253 stmmac device driver. This driver is used for A20/A31 254 GMAC ethernet controller. 255 256config DWMAC_SUN8I 257 tristate "Allwinner sun8i GMAC support" 258 default ARCH_SUNXI 259 depends on OF && (ARCH_SUNXI || COMPILE_TEST) 260 select MDIO_BUS_MUX 261 help 262 Support for Allwinner H3 A83T A64 EMAC ethernet controllers. 263 264 This selects Allwinner SoC glue layer support for the 265 stmmac device driver. This driver is used for H3/A83T/A64 266 EMAC ethernet controller. 267 268config DWMAC_SUN55I 269 tristate "Allwinner sun55i GMAC200 support" 270 default ARCH_SUNXI 271 depends on OF && (ARCH_SUNXI || COMPILE_TEST) 272 select MDIO_BUS_MUX 273 help 274 Support for Allwinner A523/T527 GMAC200 ethernet controllers. 275 276 This selects Allwinner SoC glue layer support for the 277 stmmac device driver. This driver is used for A523/T527 278 GMAC200 ethernet controller. 279 280config DWMAC_THEAD 281 tristate "T-HEAD dwmac support" 282 depends on OF && (ARCH_THEAD || COMPILE_TEST) 283 help 284 Support for ethernet controllers on T-HEAD RISC-V SoCs 285 286 This selects the T-HEAD platform specific glue layer support for 287 the stmmac device driver. This driver is used for T-HEAD TH1520 288 ethernet controller. 289 290config DWMAC_IMX8 291 tristate "NXP IMX8 DWMAC support" 292 default ARCH_MXC 293 depends on OF && (ARCH_MXC || COMPILE_TEST) 294 select MFD_SYSCON 295 help 296 Support for ethernet controller on NXP i.MX8 SOCs. 297 298 This selects NXP SoC glue layer support for the stmmac 299 device driver. This driver is used for i.MX8 series like 300 iMX8MP/iMX8DXL GMAC ethernet controller. 301 302config DWMAC_INTEL_PLAT 303 tristate "Intel dwmac support" 304 depends on OF && COMMON_CLK 305 depends on STMMAC_ETH 306 help 307 Support for ethernet controllers on Intel SoCs 308 309 This selects the Intel platform specific glue layer support for 310 the stmmac device driver. This driver is used for the Intel Keem Bay 311 SoC. 312 313config DWMAC_LOONGSON1 314 tristate "Loongson1 GMAC support" 315 default MACH_LOONGSON32 316 depends on OF && (MACH_LOONGSON32 || COMPILE_TEST) 317 help 318 Support for ethernet controller on Loongson1 SoC. 319 320 This selects Loongson1 SoC glue layer support for the stmmac 321 device driver. This driver is used for Loongson1-based boards 322 like Loongson LS1B/LS1C. 323 324config DWMAC_TEGRA 325 tristate "NVIDIA Tegra MGBE support" 326 depends on ARCH_TEGRA || COMPILE_TEST 327 help 328 This selects the Multi-GigaBit Ethernet (MGBE) Controller that is 329 found on the NVIDIA Tegra SoC devices. This driver provides the glue 330 layer on top of the stmmac driver required for these NVIDIA Tegra SoC 331 devices. 332 333config DWMAC_VISCONTI 334 tristate "Toshiba Visconti DWMAC support" 335 default ARCH_VISCONTI 336 depends on OF && COMMON_CLK && (ARCH_VISCONTI || COMPILE_TEST) 337 help 338 Support for ethernet controller on Visconti SoCs. 339 340endif 341 342config DWMAC_INTEL 343 tristate "Intel GMAC support" 344 default X86 345 depends on X86 && STMMAC_ETH && PCI 346 depends on COMMON_CLK 347 depends on ACPI 348 help 349 This selects the Intel platform specific bus support for the 350 stmmac driver. This driver is used for Intel Quark/EHL/TGL. 351 352config DWMAC_LOONGSON 353 tristate "Loongson PCI DWMAC support" 354 default MACH_LOONGSON64 355 depends on (MACH_LOONGSON64 || COMPILE_TEST) && STMMAC_ETH && PCI 356 depends on COMMON_CLK 357 help 358 This selects the LOONGSON PCI bus support for the stmmac driver, 359 Support for ethernet controller on Loongson-2K1000 SoC and LS7A1000 bridge. 360 361config STMMAC_PCI 362 tristate "STMMAC PCI bus support" 363 depends on STMMAC_ETH && PCI 364 depends on COMMON_CLK 365 help 366 This selects the platform specific bus support for the stmmac driver. 367 This driver was tested on XLINX XC2V3000 FF1152AMT0221 368 D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit. 369 370 If you have a controller with this interface, say Y or M here. 371 372 If unsure, say N. 373endif 374