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