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