stmmac: dwmac-loongson: Add architecture dependency
[platform/kernel/linux-starfive.git] / drivers / net / ethernet / stmicro / stmmac / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config STMMAC_ETH
3         tristate "STMicroelectronics Multi-Gigabit Ethernet driver"
4         depends on HAS_IOMEM && HAS_DMA
5         depends on PTP_1588_CLOCK_OPTIONAL
6         select MII
7         select PCS_XPCS
8         select PAGE_POOL
9         select PHYLINK
10         select CRC32
11         select RESET_CONTROLLER
12         help
13           This is the driver for the Ethernet IPs built around a
14           Synopsys IP Core.
15
16 if STMMAC_ETH
17
18 config STMMAC_SELFTESTS
19         bool "Support for STMMAC Selftests"
20         depends on INET
21         depends on STMMAC_ETH
22         default n
23         help
24           This adds support for STMMAC Selftests using ethtool. Enable this
25           feature if you are facing problems with your HW and submit the test
26           results to the netdev Mailing List.
27
28 config STMMAC_PLATFORM
29         tristate "STMMAC Platform bus support"
30         depends on STMMAC_ETH
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
42 if STMMAC_PLATFORM
43
44 config 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
52 config 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
60 config 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
69 config DWMAC_INGENIC
70         tristate "Ingenic MAC support"
71         default MACH_INGENIC
72         depends on OF && HAS_IOMEM && (MACH_INGENIC || COMPILE_TEST)
73         select MFD_SYSCON
74         help
75           Support for ethernet controller on Ingenic SoCs.
76
77           This selects Ingenic SoCs glue layer support for the stmmac
78           device driver. This driver is used on for the Ingenic SoCs
79           MAC ethernet controller.
80
81 config DWMAC_IPQ806X
82         tristate "QCA IPQ806x DWMAC support"
83         default ARCH_QCOM
84         depends on OF && (ARCH_QCOM || COMPILE_TEST)
85         select MFD_SYSCON
86         help
87           Support for QCA IPQ806X DWMAC Ethernet.
88
89           This selects the IPQ806x SoC glue layer support for the stmmac
90           device driver. This driver does not use any of the hardware
91           acceleration features available on this SoC. Network devices
92           will behave like standard non-accelerated ethernet interfaces.
93
94           Select the QCOM_SOCINFO config flag to enable specific dwmac
95           fixup based on the ipq806x SoC revision.
96
97 config DWMAC_LPC18XX
98         tristate "NXP LPC18xx/43xx DWMAC support"
99         default ARCH_LPC18XX
100         depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
101         select MFD_SYSCON
102         help
103           Support for NXP LPC18xx/43xx DWMAC Ethernet.
104
105 config DWMAC_MEDIATEK
106         tristate "MediaTek MT27xx GMAC support"
107         depends on OF && (ARCH_MEDIATEK || COMPILE_TEST)
108         help
109           Support for MediaTek GMAC Ethernet controller.
110
111           This selects the MT2712 SoC support for the stmmac driver.
112
113 config DWMAC_MESON
114         tristate "Amlogic Meson dwmac support"
115         default ARCH_MESON
116         depends on OF && COMMON_CLK && (ARCH_MESON || COMPILE_TEST)
117         help
118           Support for Ethernet controller on Amlogic Meson SoCs.
119
120           This selects the Amlogic Meson SoC glue layer support for
121           the stmmac device driver. This driver is used for Meson6,
122           Meson8, Meson8b and GXBB SoCs.
123
124 config DWMAC_QCOM_ETHQOS
125         tristate "Qualcomm ETHQOS support"
126         default ARCH_QCOM
127         depends on OF && (ARCH_QCOM || COMPILE_TEST)
128         help
129           Support for the Qualcomm ETHQOS core.
130
131           This selects the Qualcomm ETHQOS glue layer support for the
132           stmmac device driver.
133
134 config DWMAC_ROCKCHIP
135         tristate "Rockchip dwmac support"
136         default ARCH_ROCKCHIP
137         depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST)
138         select MFD_SYSCON
139         help
140           Support for Ethernet controller on Rockchip RK3288 SoC.
141
142           This selects the Rockchip RK3288 SoC glue layer support for
143           the stmmac device driver.
144
145 config DWMAC_SOCFPGA
146         tristate "SOCFPGA dwmac support"
147         default ARCH_INTEL_SOCFPGA
148         depends on OF && (ARCH_INTEL_SOCFPGA || COMPILE_TEST)
149         select MFD_SYSCON
150         select MDIO_REGMAP
151         select REGMAP_MMIO
152         select PCS_LYNX
153         help
154           Support for ethernet controller on Altera SOCFPGA
155
156           This selects the Altera SOCFPGA SoC glue layer support
157           for the stmmac device driver. This driver is used for
158           arria5 and cyclone5 FPGA SoCs.
159
160 config DWMAC_STARFIVE
161         tristate "StarFive dwmac support"
162         depends on OF && (ARCH_STARFIVE || COMPILE_TEST)
163         select MFD_SYSCON
164         default m if ARCH_STARFIVE
165         help
166           Support for ethernet controllers on StarFive RISC-V SoCs
167
168           This selects the StarFive platform specific glue layer support for
169           the stmmac device driver. This driver is used for StarFive JH7110
170           ethernet controller.
171
172 config DWMAC_STI
173         tristate "STi GMAC support"
174         default ARCH_STI
175         depends on OF && (ARCH_STI || COMPILE_TEST)
176         select MFD_SYSCON
177         help
178           Support for ethernet controller on STi SOCs.
179
180           This selects STi SoC glue layer support for the stmmac
181           device driver. This driver is used on for the STi series
182           SOCs GMAC ethernet controller.
183
184 config DWMAC_STM32
185         tristate "STM32 DWMAC support"
186         default ARCH_STM32
187         depends on OF && HAS_IOMEM && (ARCH_STM32 || COMPILE_TEST)
188         select MFD_SYSCON
189         help
190           Support for ethernet controller on STM32 SOCs.
191
192           This selects STM32 SoC glue layer support for the stmmac
193           device driver. This driver is used on for the STM32 series
194           SOCs GMAC ethernet controller.
195
196 config DWMAC_SUNXI
197         tristate "Allwinner GMAC support"
198         default ARCH_SUNXI
199         depends on OF && (ARCH_SUNXI || COMPILE_TEST)
200         help
201           Support for Allwinner A20/A31 GMAC ethernet controllers.
202
203           This selects Allwinner SoC glue layer support for the
204           stmmac device driver. This driver is used for A20/A31
205           GMAC ethernet controller.
206
207 config DWMAC_SUN8I
208         tristate "Allwinner sun8i GMAC support"
209         default ARCH_SUNXI
210         depends on OF && (ARCH_SUNXI || COMPILE_TEST)
211         select MDIO_BUS_MUX
212         help
213           Support for Allwinner H3 A83T A64 EMAC ethernet controllers.
214
215           This selects Allwinner SoC glue layer support for the
216           stmmac device driver. This driver is used for H3/A83T/A64
217           EMAC ethernet controller.
218
219 config DWMAC_IMX8
220         tristate "NXP IMX8 DWMAC support"
221         default ARCH_MXC
222         depends on OF && (ARCH_MXC || COMPILE_TEST)
223         select MFD_SYSCON
224         help
225           Support for ethernet controller on NXP i.MX8 SOCs.
226
227           This selects NXP SoC glue layer support for the stmmac
228           device driver. This driver is used for i.MX8 series like
229           iMX8MP/iMX8DXL GMAC ethernet controller.
230
231 config DWMAC_INTEL_PLAT
232         tristate "Intel dwmac support"
233         depends on OF && COMMON_CLK
234         depends on STMMAC_ETH
235         help
236           Support for ethernet controllers on Intel SoCs
237
238           This selects the Intel platform specific glue layer support for
239           the stmmac device driver. This driver is used for the Intel Keem Bay
240           SoC.
241
242 config DWMAC_TEGRA
243         tristate "NVIDIA Tegra MGBE support"
244         depends on ARCH_TEGRA || COMPILE_TEST
245         help
246           This selects the Multi-GigaBit Ethernet (MGBE) Controller that is
247           found on the NVIDIA Tegra SoC devices. This driver provides the glue
248           layer on top of the stmmac driver required for these NVIDIA Tegra SoC
249           devices.
250
251 config DWMAC_VISCONTI
252         tristate "Toshiba Visconti DWMAC support"
253         default ARCH_VISCONTI
254         depends on OF && COMMON_CLK && (ARCH_VISCONTI || COMPILE_TEST)
255         help
256           Support for ethernet controller on Visconti SoCs.
257
258 endif
259
260 config DWMAC_INTEL
261         tristate "Intel GMAC support"
262         default X86
263         depends on X86 && STMMAC_ETH && PCI
264         depends on COMMON_CLK
265         help
266           This selects the Intel platform specific bus support for the
267           stmmac driver. This driver is used for Intel Quark/EHL/TGL.
268
269 config DWMAC_LOONGSON
270         tristate "Loongson PCI DWMAC support"
271         default MACH_LOONGSON64
272         depends on (MACH_LOONGSON64 || COMPILE_TEST) && STMMAC_ETH && PCI
273         depends on COMMON_CLK
274         help
275           This selects the LOONGSON PCI bus support for the stmmac driver,
276           Support for ethernet controller on Loongson-2K1000 SoC and LS7A1000 bridge.
277
278 config STMMAC_PCI
279         tristate "STMMAC PCI bus support"
280         depends on STMMAC_ETH && PCI
281         depends on COMMON_CLK
282         help
283           This selects the platform specific bus support for the stmmac driver.
284           This driver was tested on XLINX XC2V3000 FF1152AMT0221
285           D1215994A VIRTEX FPGA board and SNPS QoS IPK Prototyping Kit.
286
287           If you have a controller with this interface, say Y or M here.
288
289           If unsure, say N.
290 endif