xref: /linux/drivers/net/ethernet/stmicro/stmmac/Kconfig (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
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 support"
137	default ARCH_RENESAS
138	depends on OF && (ARCH_RENESAS || COMPILE_TEST)
139	help
140	  Support for Gigabit Ethernet Interface (GBETH) on Renesas
141	  RZ/V2H(P) SoCs.
142
143	  This selects the Renesas RZ/V2H(P) Soc specific glue layer support
144	  for the stmmac device driver.
145
146config DWMAC_ROCKCHIP
147	tristate "Rockchip dwmac support"
148	default ARCH_ROCKCHIP
149	depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST)
150	select MFD_SYSCON
151	help
152	  Support for Ethernet controller on Rockchip RK3288 SoC.
153
154	  This selects the Rockchip RK3288 SoC glue layer support for
155	  the stmmac device driver.
156
157config DWMAC_RZN1
158	tristate "Renesas RZ/N1 dwmac support"
159	default ARCH_RZN1
160	depends on OF && (ARCH_RZN1 || COMPILE_TEST)
161	select PCS_RZN1_MIIC
162	help
163	  Support for Ethernet controller on Renesas RZ/N1 SoC family.
164
165	  This selects the Renesas RZ/N1 SoC glue layer support for
166	  the stmmac device driver. This support can make use of a custom MII
167	  converter PCS device.
168
169config DWMAC_S32
170	tristate "NXP S32G/S32R GMAC support"
171	default ARCH_S32
172	depends on OF && (ARCH_S32 || COMPILE_TEST)
173	help
174	  Support for ethernet controller on NXP S32CC SOCs.
175
176	  This selects NXP SoC glue layer support for the stmmac
177	  device driver. This driver is used for the S32CC series
178	  SOCs GMAC ethernet controller, ie. S32G2xx, S32G3xx and
179	  S32R45.
180
181config DWMAC_SOCFPGA
182	tristate "SOCFPGA dwmac support"
183	default ARCH_INTEL_SOCFPGA
184	depends on OF && (ARCH_INTEL_SOCFPGA || COMPILE_TEST)
185	select MFD_SYSCON
186	select MDIO_REGMAP
187	select REGMAP_MMIO
188	select PCS_LYNX
189	help
190	  Support for ethernet controller on Altera SOCFPGA
191
192	  This selects the Altera SOCFPGA SoC glue layer support
193	  for the stmmac device driver. This driver is used for
194	  arria5 and cyclone5 FPGA SoCs.
195
196config DWMAC_SOPHGO
197	tristate "Sophgo dwmac support"
198	depends on OF && (ARCH_SOPHGO || COMPILE_TEST)
199	default m if ARCH_SOPHGO
200	help
201	  Support for ethernet controllers on Sophgo RISC-V SoCs
202
203	  This selects the Sophgo SoC specific glue layer support
204	  for the stmmac device driver. This driver is used for the
205	  ethernet controllers on various Sophgo SoCs.
206
207config DWMAC_STARFIVE
208	tristate "StarFive dwmac support"
209	depends on OF && (ARCH_STARFIVE || COMPILE_TEST)
210	select MFD_SYSCON
211	default m if ARCH_STARFIVE
212	help
213	  Support for ethernet controllers on StarFive RISC-V SoCs
214
215	  This selects the StarFive platform specific glue layer support
216	  for the stmmac device driver. This driver is used for the
217	  StarFive JH7100 and JH7110 ethernet controllers.
218
219config DWMAC_STI
220	tristate "STi GMAC support"
221	default ARCH_STI
222	depends on OF && (ARCH_STI || COMPILE_TEST)
223	select MFD_SYSCON
224	help
225	  Support for ethernet controller on STi SOCs.
226
227	  This selects STi SoC glue layer support for the stmmac
228	  device driver. This driver is used on for the STi series
229	  SOCs GMAC ethernet controller.
230
231config DWMAC_STM32
232	tristate "STM32 DWMAC support"
233	default ARCH_STM32
234	depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST)
235	select MFD_SYSCON
236	help
237	  Support for ethernet controller on STM32 SOCs.
238
239	  This selects STM32 SoC glue layer support for the stmmac
240	  device driver. This driver is used on for the STM32 series
241	  SOCs GMAC ethernet controller.
242
243config DWMAC_SUNXI
244	tristate "Allwinner GMAC support"
245	default ARCH_SUNXI
246	depends on OF && (ARCH_SUNXI || COMPILE_TEST)
247	help
248	  Support for Allwinner A20/A31 GMAC ethernet controllers.
249
250	  This selects Allwinner SoC glue layer support for the
251	  stmmac device driver. This driver is used for A20/A31
252	  GMAC ethernet controller.
253
254config DWMAC_SUN8I
255	tristate "Allwinner sun8i GMAC support"
256	default ARCH_SUNXI
257	depends on OF && (ARCH_SUNXI || COMPILE_TEST)
258	select MDIO_BUS_MUX
259	help
260	  Support for Allwinner H3 A83T A64 EMAC ethernet controllers.
261
262	  This selects Allwinner SoC glue layer support for the
263	  stmmac device driver. This driver is used for H3/A83T/A64
264	  EMAC ethernet controller.
265
266config DWMAC_THEAD
267	tristate "T-HEAD dwmac support"
268	depends on OF && (ARCH_THEAD || COMPILE_TEST)
269	help
270	  Support for ethernet controllers on T-HEAD RISC-V SoCs
271
272	  This selects the T-HEAD platform specific glue layer support for
273	  the stmmac device driver. This driver is used for T-HEAD TH1520
274	  ethernet controller.
275
276config DWMAC_IMX8
277	tristate "NXP IMX8 DWMAC support"
278	default ARCH_MXC
279	depends on OF && (ARCH_MXC || COMPILE_TEST)
280	select MFD_SYSCON
281	help
282	  Support for ethernet controller on NXP i.MX8 SOCs.
283
284	  This selects NXP SoC glue layer support for the stmmac
285	  device driver. This driver is used for i.MX8 series like
286	  iMX8MP/iMX8DXL GMAC ethernet controller.
287
288config DWMAC_INTEL_PLAT
289	tristate "Intel dwmac support"
290	depends on OF && COMMON_CLK
291	depends on STMMAC_ETH
292	help
293	  Support for ethernet controllers on Intel SoCs
294
295	  This selects the Intel platform specific glue layer support for
296	  the stmmac device driver. This driver is used for the Intel Keem Bay
297	  SoC.
298
299config DWMAC_LOONGSON1
300	tristate "Loongson1 GMAC support"
301	default MACH_LOONGSON32
302	depends on OF && (MACH_LOONGSON32 || COMPILE_TEST)
303	help
304	  Support for ethernet controller on Loongson1 SoC.
305
306	  This selects Loongson1 SoC glue layer support for the stmmac
307	  device driver. This driver is used for Loongson1-based boards
308	  like Loongson LS1B/LS1C.
309
310config DWMAC_TEGRA
311	tristate "NVIDIA Tegra MGBE support"
312	depends on ARCH_TEGRA || COMPILE_TEST
313	help
314	  This selects the Multi-GigaBit Ethernet (MGBE) Controller that is
315	  found on the NVIDIA Tegra SoC devices. This driver provides the glue
316	  layer on top of the stmmac driver required for these NVIDIA Tegra SoC
317	  devices.
318
319config DWMAC_VISCONTI
320	tristate "Toshiba Visconti DWMAC support"
321	default ARCH_VISCONTI
322	depends on OF && COMMON_CLK && (ARCH_VISCONTI || COMPILE_TEST)
323	help
324	  Support for ethernet controller on Visconti SoCs.
325
326endif
327
328config DWMAC_INTEL
329	tristate "Intel GMAC support"
330	default X86
331	depends on X86 && STMMAC_ETH && PCI
332	depends on COMMON_CLK
333	depends on ACPI
334	help
335	  This selects the Intel platform specific bus support for the
336	  stmmac driver. This driver is used for Intel Quark/EHL/TGL.
337
338config DWMAC_LOONGSON
339	tristate "Loongson PCI DWMAC support"
340	default MACH_LOONGSON64
341	depends on (MACH_LOONGSON64 || COMPILE_TEST) && STMMAC_ETH && PCI
342	depends on COMMON_CLK
343	help
344	  This selects the LOONGSON PCI bus support for the stmmac driver,
345	  Support for ethernet controller on Loongson-2K1000 SoC and LS7A1000 bridge.
346
347config STMMAC_PCI
348	tristate "STMMAC PCI bus support"
349	depends on STMMAC_ETH && PCI
350	depends on COMMON_CLK
351	help
352	  This selects the platform specific bus support for the stmmac driver.
353	  This driver was tested on XLINX XC2V3000 FF1152AMT0221
354	  D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit.
355
356	  If you have a controller with this interface, say Y or M here.
357
358	  If unsure, say N.
359endif
360