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	select MII
6	select PAGE_POOL
7	select PHYLINK
8	select CRC32
9	imply PTP_1588_CLOCK
10	select RESET_CONTROLLER
11	---help---
12	  This is the driver for the Ethernet IPs built around a
13	  Synopsys IP Core.
14
15if STMMAC_ETH
16
17config STMMAC_SELFTESTS
18	bool "Support for STMMAC Selftests"
19	depends on INET
20	depends on STMMAC_ETH
21	default n
22	---help---
23	  This adds support for STMMAC Selftests using ethtool. Enable this
24	  feature if you are facing problems with your HW and submit the test
25	  results to the netdev Mailing List.
26
27config STMMAC_PLATFORM
28	tristate "STMMAC Platform bus support"
29	depends on STMMAC_ETH
30	select MFD_SYSCON
31	default y
32	---help---
33	  This selects the platform specific bus support for the stmmac driver.
34	  This is the driver used on several SoCs:
35	  STi, Allwinner, Amlogic Meson, Altera SOCFPGA.
36
37	  If you have a controller with this interface, say Y or M here.
38
39	  If unsure, say N.
40
41if STMMAC_PLATFORM
42
43config DWMAC_DWC_QOS_ETH
44	tristate "Support for snps,dwc-qos-ethernet.txt DT binding."
45	select CRC32
46	select MII
47	depends on OF && HAS_DMA
48	help
49	  Support for chips using the snps,dwc-qos-ethernet.txt DT binding.
50
51config DWMAC_GENERIC
52	tristate "Generic driver for DWMAC"
53	default STMMAC_PLATFORM
54	---help---
55	  Generic DWMAC driver for platforms that don't require any
56	  platform specific code to function or is using platform
57	  data for setup.
58
59config DWMAC_ANARION
60	tristate "Adaptrum Anarion GMAC support"
61	default ARC
62	depends on OF && (ARC || COMPILE_TEST)
63	help
64	  Support for Adaptrum Anarion GMAC Ethernet controller.
65
66	  This selects the Anarion SoC glue layer support for the stmmac driver.
67
68config DWMAC_IPQ806X
69	tristate "QCA IPQ806x DWMAC support"
70	default ARCH_QCOM
71	depends on OF && (ARCH_QCOM || COMPILE_TEST)
72	select MFD_SYSCON
73	help
74	  Support for QCA IPQ806X DWMAC Ethernet.
75
76	  This selects the IPQ806x SoC glue layer support for the stmmac
77	  device driver. This driver does not use any of the hardware
78	  acceleration features available on this SoC. Network devices
79	  will behave like standard non-accelerated ethernet interfaces.
80
81config DWMAC_LPC18XX
82	tristate "NXP LPC18xx/43xx DWMAC support"
83	default ARCH_LPC18XX
84	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
85	select MFD_SYSCON
86	---help---
87	  Support for NXP LPC18xx/43xx DWMAC Ethernet.
88
89config DWMAC_MEDIATEK
90	tristate "MediaTek MT27xx GMAC support"
91	depends on OF && (ARCH_MEDIATEK || COMPILE_TEST)
92	help
93	  Support for MediaTek GMAC Ethernet controller.
94
95	  This selects the MT2712 SoC support for the stmmac driver.
96
97config DWMAC_MESON
98	tristate "Amlogic Meson dwmac support"
99	default ARCH_MESON
100	depends on OF && COMMON_CLK && (ARCH_MESON || COMPILE_TEST)
101	help
102	  Support for Ethernet controller on Amlogic Meson SoCs.
103
104	  This selects the Amlogic Meson SoC glue layer support for
105	  the stmmac device driver. This driver is used for Meson6,
106	  Meson8, Meson8b and GXBB SoCs.
107
108config DWMAC_OXNAS
109	tristate "Oxford Semiconductor OXNAS dwmac support"
110	default ARCH_OXNAS
111	depends on OF && COMMON_CLK && (ARCH_OXNAS || COMPILE_TEST)
112	select MFD_SYSCON
113	help
114	  Support for Ethernet controller on Oxford Semiconductor OXNAS SoCs.
115
116	  This selects the Oxford Semiconductor OXNASSoC glue layer support for
117	  the stmmac device driver. This driver is used for OX820.
118
119config DWMAC_QCOM_ETHQOS
120	tristate "Qualcomm ETHQOS support"
121	default ARCH_QCOM
122	depends on OF && (ARCH_QCOM || COMPILE_TEST)
123	help
124	  Support for the Qualcomm ETHQOS core.
125
126	  This selects the Qualcomm ETHQOS glue layer support for the
127	  stmmac device driver.
128
129config DWMAC_ROCKCHIP
130	tristate "Rockchip dwmac support"
131	default ARCH_ROCKCHIP
132	depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST)
133	select MFD_SYSCON
134	help
135	  Support for Ethernet controller on Rockchip RK3288 SoC.
136
137	  This selects the Rockchip RK3288 SoC glue layer support for
138	  the stmmac device driver.
139
140config DWMAC_SOCFPGA
141	tristate "SOCFPGA dwmac support"
142	default (ARCH_SOCFPGA || ARCH_STRATIX10)
143	depends on OF && (ARCH_SOCFPGA || ARCH_STRATIX10 || COMPILE_TEST)
144	select MFD_SYSCON
145	help
146	  Support for ethernet controller on Altera SOCFPGA
147
148	  This selects the Altera SOCFPGA SoC glue layer support
149	  for the stmmac device driver. This driver is used for
150	  arria5 and cyclone5 FPGA SoCs.
151
152config DWMAC_STI
153	tristate "STi GMAC support"
154	default ARCH_STI
155	depends on OF && (ARCH_STI || COMPILE_TEST)
156	select MFD_SYSCON
157	---help---
158	  Support for ethernet controller on STi SOCs.
159
160	  This selects STi SoC glue layer support for the stmmac
161	  device driver. This driver is used on for the STi series
162	  SOCs GMAC ethernet controller.
163
164config DWMAC_STM32
165	tristate "STM32 DWMAC support"
166	default ARCH_STM32
167	depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST)
168	select MFD_SYSCON
169	---help---
170	  Support for ethernet controller on STM32 SOCs.
171
172	  This selects STM32 SoC glue layer support for the stmmac
173	  device driver. This driver is used on for the STM32 series
174	  SOCs GMAC ethernet controller.
175
176config DWMAC_SUNXI
177	tristate "Allwinner GMAC support"
178	default ARCH_SUNXI
179	depends on OF && (ARCH_SUNXI || COMPILE_TEST)
180	---help---
181	  Support for Allwinner A20/A31 GMAC ethernet controllers.
182
183	  This selects Allwinner SoC glue layer support for the
184	  stmmac device driver. This driver is used for A20/A31
185	  GMAC ethernet controller.
186
187config DWMAC_SUN8I
188	tristate "Allwinner sun8i GMAC support"
189	default ARCH_SUNXI
190	depends on OF && (ARCH_SUNXI || COMPILE_TEST)
191	select MDIO_BUS_MUX
192	---help---
193	  Support for Allwinner H3 A83T A64 EMAC ethernet controllers.
194
195	  This selects Allwinner SoC glue layer support for the
196	  stmmac device driver. This driver is used for H3/A83T/A64
197	  EMAC ethernet controller.
198endif
199
200config STMMAC_PCI
201	tristate "STMMAC PCI bus support"
202	depends on STMMAC_ETH && PCI
203	depends on COMMON_CLK
204	---help---
205	  This selects the platform specific bus support for the stmmac driver.
206	  This driver was tested on XLINX XC2V3000 FF1152AMT0221
207	  D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit.
208
209	  If you have a controller with this interface, say Y or M here.
210
211	  If unsure, say N.
212endif
213