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