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 select NET_DEVLINK 14 help 15 This is the driver for the Ethernet IPs built around a 16 Synopsys IP Core. 17 18if STMMAC_ETH 19 20config STMMAC_SELFTESTS 21 bool "Support for STMMAC Selftests" 22 depends on INET 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 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_EIC7700 70 tristate "Support for Eswin eic7700 ethernet driver" 71 depends on OF && HAS_DMA && ARCH_ESWIN || COMPILE_TEST 72 help 73 This driver supports the Eswin EIC7700 Ethernet controller, 74 which integrates Synopsys DesignWare QoS features. It enables 75 high-speed networking with DMA acceleration and is optimized 76 for embedded systems. 77 78config DWMAC_INGENIC 79 tristate "Ingenic MAC support" 80 default MACH_INGENIC 81 depends on OF && HAS_IOMEM && (MACH_INGENIC || COMPILE_TEST) 82 select MFD_SYSCON 83 help 84 Support for ethernet controller on Ingenic SoCs. 85 86 This selects Ingenic SoCs glue layer support for the stmmac 87 device driver. This driver is used on for the Ingenic SoCs 88 MAC ethernet controller. 89 90config DWMAC_IPQ806X 91 tristate "QCA IPQ806x DWMAC support" 92 default ARCH_QCOM 93 depends on OF && (ARCH_QCOM || COMPILE_TEST) 94 select MFD_SYSCON 95 help 96 Support for QCA IPQ806X DWMAC Ethernet. 97 98 This selects the IPQ806x SoC glue layer support for the stmmac 99 device driver. This driver does not use any of the hardware 100 acceleration features available on this SoC. Network devices 101 will behave like standard non-accelerated ethernet interfaces. 102 103 Select the QCOM_SOCINFO config flag to enable specific dwmac 104 fixup based on the ipq806x SoC revision. 105 106config DWMAC_LPC18XX 107 tristate "NXP LPC18xx/43xx DWMAC support" 108 default ARCH_LPC18XX 109 depends on OF && (ARCH_LPC18XX || COMPILE_TEST) 110 select MFD_SYSCON 111 help 112 Support for NXP LPC18xx/43xx DWMAC Ethernet. 113 114config DWMAC_MEDIATEK 115 tristate "MediaTek MT27xx GMAC support" 116 depends on OF && (ARCH_MEDIATEK || COMPILE_TEST) 117 help 118 Support for MediaTek GMAC Ethernet controller. 119 120 This selects the MT2712 SoC support for the stmmac driver. 121 122config DWMAC_MESON 123 tristate "Amlogic Meson dwmac support" 124 default ARCH_MESON 125 depends on OF && COMMON_CLK && (ARCH_MESON || COMPILE_TEST) 126 help 127 Support for Ethernet controller on Amlogic Meson SoCs. 128 129 This selects the Amlogic Meson SoC glue layer support for 130 the stmmac device driver. This driver is used for Meson6, 131 Meson8, Meson8b and GXBB SoCs. 132 133config DWMAC_NUVOTON 134 tristate "Nuvoton MA35 dwmac support" 135 default ARCH_MA35 136 depends on OF && (ARCH_MA35 || COMPILE_TEST) 137 select MFD_SYSCON 138 help 139 Support for Ethernet controller on Nuvoton MA35 series SoC. 140 141 This selects the Nuvoton MA35 series SoC glue layer support 142 for the stmmac device driver. The nuvoton-dwmac driver is 143 used for MA35 series SoCs. 144 145config DWMAC_QCOM_ETHQOS 146 tristate "Qualcomm ETHQOS support" 147 default ARCH_QCOM 148 depends on OF && (ARCH_QCOM || COMPILE_TEST) 149 help 150 Support for the Qualcomm ETHQOS core. 151 152 This selects the Qualcomm ETHQOS glue layer support for the 153 stmmac device driver. 154 155config DWMAC_RENESAS_GBETH 156 tristate "Renesas RZ/V2H(P) GBETH and RZ/T2H, RZ/N2H GMAC support" 157 default ARCH_RENESAS 158 depends on OF && (ARCH_RENESAS || COMPILE_TEST) 159 select PCS_RZN1_MIIC 160 help 161 Support for Gigabit Ethernet Interface (GBETH)/ Ethernet MAC (GMAC) 162 on Renesas SoCs. 163 164 This selects Renesas SoC glue layer support for the stmmac device 165 driver. This driver is used for the RZ/V2H(P) family, RZ/T2H and 166 RZ/N2H SoCs. 167 168config DWMAC_ROCKCHIP 169 tristate "Rockchip dwmac support" 170 default ARCH_ROCKCHIP 171 depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST) 172 select MFD_SYSCON 173 help 174 Support for Ethernet controller on Rockchip RK3288 SoC. 175 176 This selects the Rockchip RK3288 SoC glue layer support for 177 the stmmac device driver. 178 179config DWMAC_RZN1 180 tristate "Renesas RZ/N1 dwmac support" 181 default ARCH_RZN1 182 depends on OF && (ARCH_RZN1 || COMPILE_TEST) 183 select PCS_RZN1_MIIC 184 help 185 Support for Ethernet controller on Renesas RZ/N1 SoC family. 186 187 This selects the Renesas RZ/N1 SoC glue layer support for 188 the stmmac device driver. This support can make use of a custom MII 189 converter PCS device. 190 191config DWMAC_S32 192 tristate "NXP S32G/S32R GMAC support" 193 default ARCH_S32 194 depends on OF && (ARCH_S32 || COMPILE_TEST) 195 help 196 Support for ethernet controller on NXP S32CC SOCs. 197 198 This selects NXP SoC glue layer support for the stmmac 199 device driver. This driver is used for the S32CC series 200 SOCs GMAC ethernet controller, ie. S32G2xx, S32G3xx and 201 S32R45. 202 203config DWMAC_SOCFPGA 204 tristate "SOCFPGA dwmac support" 205 default ARCH_INTEL_SOCFPGA 206 depends on OF && (ARCH_INTEL_SOCFPGA || COMPILE_TEST) 207 select MFD_SYSCON 208 select MDIO_REGMAP 209 select REGMAP_MMIO 210 select PCS_LYNX 211 help 212 Support for ethernet controller on Altera SOCFPGA 213 214 This selects the Altera SOCFPGA SoC glue layer support 215 for the stmmac device driver. This driver is used for 216 arria5 and cyclone5 FPGA SoCs. 217 218config DWMAC_SOPHGO 219 tristate "Sophgo dwmac support" 220 depends on OF && (ARCH_SOPHGO || COMPILE_TEST) 221 default m if ARCH_SOPHGO 222 help 223 Support for ethernet controllers on Sophgo RISC-V SoCs 224 225 This selects the Sophgo SoC specific glue layer support 226 for the stmmac device driver. This driver is used for the 227 ethernet controllers on various Sophgo SoCs. 228 229config DWMAC_SPACEMIT 230 tristate "Spacemit dwmac support" 231 depends on OF && (ARCH_SPACEMIT || COMPILE_TEST) 232 select MFD_SYSCON 233 default m if ARCH_SPACEMIT 234 help 235 Support for ethernet controllers on Spacemit RISC-V SoCs 236 237 This selects the Spacemit platform specific glue layer support 238 for the stmmac device driver. This driver is used for the 239 Spacemit K3 ethernet controllers. 240 241config DWMAC_STARFIVE 242 tristate "StarFive dwmac support" 243 depends on OF && (ARCH_STARFIVE || COMPILE_TEST) 244 select MFD_SYSCON 245 default m if ARCH_STARFIVE 246 help 247 Support for ethernet controllers on StarFive RISC-V SoCs 248 249 This selects the StarFive platform specific glue layer support 250 for the stmmac device driver. This driver is used for the 251 StarFive JH7100 and JH7110 ethernet controllers. 252 253config DWMAC_STI 254 tristate "STi GMAC support" 255 default ARCH_STI 256 depends on OF && (ARCH_STI || COMPILE_TEST) 257 select MFD_SYSCON 258 help 259 Support for ethernet controller on STi SOCs. 260 261 This selects STi SoC glue layer support for the stmmac 262 device driver. This driver is used on for the STi series 263 SOCs GMAC ethernet controller. 264 265config DWMAC_STM32 266 tristate "STM32 DWMAC support" 267 default ARCH_STM32 268 depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST) 269 select MFD_SYSCON 270 help 271 Support for ethernet controller on STM32 SOCs. 272 273 This selects STM32 SoC glue layer support for the stmmac 274 device driver. This driver is used on for the STM32 series 275 SOCs GMAC ethernet controller. 276 277config DWMAC_SUNXI 278 tristate "Allwinner GMAC support" 279 default ARCH_SUNXI 280 depends on OF && (ARCH_SUNXI || COMPILE_TEST) 281 help 282 Support for Allwinner A20/A31 GMAC ethernet controllers. 283 284 This selects Allwinner SoC glue layer support for the 285 stmmac device driver. This driver is used for A20/A31 286 GMAC ethernet controller. 287 288config DWMAC_SUN8I 289 tristate "Allwinner sun8i GMAC support" 290 default ARCH_SUNXI 291 depends on OF && (ARCH_SUNXI || COMPILE_TEST) 292 select MDIO_BUS_MUX 293 help 294 Support for Allwinner H3 A83T A64 EMAC ethernet controllers. 295 296 This selects Allwinner SoC glue layer support for the 297 stmmac device driver. This driver is used for H3/A83T/A64 298 EMAC ethernet controller. 299 300config DWMAC_SUN55I 301 tristate "Allwinner sun55i GMAC200 support" 302 default ARCH_SUNXI 303 depends on OF && (ARCH_SUNXI || COMPILE_TEST) 304 select MDIO_BUS_MUX 305 help 306 Support for Allwinner A523/T527 GMAC200 ethernet controllers. 307 308 This selects Allwinner SoC glue layer support for the 309 stmmac device driver. This driver is used for A523/T527 310 GMAC200 ethernet controller. 311 312config DWMAC_THEAD 313 tristate "T-HEAD dwmac support" 314 depends on OF && (ARCH_THEAD || COMPILE_TEST) 315 help 316 Support for ethernet controllers on T-HEAD RISC-V SoCs 317 318 This selects the T-HEAD platform specific glue layer support for 319 the stmmac device driver. This driver is used for T-HEAD TH1520 320 ethernet controller. 321 322config DWMAC_IMX8 323 tristate "NXP IMX8 DWMAC support" 324 default ARCH_MXC 325 depends on OF && (ARCH_MXC || COMPILE_TEST) 326 select MFD_SYSCON 327 help 328 Support for ethernet controller on NXP i.MX8 SOCs. 329 330 This selects NXP SoC glue layer support for the stmmac 331 device driver. This driver is used for i.MX8 series like 332 iMX8MP/iMX8DXL GMAC ethernet controller. 333 334config DWMAC_INTEL_PLAT 335 tristate "Intel dwmac support" 336 depends on OF && COMMON_CLK 337 help 338 Support for ethernet controllers on Intel SoCs 339 340 This selects the Intel platform specific glue layer support for 341 the stmmac device driver. This driver is used for the Intel Keem Bay 342 SoC. 343 344config DWMAC_LOONGSON1 345 tristate "Loongson1 GMAC support" 346 default MACH_LOONGSON32 347 depends on OF && (MACH_LOONGSON32 || COMPILE_TEST) 348 help 349 Support for ethernet controller on Loongson1 SoC. 350 351 This selects Loongson1 SoC glue layer support for the stmmac 352 device driver. This driver is used for Loongson1-based boards 353 like Loongson LS1B/LS1C. 354 355config DWMAC_TEGRA 356 tristate "NVIDIA Tegra MGBE support" 357 depends on ARCH_TEGRA || COMPILE_TEST 358 help 359 This selects the Multi-GigaBit Ethernet (MGBE) Controller that is 360 found on the NVIDIA Tegra SoC devices. This driver provides the glue 361 layer on top of the stmmac driver required for these NVIDIA Tegra SoC 362 devices. 363 364config DWMAC_VISCONTI 365 tristate "Toshiba Visconti DWMAC support" 366 default ARCH_VISCONTI 367 depends on OF && COMMON_CLK && (ARCH_VISCONTI || COMPILE_TEST) 368 help 369 Support for ethernet controller on Visconti SoCs. 370 371endif # STMMAC_PLATFORM 372 373config STMMAC_LIBPCI 374 tristate 375 help 376 This option enables the PCI bus helpers for the stmmac driver. 377 378config DWMAC_INTEL 379 tristate "Intel GMAC support" 380 default X86 381 depends on X86 && PCI 382 depends on COMMON_CLK 383 depends on ACPI 384 help 385 This selects the Intel platform specific bus support for the 386 stmmac driver. This driver is used for Intel Quark/EHL/TGL. 387 388config DWMAC_LOONGSON 389 tristate "Loongson PCI DWMAC support" 390 default MACH_LOONGSON64 391 depends on (MACH_LOONGSON64 || COMPILE_TEST) && PCI 392 depends on COMMON_CLK 393 select STMMAC_LIBPCI 394 help 395 This selects the LOONGSON PCI bus support for the stmmac driver, 396 Support for ethernet controller on Loongson-2K1000 SoC and LS7A1000 bridge. 397 398config DWMAC_MOTORCOMM 399 tristate "Motorcomm PCI DWMAC support" 400 depends on PCI 401 select MOTORCOMM_PHY 402 select STMMAC_LIBPCI 403 help 404 This enables glue driver for Motorcomm DWMAC-based PCI Ethernet 405 controllers. Currently only YT6801 is supported. 406 407config STMMAC_PCI 408 tristate "STMMAC PCI bus support" 409 depends on PCI 410 depends on COMMON_CLK 411 select STMMAC_LIBPCI 412 help 413 This selects the platform specific bus support for the stmmac driver. 414 This driver was tested on XLINX XC2V3000 FF1152AMT0221 415 D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit. 416 417 If you have a controller with this interface, say Y or M here. 418 419 If unsure, say N. 420endif # STMMAC_ETH 421