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