1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
27ac6653aSJeff Kirsherconfig STMMAC_ETH
3b432bdb6SJose Abreu	tristate "STMicroelectronics Multi-Gigabit Ethernet driver"
4fd1eb9e6SGeert Uytterhoeven	depends on HAS_IOMEM && HAS_DMA
5e5f31552SArnd Bergmann	depends on PTP_1588_CLOCK_OPTIONAL
67ac6653aSJeff Kirsher	select MII
72fa4e4b7SAndrew Lunn	select PCS_XPCS
82af6106aSJose Abreu	select PAGE_POOL
9eeef2f6bSJose Abreu	select PHYLINK
107ac6653aSJeff Kirsher	select CRC32
11c5e4ddbdSChen-Yu Tsai	select RESET_CONTROLLER
12a7f7f624SMasahiro Yamada	help
13ab70e586Sjpinto	  This is the driver for the Ethernet IPs built around a
14ab70e586Sjpinto	  Synopsys IP Core.
157ac6653aSJeff Kirsher
167ac6653aSJeff Kirsherif STMMAC_ETH
177ac6653aSJeff Kirsher
18091810dbSJose Abreuconfig STMMAC_SELFTESTS
19091810dbSJose Abreu	bool "Support for STMMAC Selftests"
20a3e2f6adSYueHaibing	depends on INET
21091810dbSJose Abreu	depends on STMMAC_ETH
22091810dbSJose Abreu	default n
23a7f7f624SMasahiro Yamada	help
24091810dbSJose Abreu	  This adds support for STMMAC Selftests using ethtool. Enable this
25091810dbSJose Abreu	  feature if you are facing problems with your HW and submit the test
26091810dbSJose Abreu	  results to the netdev Mailing List.
27091810dbSJose Abreu
28bfab27a1SGiuseppe CAVALLAROconfig STMMAC_PLATFORM
29b2e2f0c7SAndy Shevchenko	tristate "STMMAC Platform bus support"
30bfab27a1SGiuseppe CAVALLARO	depends on STMMAC_ETH
31b1c17215SMathieu Olivari	select MFD_SYSCON
3233d5e332SGiuseppe CAVALLARO	default y
33a7f7f624SMasahiro Yamada	help
34c0d54066SGiuseppe CAVALLARO	  This selects the platform specific bus support for the stmmac driver.
35c0d54066SGiuseppe CAVALLARO	  This is the driver used on several SoCs:
36c0d54066SGiuseppe CAVALLARO	  STi, Allwinner, Amlogic Meson, Altera SOCFPGA.
37c0d54066SGiuseppe CAVALLARO
38bfab27a1SGiuseppe CAVALLARO	  If you have a controller with this interface, say Y or M here.
39bfab27a1SGiuseppe CAVALLARO
40bfab27a1SGiuseppe CAVALLARO	  If unsure, say N.
41bfab27a1SGiuseppe CAVALLARO
42ba25020eSJoachim Eastwoodif STMMAC_PLATFORM
43ba25020eSJoachim Eastwood
44d8256121Sjpintoconfig DWMAC_DWC_QOS_ETH
45d8256121Sjpinto	tristate "Support for snps,dwc-qos-ethernet.txt DT binding."
46d8256121Sjpinto	select CRC32
47d8256121Sjpinto	select MII
48f7b9e8e1SGeert Uytterhoeven	depends on OF && HAS_DMA
49d8256121Sjpinto	help
50d8256121Sjpinto	  Support for chips using the snps,dwc-qos-ethernet.txt DT binding.
51d8256121Sjpinto
52ba25020eSJoachim Eastwoodconfig DWMAC_GENERIC
53ba25020eSJoachim Eastwood	tristate "Generic driver for DWMAC"
54ba25020eSJoachim Eastwood	default STMMAC_PLATFORM
55a7f7f624SMasahiro Yamada	help
56ba25020eSJoachim Eastwood	  Generic DWMAC driver for platforms that don't require any
57ba25020eSJoachim Eastwood	  platform specific code to function or is using platform
58ba25020eSJoachim Eastwood	  data for setup.
59ba25020eSJoachim Eastwood
602d1611afSAlexandru Gagniucconfig DWMAC_ANARION
612d1611afSAlexandru Gagniuc	tristate "Adaptrum Anarion GMAC support"
622d1611afSAlexandru Gagniuc	default ARC
632d1611afSAlexandru Gagniuc	depends on OF && (ARC || COMPILE_TEST)
642d1611afSAlexandru Gagniuc	help
652d1611afSAlexandru Gagniuc	  Support for Adaptrum Anarion GMAC Ethernet controller.
662d1611afSAlexandru Gagniuc
672d1611afSAlexandru Gagniuc	  This selects the Anarion SoC glue layer support for the stmmac driver.
682d1611afSAlexandru Gagniuc
692bb4b98bS周琰杰 (Zhou Yanjie)config DWMAC_INGENIC
702bb4b98bS周琰杰 (Zhou Yanjie)	tristate "Ingenic MAC support"
712bb4b98bS周琰杰 (Zhou Yanjie)	default MACH_INGENIC
722bb4b98bS周琰杰 (Zhou Yanjie)	depends on OF && HAS_IOMEM && (MACH_INGENIC || COMPILE_TEST)
732bb4b98bS周琰杰 (Zhou Yanjie)	select MFD_SYSCON
742bb4b98bS周琰杰 (Zhou Yanjie)	help
752bb4b98bS周琰杰 (Zhou Yanjie)	  Support for ethernet controller on Ingenic SoCs.
762bb4b98bS周琰杰 (Zhou Yanjie)
772bb4b98bS周琰杰 (Zhou Yanjie)	  This selects Ingenic SoCs glue layer support for the stmmac
782bb4b98bS周琰杰 (Zhou Yanjie)	  device driver. This driver is used on for the Ingenic SoCs
792bb4b98bS周琰杰 (Zhou Yanjie)	  MAC ethernet controller.
802bb4b98bS周琰杰 (Zhou Yanjie)
81b1c17215SMathieu Olivariconfig DWMAC_IPQ806X
82b1c17215SMathieu Olivari	tristate "QCA IPQ806x DWMAC support"
83b1c17215SMathieu Olivari	default ARCH_QCOM
84f7b9e8e1SGeert Uytterhoeven	depends on OF && (ARCH_QCOM || COMPILE_TEST)
85b1c17215SMathieu Olivari	select MFD_SYSCON
86b1c17215SMathieu Olivari	help
87b1c17215SMathieu Olivari	  Support for QCA IPQ806X DWMAC Ethernet.
88b1c17215SMathieu Olivari
89b1c17215SMathieu Olivari	  This selects the IPQ806x SoC glue layer support for the stmmac
90b1c17215SMathieu Olivari	  device driver. This driver does not use any of the hardware
91b1c17215SMathieu Olivari	  acceleration features available on this SoC. Network devices
92b1c17215SMathieu Olivari	  will behave like standard non-accelerated ethernet interfaces.
93b1c17215SMathieu Olivari
94c205035eSChristian Marangi	  Select the QCOM_SOCINFO config flag to enable specific dwmac
95c205035eSChristian Marangi	  fixup based on the ipq806x SoC revision.
96c205035eSChristian Marangi
9769bdd2d4SJoachim Eastwoodconfig DWMAC_LPC18XX
9869bdd2d4SJoachim Eastwood	tristate "NXP LPC18xx/43xx DWMAC support"
9969bdd2d4SJoachim Eastwood	default ARCH_LPC18XX
1002e280c18SPeter Robinson	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
10169bdd2d4SJoachim Eastwood	select MFD_SYSCON
102a7f7f624SMasahiro Yamada	help
10369bdd2d4SJoachim Eastwood	  Support for NXP LPC18xx/43xx DWMAC Ethernet.
10469bdd2d4SJoachim Eastwood
1059992f37eSBiao Huangconfig DWMAC_MEDIATEK
1069992f37eSBiao Huang	tristate "MediaTek MT27xx GMAC support"
1079992f37eSBiao Huang	depends on OF && (ARCH_MEDIATEK || COMPILE_TEST)
1089992f37eSBiao Huang	help
1099992f37eSBiao Huang	  Support for MediaTek GMAC Ethernet controller.
1109992f37eSBiao Huang
1119992f37eSBiao Huang	  This selects the MT2712 SoC support for the stmmac driver.
1129992f37eSBiao Huang
11340e6b0baSJoachim Eastwoodconfig DWMAC_MESON
11440e6b0baSJoachim Eastwood	tristate "Amlogic Meson dwmac support"
11540e6b0baSJoachim Eastwood	default ARCH_MESON
116566e8251SMartin Blumenstingl	depends on OF && COMMON_CLK && (ARCH_MESON || COMPILE_TEST)
11740e6b0baSJoachim Eastwood	help
11840e6b0baSJoachim Eastwood	  Support for Ethernet controller on Amlogic Meson SoCs.
11940e6b0baSJoachim Eastwood
12040e6b0baSJoachim Eastwood	  This selects the Amlogic Meson SoC glue layer support for
121566e8251SMartin Blumenstingl	  the stmmac device driver. This driver is used for Meson6,
122566e8251SMartin Blumenstingl	  Meson8, Meson8b and GXBB SoCs.
12340e6b0baSJoachim Eastwood
1245ed74140SNeil Armstrongconfig DWMAC_OXNAS
1255ed74140SNeil Armstrong	tristate "Oxford Semiconductor OXNAS dwmac support"
1265ed74140SNeil Armstrong	default ARCH_OXNAS
1275ed74140SNeil Armstrong	depends on OF && COMMON_CLK && (ARCH_OXNAS || COMPILE_TEST)
1285ed74140SNeil Armstrong	select MFD_SYSCON
1295ed74140SNeil Armstrong	help
1305ed74140SNeil Armstrong	  Support for Ethernet controller on Oxford Semiconductor OXNAS SoCs.
1315ed74140SNeil Armstrong
1325ed74140SNeil Armstrong	  This selects the Oxford Semiconductor OXNASSoC glue layer support for
1335ed74140SNeil Armstrong	  the stmmac device driver. This driver is used for OX820.
1345ed74140SNeil Armstrong
135a7c30e62SVinod Koulconfig DWMAC_QCOM_ETHQOS
136a7c30e62SVinod Koul	tristate "Qualcomm ETHQOS support"
137a7c30e62SVinod Koul	default ARCH_QCOM
138a7c30e62SVinod Koul	depends on OF && (ARCH_QCOM || COMPILE_TEST)
139a7c30e62SVinod Koul	help
140a7c30e62SVinod Koul	  Support for the Qualcomm ETHQOS core.
141a7c30e62SVinod Koul
142a7c30e62SVinod Koul	  This selects the Qualcomm ETHQOS glue layer support for the
143a7c30e62SVinod Koul	  stmmac device driver.
144a7c30e62SVinod Koul
145e0fb4013SJoachim Eastwoodconfig DWMAC_ROCKCHIP
146e0fb4013SJoachim Eastwood	tristate "Rockchip dwmac support"
147e0fb4013SJoachim Eastwood	default ARCH_ROCKCHIP
148f7b9e8e1SGeert Uytterhoeven	depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST)
149e0fb4013SJoachim Eastwood	select MFD_SYSCON
150e0fb4013SJoachim Eastwood	help
151e0fb4013SJoachim Eastwood	  Support for Ethernet controller on Rockchip RK3288 SoC.
152e0fb4013SJoachim Eastwood
153e0fb4013SJoachim Eastwood	  This selects the Rockchip RK3288 SoC glue layer support for
154e0fb4013SJoachim Eastwood	  the stmmac device driver.
155e0fb4013SJoachim Eastwood
156c7c52ae7SJoachim Eastwoodconfig DWMAC_SOCFPGA
157c7c52ae7SJoachim Eastwood	tristate "SOCFPGA dwmac support"
1583409fb09SKrzysztof Kozlowski	default ARCH_INTEL_SOCFPGA
1593409fb09SKrzysztof Kozlowski	depends on OF && (ARCH_INTEL_SOCFPGA || COMPILE_TEST)
160c7c52ae7SJoachim Eastwood	select MFD_SYSCON
161*5d1f3fe7SMaxime Chevallier	select MDIO_REGMAP
162*5d1f3fe7SMaxime Chevallier	select REGMAP_MMIO
163*5d1f3fe7SMaxime Chevallier	select PCS_LYNX
164c7c52ae7SJoachim Eastwood	help
165c7c52ae7SJoachim Eastwood	  Support for ethernet controller on Altera SOCFPGA
166c7c52ae7SJoachim Eastwood
167c7c52ae7SJoachim Eastwood	  This selects the Altera SOCFPGA SoC glue layer support
168c7c52ae7SJoachim Eastwood	  for the stmmac device driver. This driver is used for
169c7c52ae7SJoachim Eastwood	  arria5 and cyclone5 FPGA SoCs.
170c7c52ae7SJoachim Eastwood
1714bd3bb7bSSamin Guoconfig DWMAC_STARFIVE
1724bd3bb7bSSamin Guo	tristate "StarFive dwmac support"
1734bd3bb7bSSamin Guo	depends on OF && (ARCH_STARFIVE || COMPILE_TEST)
1744bd3bb7bSSamin Guo	select MFD_SYSCON
1754bd3bb7bSSamin Guo	default m if ARCH_STARFIVE
1764bd3bb7bSSamin Guo	help
1774bd3bb7bSSamin Guo	  Support for ethernet controllers on StarFive RISC-V SoCs
1784bd3bb7bSSamin Guo
1794bd3bb7bSSamin Guo	  This selects the StarFive platform specific glue layer support for
1804bd3bb7bSSamin Guo	  the stmmac device driver. This driver is used for StarFive JH7110
1814bd3bb7bSSamin Guo	  ethernet controller.
1824bd3bb7bSSamin Guo
1832a321798SJoachim Eastwoodconfig DWMAC_STI
1842a321798SJoachim Eastwood	tristate "STi GMAC support"
1852a321798SJoachim Eastwood	default ARCH_STI
186f7b9e8e1SGeert Uytterhoeven	depends on OF && (ARCH_STI || COMPILE_TEST)
1872a321798SJoachim Eastwood	select MFD_SYSCON
188a7f7f624SMasahiro Yamada	help
1892a321798SJoachim Eastwood	  Support for ethernet controller on STi SOCs.
1902a321798SJoachim Eastwood
1912a321798SJoachim Eastwood	  This selects STi SoC glue layer support for the stmmac
1922a321798SJoachim Eastwood	  device driver. This driver is used on for the STi series
1932a321798SJoachim Eastwood	  SOCs GMAC ethernet controller.
1942a321798SJoachim Eastwood
195c6eec6f3SAlexandre TORGUEconfig DWMAC_STM32
196c6eec6f3SAlexandre TORGUE	tristate "STM32 DWMAC support"
197c6eec6f3SAlexandre TORGUE	default ARCH_STM32
1986bc5445cSPeter Robinson	depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST)
199c6eec6f3SAlexandre TORGUE	select MFD_SYSCON
200a7f7f624SMasahiro Yamada	help
201c6eec6f3SAlexandre TORGUE	  Support for ethernet controller on STM32 SOCs.
202c6eec6f3SAlexandre TORGUE
203c6eec6f3SAlexandre TORGUE	  This selects STM32 SoC glue layer support for the stmmac
204c6eec6f3SAlexandre TORGUE	  device driver. This driver is used on for the STM32 series
205c6eec6f3SAlexandre TORGUE	  SOCs GMAC ethernet controller.
206c6eec6f3SAlexandre TORGUE
2074198b7dbSJoachim Eastwoodconfig DWMAC_SUNXI
2084198b7dbSJoachim Eastwood	tristate "Allwinner GMAC support"
2094198b7dbSJoachim Eastwood	default ARCH_SUNXI
210f7b9e8e1SGeert Uytterhoeven	depends on OF && (ARCH_SUNXI || COMPILE_TEST)
211a7f7f624SMasahiro Yamada	help
2124198b7dbSJoachim Eastwood	  Support for Allwinner A20/A31 GMAC ethernet controllers.
2134198b7dbSJoachim Eastwood
2144198b7dbSJoachim Eastwood	  This selects Allwinner SoC glue layer support for the
2154198b7dbSJoachim Eastwood	  stmmac device driver. This driver is used for A20/A31
2164198b7dbSJoachim Eastwood	  GMAC ethernet controller.
2179f93ac8dSLABBE Corentin
2189f93ac8dSLABBE Corentinconfig DWMAC_SUN8I
2199f93ac8dSLABBE Corentin	tristate "Allwinner sun8i GMAC support"
2209f93ac8dSLABBE Corentin	default ARCH_SUNXI
2219f93ac8dSLABBE Corentin	depends on OF && (ARCH_SUNXI || COMPILE_TEST)
222634db83bSCorentin Labbe	select MDIO_BUS_MUX
223a7f7f624SMasahiro Yamada	help
2249f93ac8dSLABBE Corentin	  Support for Allwinner H3 A83T A64 EMAC ethernet controllers.
2259f93ac8dSLABBE Corentin
2269f93ac8dSLABBE Corentin	  This selects Allwinner SoC glue layer support for the
2279f93ac8dSLABBE Corentin	  stmmac device driver. This driver is used for H3/A83T/A64
2289f93ac8dSLABBE Corentin	  EMAC ethernet controller.
22994abdad6SFugang Duan
23094abdad6SFugang Duanconfig DWMAC_IMX8
23194abdad6SFugang Duan	tristate "NXP IMX8 DWMAC support"
23294abdad6SFugang Duan	default ARCH_MXC
23394abdad6SFugang Duan	depends on OF && (ARCH_MXC || COMPILE_TEST)
23494abdad6SFugang Duan	select MFD_SYSCON
235a7f7f624SMasahiro Yamada	help
23694abdad6SFugang Duan	  Support for ethernet controller on NXP i.MX8 SOCs.
23794abdad6SFugang Duan
23894abdad6SFugang Duan	  This selects NXP SoC glue layer support for the stmmac
23994abdad6SFugang Duan	  device driver. This driver is used for i.MX8 series like
24094abdad6SFugang Duan	  iMX8MP/iMX8DXL GMAC ethernet controller.
24194abdad6SFugang Duan
2429efc9b2bSRusaimi Amira Ruslanconfig DWMAC_INTEL_PLAT
2439efc9b2bSRusaimi Amira Ruslan	tristate "Intel dwmac support"
2449efc9b2bSRusaimi Amira Ruslan	depends on OF && COMMON_CLK
2459efc9b2bSRusaimi Amira Ruslan	depends on STMMAC_ETH
2469efc9b2bSRusaimi Amira Ruslan	help
2479efc9b2bSRusaimi Amira Ruslan	  Support for ethernet controllers on Intel SoCs
2489efc9b2bSRusaimi Amira Ruslan
2499efc9b2bSRusaimi Amira Ruslan	  This selects the Intel platform specific glue layer support for
2509efc9b2bSRusaimi Amira Ruslan	  the stmmac device driver. This driver is used for the Intel Keem Bay
2519efc9b2bSRusaimi Amira Ruslan	  SoC.
252b38dd98fSNobuhiro Iwamatsu
253d8ca1137SBhadram Varkaconfig DWMAC_TEGRA
254d8ca1137SBhadram Varka	tristate "NVIDIA Tegra MGBE support"
255d8ca1137SBhadram Varka	depends on ARCH_TEGRA || COMPILE_TEST
256d8ca1137SBhadram Varka	help
257d8ca1137SBhadram Varka	  This selects the Multi-GigaBit Ethernet (MGBE) Controller that is
258d8ca1137SBhadram Varka	  found on the NVIDIA Tegra SoC devices. This driver provides the glue
259d8ca1137SBhadram Varka	  layer on top of the stmmac driver required for these NVIDIA Tegra SoC
260d8ca1137SBhadram Varka	  devices.
261d8ca1137SBhadram Varka
262b38dd98fSNobuhiro Iwamatsuconfig DWMAC_VISCONTI
263b38dd98fSNobuhiro Iwamatsu	tristate "Toshiba Visconti DWMAC support"
264b38dd98fSNobuhiro Iwamatsu	default ARCH_VISCONTI
265b38dd98fSNobuhiro Iwamatsu	depends on OF && COMMON_CLK && (ARCH_VISCONTI || COMPILE_TEST)
266b38dd98fSNobuhiro Iwamatsu	help
267b38dd98fSNobuhiro Iwamatsu	  Support for ethernet controller on Visconti SoCs.
268b38dd98fSNobuhiro Iwamatsu
269ba25020eSJoachim Eastwoodendif
270ba25020eSJoachim Eastwood
27158da0cfaSVoon Weifengconfig DWMAC_INTEL
27258da0cfaSVoon Weifeng	tristate "Intel GMAC support"
27358da0cfaSVoon Weifeng	default X86
27458da0cfaSVoon Weifeng	depends on X86 && STMMAC_ETH && PCI
27558da0cfaSVoon Weifeng	depends on COMMON_CLK
276a7f7f624SMasahiro Yamada	help
27758da0cfaSVoon Weifeng	  This selects the Intel platform specific bus support for the
27858da0cfaSVoon Weifeng	  stmmac driver. This driver is used for Intel Quark/EHL/TGL.
27958da0cfaSVoon Weifeng
28030bba69dSQing Zhangconfig DWMAC_LOONGSON
28130bba69dSQing Zhang	tristate "Loongson PCI DWMAC support"
28230bba69dSQing Zhang	default MACH_LOONGSON64
28330bba69dSQing Zhang	depends on STMMAC_ETH && PCI
28430bba69dSQing Zhang	depends on COMMON_CLK
28530bba69dSQing Zhang	help
28630bba69dSQing Zhang	  This selects the LOONGSON PCI bus support for the stmmac driver,
28730bba69dSQing Zhang	  Support for ethernet controller on Loongson-2K1000 SoC and LS7A1000 bridge.
28830bba69dSQing Zhang
289bfab27a1SGiuseppe CAVALLAROconfig STMMAC_PCI
290b2e2f0c7SAndy Shevchenko	tristate "STMMAC PCI bus support"
2916e1215adSKees Cook	depends on STMMAC_ETH && PCI
29227382472SStephen Rothwell	depends on COMMON_CLK
293a7f7f624SMasahiro Yamada	help
294ab70e586Sjpinto	  This selects the platform specific bus support for the stmmac driver.
295ab70e586Sjpinto	  This driver was tested on XLINX XC2V3000 FF1152AMT0221
296ab70e586Sjpinto	  D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit.
297bfab27a1SGiuseppe CAVALLARO
298ab70e586Sjpinto	  If you have a controller with this interface, say Y or M here.
299bfab27a1SGiuseppe CAVALLARO
300bfab27a1SGiuseppe CAVALLARO	  If unsure, say N.
3017ac6653aSJeff Kirsherendif
302