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