1 # SPDX-License-Identifier: GPL-2.0-only
3 # MDIO Layer Configuration
7 tristate "MDIO bus device drivers"
9 MDIO devices and driver infrastructure code.
18 This internal symbol is used for link time dependencies and it
19 reflects whether the mdio_bus/mdio_device code is built as a
20 loadable module or built-in.
24 depends on (ACPI || OF) || COMPILE_TEST
27 FWNODE MDIO bus (Ethernet PHY) accessors
35 OpenFirmware MDIO bus (Ethernet PHY) accessors
42 ACPI MDIO bus (Ethernet PHY) accessors
50 tristate "Allwinner sun4i MDIO interface support"
51 depends on ARCH_SUNXI || COMPILE_TEST
53 This driver supports the MDIO interface found in the network
54 interface units of the Allwinner SoC that have an EMAC (A10,
58 tristate "APM X-Gene SoC MDIO bus controller"
59 depends on ARCH_XGENE || COMPILE_TEST
61 This module provides a driver for the MDIO busses found in the
65 tristate "ASPEED MDIO bus controller"
66 depends on ARCH_ASPEED || COMPILE_TEST
67 depends on OF_MDIO && HAS_IOMEM
68 depends on MDIO_DEVRES
70 This module provides a driver for the independent MDIO bus
71 controllers found in the ASPEED AST2600 SoC. This is a driver for the
72 third revision of the ASPEED MDIO register interface - the first two
73 revisions are the "old" and "new" interfaces found in the AST2400 and
74 AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver
75 continues to drive the embedded MDIO controller for the AST2400 and
76 AST2500 SoCs, so say N if AST2600 support is not required.
79 tristate "Bitbanged MDIO buses"
81 This module implements the MDIO bus protocol in software,
82 for use by low level drivers that export the ability to
83 drive the relevant pins.
88 tristate "Broadcom iProc MDIO bus controller"
89 depends on ARCH_BCM_IPROC || COMPILE_TEST
90 depends on HAS_IOMEM && OF_MDIO
91 default ARCH_BCM_IPROC
93 This module provides a driver for the MDIO busses found in the
96 config MDIO_BCM_UNIMAC
97 tristate "Broadcom UniMAC MDIO bus controller"
100 This module provides a driver for the Broadcom UniMAC MDIO busses.
101 This hardware can be found in the Broadcom GENET Ethernet MAC
102 controllers as well as some Broadcom Ethernet switches such as the
103 Starfighter 2 switches.
109 tristate "GPIO lib-based bitbanged MDIO buses"
110 depends on MDIO_BITBANG
111 depends on GPIOLIB || COMPILE_TEST
113 Supports GPIO lib-based MDIO busses.
115 To compile this driver as a module, choose M here: the module
116 will be called mdio-gpio.
118 config MDIO_HISI_FEMAC
119 tristate "Hisilicon FEMAC MDIO bus controller"
120 depends on HAS_IOMEM && OF_MDIO
122 This module provides a driver for the MDIO busses found in the
123 Hisilicon SoC that have an Fast Ethernet MAC.
129 Support I2C based PHYs. This provides a MDIO bus bridged
130 to I2C to allow PHYs connected in I2C mode to be accessed
131 using the existing infrastructure.
133 This is library mode.
136 tristate "Marvell USB to MDIO Adapter"
140 A USB to MDIO converter present on development boards for
141 Marvell's Link Street family of Ethernet switches.
143 config MDIO_MSCC_MIIM
144 tristate "Microsemi MIIM interface support"
145 depends on HAS_IOMEM && REGMAP_MMIO
148 This driver supports the MIIM (MDIO) interface found in the network
149 switches of the Microsemi SoCs; it is recommended to switch on
150 CONFIG_HIGH_RES_TIMERS
153 tristate "MOXA ART MDIO interface support"
154 depends on ARCH_MOXART || COMPILE_TEST
156 This driver supports the MDIO interface found in the network
157 interface units of the MOXA ART SoC
160 tristate "Octeon and some ThunderX SOCs MDIO buses"
161 depends on (64BIT && OF_MDIO) || COMPILE_TEST
166 This module provides a driver for the Octeon and ThunderX MDIO
167 buses. It is required by the Octeon and ThunderX ethernet device
168 drivers on some systems.
171 tristate "Qualcomm IPQ4019 MDIO interface support"
172 depends on HAS_IOMEM && OF_MDIO
173 depends on COMMON_CLK
174 depends on MDIO_DEVRES
176 This driver supports the MDIO interface found in Qualcomm
177 IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
180 tristate "Qualcomm IPQ8064 MDIO interface support"
181 depends on HAS_IOMEM && OF_MDIO
182 depends on MFD_SYSCON
183 depends on MDIO_DEVRES
185 This driver supports the MDIO interface found in the network
186 interface units of the IPQ8064 SoC
191 This driver allows using MDIO devices that are not sitting on a
192 regular MDIO bus, but still exposes the standard 802.3 register
193 layout. It's regmap-based so that it can be used on integrated,
194 memory-mapped PHYs, SPI PHYs and so on. A new virtual MDIO bus is
195 created, and its read/write operations are mapped to the underlying
196 regmap. Users willing to use this driver must explicitly select
200 tristate "ThunderX SOCs MDIO buses"
206 This driver supports the MDIO interfaces found on Cavium
207 ThunderX SoCs when the MDIO bus device appears as a PCI
210 comment "MDIO Multiplexers"
216 This module provides a driver framework for MDIO bus
217 multiplexers which connect one of several child MDIO busses
218 to a parent bus. Switching between child busses is done by
219 device specific drivers.
221 config MDIO_BUS_MUX_MESON_G12A
222 tristate "Amlogic G12a based MDIO bus multiplexer"
223 depends on ARCH_MESON || COMPILE_TEST
224 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
226 default m if ARCH_MESON
228 This module provides a driver for the MDIO multiplexer/glue of
229 the amlogic g12a SoC. The multiplexers connects either the external
230 or the internal MDIO bus to the parent bus.
232 config MDIO_BUS_MUX_MESON_GXL
233 tristate "Amlogic GXL based MDIO bus multiplexer"
234 depends on ARCH_MESON || COMPILE_TEST
235 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
237 default m if ARCH_MESON
239 This module provides a driver for the MDIO multiplexer/glue of
240 the amlogic GXL SoC. The multiplexer connects either the external
241 or the internal MDIO bus to the parent bus.
243 config MDIO_BUS_MUX_BCM6368
244 tristate "Broadcom BCM6368 MDIO bus multiplexers"
245 depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST)
247 default BMIPS_GENERIC
249 This module provides a driver for MDIO bus multiplexers found in
250 BCM6368 based Broadcom SoCs. This multiplexer connects one of several
251 child MDIO bus to a parent bus. Buses could be internal as well as
252 external and selection logic lies inside the same multiplexer.
254 config MDIO_BUS_MUX_BCM_IPROC
255 tristate "Broadcom iProc based MDIO bus multiplexers"
256 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
258 default ARCH_BCM_IPROC
260 This module provides a driver for MDIO bus multiplexers found in
261 iProc based Broadcom SoCs. This multiplexer connects one of several
262 child MDIO bus to a parent bus. Buses could be internal as well as
263 external and selection logic lies inside the same multiplexer.
265 config MDIO_BUS_MUX_GPIO
266 tristate "GPIO controlled MDIO bus multiplexers"
267 depends on OF_GPIO && OF_MDIO
270 This module provides a driver for MDIO bus multiplexers that
271 are controlled via GPIO lines. The multiplexer connects one of
272 several child MDIO busses to a parent bus. Child bus
273 selection is under the control of GPIO lines.
275 config MDIO_BUS_MUX_MULTIPLEXER
276 tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
281 This module provides a driver for MDIO bus multiplexer
282 that is controlled via the kernel multiplexer subsystem. The
283 bus multiplexer connects one of several child MDIO busses to
284 a parent bus. Child bus selection is under the control of
285 the kernel multiplexer subsystem.
287 config MDIO_BUS_MUX_MMIOREG
288 tristate "MMIO device-controlled MDIO bus multiplexers"
289 depends on OF_MDIO && HAS_IOMEM
292 This module provides a driver for MDIO bus multiplexers that
293 are controlled via a simple memory-mapped device, like an FPGA.
294 The multiplexer connects one of several child MDIO busses to a
295 parent bus. Child bus selection is under the control of one of
296 the FPGA's registers.
298 Currently, only 8/16/32 bits registers are supported.