xref: /linux/drivers/net/ethernet/stmicro/stmmac/Kconfig (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
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