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	select MII
6	select MDIO_XPCS
7	select PAGE_POOL
8	select PHYLINK
9	select CRC32
10	imply PTP_1588_CLOCK
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_IPQ806X
70	tristate "QCA IPQ806x DWMAC support"
71	default ARCH_QCOM
72	depends on OF && (ARCH_QCOM || COMPILE_TEST)
73	select MFD_SYSCON
74	help
75	  Support for QCA IPQ806X DWMAC Ethernet.
76
77	  This selects the IPQ806x SoC glue layer support for the stmmac
78	  device driver. This driver does not use any of the hardware
79	  acceleration features available on this SoC. Network devices
80	  will behave like standard non-accelerated ethernet interfaces.
81
82config DWMAC_LPC18XX
83	tristate "NXP LPC18xx/43xx DWMAC support"
84	default ARCH_LPC18XX
85	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
86	select MFD_SYSCON
87	---help---
88	  Support for NXP LPC18xx/43xx DWMAC Ethernet.
89
90config DWMAC_MEDIATEK
91	tristate "MediaTek MT27xx GMAC support"
92	depends on OF && (ARCH_MEDIATEK || COMPILE_TEST)
93	help
94	  Support for MediaTek GMAC Ethernet controller.
95
96	  This selects the MT2712 SoC support for the stmmac driver.
97
98config DWMAC_MESON
99	tristate "Amlogic Meson dwmac support"
100	default ARCH_MESON
101	depends on OF && COMMON_CLK && (ARCH_MESON || COMPILE_TEST)
102	help
103	  Support for Ethernet controller on Amlogic Meson SoCs.
104
105	  This selects the Amlogic Meson SoC glue layer support for
106	  the stmmac device driver. This driver is used for Meson6,
107	  Meson8, Meson8b and GXBB SoCs.
108
109config DWMAC_OXNAS
110	tristate "Oxford Semiconductor OXNAS dwmac support"
111	default ARCH_OXNAS
112	depends on OF && COMMON_CLK && (ARCH_OXNAS || COMPILE_TEST)
113	select MFD_SYSCON
114	help
115	  Support for Ethernet controller on Oxford Semiconductor OXNAS SoCs.
116
117	  This selects the Oxford Semiconductor OXNASSoC glue layer support for
118	  the stmmac device driver. This driver is used for OX820.
119
120config DWMAC_QCOM_ETHQOS
121	tristate "Qualcomm ETHQOS support"
122	default ARCH_QCOM
123	depends on OF && (ARCH_QCOM || COMPILE_TEST)
124	help
125	  Support for the Qualcomm ETHQOS core.
126
127	  This selects the Qualcomm ETHQOS glue layer support for the
128	  stmmac device driver.
129
130config DWMAC_ROCKCHIP
131	tristate "Rockchip dwmac support"
132	default ARCH_ROCKCHIP
133	depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST)
134	select MFD_SYSCON
135	help
136	  Support for Ethernet controller on Rockchip RK3288 SoC.
137
138	  This selects the Rockchip RK3288 SoC glue layer support for
139	  the stmmac device driver.
140
141config DWMAC_SOCFPGA
142	tristate "SOCFPGA dwmac support"
143	default (ARCH_SOCFPGA || ARCH_STRATIX10)
144	depends on OF && (ARCH_SOCFPGA || ARCH_STRATIX10 || COMPILE_TEST)
145	select MFD_SYSCON
146	help
147	  Support for ethernet controller on Altera SOCFPGA
148
149	  This selects the Altera SOCFPGA SoC glue layer support
150	  for the stmmac device driver. This driver is used for
151	  arria5 and cyclone5 FPGA SoCs.
152
153config DWMAC_STI
154	tristate "STi GMAC support"
155	default ARCH_STI
156	depends on OF && (ARCH_STI || COMPILE_TEST)
157	select MFD_SYSCON
158	---help---
159	  Support for ethernet controller on STi SOCs.
160
161	  This selects STi SoC glue layer support for the stmmac
162	  device driver. This driver is used on for the STi series
163	  SOCs GMAC ethernet controller.
164
165config DWMAC_STM32
166	tristate "STM32 DWMAC support"
167	default ARCH_STM32
168	depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST)
169	select MFD_SYSCON
170	---help---
171	  Support for ethernet controller on STM32 SOCs.
172
173	  This selects STM32 SoC glue layer support for the stmmac
174	  device driver. This driver is used on for the STM32 series
175	  SOCs GMAC ethernet controller.
176
177config DWMAC_SUNXI
178	tristate "Allwinner GMAC support"
179	default ARCH_SUNXI
180	depends on OF && (ARCH_SUNXI || COMPILE_TEST)
181	---help---
182	  Support for Allwinner A20/A31 GMAC ethernet controllers.
183
184	  This selects Allwinner SoC glue layer support for the
185	  stmmac device driver. This driver is used for A20/A31
186	  GMAC ethernet controller.
187
188config DWMAC_SUN8I
189	tristate "Allwinner sun8i GMAC support"
190	default ARCH_SUNXI
191	depends on OF && (ARCH_SUNXI || COMPILE_TEST)
192	select MDIO_BUS_MUX
193	---help---
194	  Support for Allwinner H3 A83T A64 EMAC ethernet controllers.
195
196	  This selects Allwinner SoC glue layer support for the
197	  stmmac device driver. This driver is used for H3/A83T/A64
198	  EMAC ethernet controller.
199endif
200
201config DWMAC_INTEL
202	tristate "Intel GMAC support"
203	default X86
204	depends on X86 && STMMAC_ETH && PCI
205	depends on COMMON_CLK
206	---help---
207	  This selects the Intel platform specific bus support for the
208	  stmmac driver. This driver is used for Intel Quark/EHL/TGL.
209
210config STMMAC_PCI
211	tristate "STMMAC PCI bus support"
212	depends on STMMAC_ETH && PCI
213	depends on COMMON_CLK
214	---help---
215	  This selects the platform specific bus support for the stmmac driver.
216	  This driver was tested on XLINX XC2V3000 FF1152AMT0221
217	  D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit.
218
219	  If you have a controller with this interface, say Y or M here.
220
221	  If unsure, say N.
222endif
223