Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# MDIO Layer Configuration
4#
5
6if PHYLIB
7
8config FWNODE_MDIO
9 def_tristate (ACPI || OF) || COMPILE_TEST
10 select FIXED_PHY
11 help
12 FWNODE MDIO bus (Ethernet PHY) accessors
13
14config OF_MDIO
15 def_tristate OF
16 select FIXED_PHY
17 help
18 OpenFirmware MDIO bus (Ethernet PHY) accessors
19
20config ACPI_MDIO
21 def_tristate ACPI
22 help
23 ACPI MDIO bus (Ethernet PHY) accessors
24
25config MDIO_AIROHA
26 tristate "Airoha AN7583 MDIO bus controller"
27 depends on ARCH_AIROHA || COMPILE_TEST
28 help
29 This module provides a driver for the MDIO busses found in the
30 Airoha AN7583 SoC's.
31
32config MDIO_SUN4I
33 tristate "Allwinner sun4i MDIO interface support"
34 depends on ARCH_SUNXI || COMPILE_TEST
35 help
36 This driver supports the MDIO interface found in the network
37 interface units of the Allwinner SoC that have an EMAC (A10,
38 A12, A10s, etc.)
39
40config MDIO_XGENE
41 tristate "APM X-Gene SoC MDIO bus controller"
42 depends on ARCH_XGENE || COMPILE_TEST
43 help
44 This module provides a driver for the MDIO busses found in the
45 APM X-Gene SoC's.
46
47config MDIO_ASPEED
48 tristate "ASPEED MDIO bus controller"
49 depends on ARCH_ASPEED || COMPILE_TEST
50 depends on OF_MDIO && HAS_IOMEM
51 help
52 This module provides a driver for the independent MDIO bus
53 controllers found in the ASPEED AST2600 SoC. This is a driver for the
54 third revision of the ASPEED MDIO register interface - the first two
55 revisions are the "old" and "new" interfaces found in the AST2400 and
56 AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver
57 continues to drive the embedded MDIO controller for the AST2400 and
58 AST2500 SoCs, so say N if AST2600 support is not required.
59
60config MDIO_BITBANG
61 tristate "Bitbanged MDIO buses"
62 help
63 This module implements the MDIO bus protocol in software,
64 for use by low level drivers that export the ability to
65 drive the relevant pins.
66
67 If in doubt, say N.
68
69config MDIO_BCM_IPROC
70 tristate "Broadcom iProc MDIO bus controller"
71 depends on ARCH_BCM_IPROC || COMPILE_TEST
72 depends on HAS_IOMEM && OF_MDIO
73 default ARCH_BCM_IPROC
74 help
75 This module provides a driver for the MDIO busses found in the
76 Broadcom iProc SoC's.
77
78config MDIO_BCM_UNIMAC
79 tristate "Broadcom UniMAC MDIO bus controller"
80 depends on HAS_IOMEM
81 help
82 This module provides a driver for the Broadcom UniMAC MDIO busses.
83 This hardware can be found in the Broadcom GENET Ethernet MAC
84 controllers as well as some Broadcom Ethernet switches such as the
85 Starfighter 2 switches.
86
87config MDIO_CAVIUM
88 tristate
89
90config MDIO_GPIO
91 tristate "GPIO lib-based bitbanged MDIO buses"
92 depends on MDIO_BITBANG
93 depends on GPIOLIB || COMPILE_TEST
94 help
95 Supports GPIO lib-based MDIO busses.
96
97 To compile this driver as a module, choose M here: the module
98 will be called mdio-gpio.
99
100config MDIO_HISI_FEMAC
101 tristate "Hisilicon FEMAC MDIO bus controller"
102 depends on HAS_IOMEM && OF_MDIO
103 help
104 This module provides a driver for the MDIO busses found in the
105 Hisilicon SoC that have an Fast Ethernet MAC.
106
107config MDIO_I2C
108 tristate
109 depends on I2C
110 help
111 Support I2C based PHYs. This provides a MDIO bus bridged
112 to I2C to allow PHYs connected in I2C mode to be accessed
113 using the existing infrastructure.
114
115 This is library mode.
116
117config MDIO_MVUSB
118 tristate "Marvell USB to MDIO Adapter"
119 depends on USB
120 help
121 A USB to MDIO converter present on development boards for
122 Marvell's Link Street family of Ethernet switches.
123
124config MDIO_MSCC_MIIM
125 tristate "Microsemi MIIM interface support"
126 depends on HAS_IOMEM && REGMAP_MMIO
127 help
128 This driver supports the MIIM (MDIO) interface found in the network
129 switches of the Microsemi SoCs; it is recommended to switch on
130 CONFIG_HIGH_RES_TIMERS
131
132config MDIO_MOXART
133 tristate "MOXA ART MDIO interface support"
134 depends on ARCH_MOXART || COMPILE_TEST
135 help
136 This driver supports the MDIO interface found in the network
137 interface units of the MOXA ART SoC
138
139config MDIO_OCTEON
140 tristate "Octeon and some ThunderX SOCs MDIO buses"
141 depends on (64BIT && OF_MDIO) || COMPILE_TEST
142 depends on HAS_IOMEM
143 select MDIO_CAVIUM
144 help
145 This module provides a driver for the Octeon and ThunderX MDIO
146 buses. It is required by the Octeon and ThunderX ethernet device
147 drivers on some systems.
148
149config MDIO_IPQ4019
150 tristate "Qualcomm IPQ4019 MDIO interface support"
151 depends on HAS_IOMEM && OF_MDIO
152 depends on COMMON_CLK
153 help
154 This driver supports the MDIO interface found in Qualcomm
155 IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
156
157config MDIO_IPQ8064
158 tristate "Qualcomm IPQ8064 MDIO interface support"
159 depends on HAS_IOMEM && OF_MDIO
160 depends on MFD_SYSCON
161 help
162 This driver supports the MDIO interface found in the network
163 interface units of the IPQ8064 SoC
164
165config MDIO_REALTEK_RTL9300
166 tristate "Realtek RTL9300 MDIO interface support"
167 depends on MACH_REALTEK_RTL || COMPILE_TEST
168 help
169 This driver supports the MDIO interface found in the Realtek
170 RTL9300 family of Ethernet switches with integrated SoC.
171
172config MDIO_REGMAP
173 tristate
174 help
175 This driver allows using MDIO devices that are not sitting on a
176 regular MDIO bus, but still exposes the standard 802.3 register
177 layout. It's regmap-based so that it can be used on integrated,
178 memory-mapped PHYs, SPI PHYs and so on. A new virtual MDIO bus is
179 created, and its read/write operations are mapped to the underlying
180 regmap. Users willing to use this driver must explicitly select
181 REGMAP.
182
183config MDIO_THUNDER
184 tristate "ThunderX SOCs MDIO buses"
185 depends on 64BIT
186 depends on PCI
187 select MDIO_CAVIUM
188 help
189 This driver supports the MDIO interfaces found on Cavium
190 ThunderX SoCs when the MDIO bus device appears as a PCI
191 device.
192
193comment "MDIO Multiplexers"
194
195config MDIO_BUS_MUX
196 tristate
197 depends on OF_MDIO
198 help
199 This module provides a driver framework for MDIO bus
200 multiplexers which connect one of several child MDIO busses
201 to a parent bus. Switching between child busses is done by
202 device specific drivers.
203
204config MDIO_BUS_MUX_MESON_G12A
205 tristate "Amlogic G12a based MDIO bus multiplexer"
206 depends on ARCH_MESON || COMPILE_TEST
207 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
208 select MDIO_BUS_MUX
209 default m if ARCH_MESON
210 help
211 This module provides a driver for the MDIO multiplexer/glue of
212 the amlogic g12a SoC. The multiplexers connects either the external
213 or the internal MDIO bus to the parent bus.
214
215config MDIO_BUS_MUX_MESON_GXL
216 tristate "Amlogic GXL based MDIO bus multiplexer"
217 depends on ARCH_MESON || COMPILE_TEST
218 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
219 select MDIO_BUS_MUX
220 default m if ARCH_MESON
221 help
222 This module provides a driver for the MDIO multiplexer/glue of
223 the amlogic GXL SoC. The multiplexer connects either the external
224 or the internal MDIO bus to the parent bus.
225
226config MDIO_BUS_MUX_BCM6368
227 tristate "Broadcom BCM6368 MDIO bus multiplexers"
228 depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST)
229 select MDIO_BUS_MUX
230 default BMIPS_GENERIC
231 help
232 This module provides a driver for MDIO bus multiplexers found in
233 BCM6368 based Broadcom SoCs. This multiplexer connects one of several
234 child MDIO bus to a parent bus. Buses could be internal as well as
235 external and selection logic lies inside the same multiplexer.
236
237config MDIO_BUS_MUX_BCM_IPROC
238 tristate "Broadcom iProc based MDIO bus multiplexers"
239 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
240 select MDIO_BUS_MUX
241 default ARCH_BCM_IPROC
242 help
243 This module provides a driver for MDIO bus multiplexers found in
244 iProc based Broadcom SoCs. This multiplexer connects one of several
245 child MDIO bus to a parent bus. Buses could be internal as well as
246 external and selection logic lies inside the same multiplexer.
247
248config MDIO_BUS_MUX_GPIO
249 tristate "GPIO controlled MDIO bus multiplexers"
250 depends on OF_GPIO && OF_MDIO
251 select MDIO_BUS_MUX
252 help
253 This module provides a driver for MDIO bus multiplexers that
254 are controlled via GPIO lines. The multiplexer connects one of
255 several child MDIO busses to a parent bus. Child bus
256 selection is under the control of GPIO lines.
257
258config MDIO_BUS_MUX_MULTIPLEXER
259 tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
260 depends on OF_MDIO
261 select MULTIPLEXER
262 select MDIO_BUS_MUX
263 help
264 This module provides a driver for MDIO bus multiplexer
265 that is controlled via the kernel multiplexer subsystem. The
266 bus multiplexer connects one of several child MDIO busses to
267 a parent bus. Child bus selection is under the control of
268 the kernel multiplexer subsystem.
269
270config MDIO_BUS_MUX_MMIOREG
271 tristate "MMIO device-controlled MDIO bus multiplexers"
272 depends on OF_MDIO && HAS_IOMEM
273 select MDIO_BUS_MUX
274 help
275 This module provides a driver for MDIO bus multiplexers that
276 are controlled via a simple memory-mapped device, like an FPGA.
277 The multiplexer connects one of several child MDIO busses to a
278 parent bus. Child bus selection is under the control of one of
279 the FPGA's registers.
280
281 Currently, only 8/16/32 bits registers are supported.
282
283
284endif