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
69 This module provides a driver for the independent MDIO bus
70 controllers found in the ASPEED AST2600 SoC. This is a driver for the
71 third revision of the ASPEED MDIO register interface - the first two
72 revisions are the "old" and "new" interfaces found in the AST2400 and
73 AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver
74 continues to drive the embedded MDIO controller for the AST2400 and
75 AST2500 SoCs, so say N if AST2600 support is not required.
78 tristate "Bitbanged MDIO buses"
80 This module implements the MDIO bus protocol in software,
81 for use by low level drivers that export the ability to
82 drive the relevant pins.
87 tristate "Broadcom iProc MDIO bus controller"
88 depends on ARCH_BCM_IPROC || COMPILE_TEST
89 depends on HAS_IOMEM && OF_MDIO
90 default ARCH_BCM_IPROC
92 This module provides a driver for the MDIO busses found in the
95 config MDIO_BCM_UNIMAC
96 tristate "Broadcom UniMAC MDIO bus controller"
99 This module provides a driver for the Broadcom UniMAC MDIO busses.
100 This hardware can be found in the Broadcom GENET Ethernet MAC
101 controllers as well as some Broadcom Ethernet switches such as the
102 Starfighter 2 switches.
108 tristate "GPIO lib-based bitbanged MDIO buses"
109 depends on MDIO_BITBANG
110 depends on GPIOLIB || COMPILE_TEST
112 Supports GPIO lib-based MDIO busses.
114 To compile this driver as a module, choose M here: the module
115 will be called mdio-gpio.
117 config MDIO_HISI_FEMAC
118 tristate "Hisilicon FEMAC MDIO bus controller"
119 depends on HAS_IOMEM && OF_MDIO
121 This module provides a driver for the MDIO busses found in the
122 Hisilicon SoC that have an Fast Ethernet MAC.
128 Support I2C based PHYs. This provides a MDIO bus bridged
129 to I2C to allow PHYs connected in I2C mode to be accessed
130 using the existing infrastructure.
132 This is library mode.
135 tristate "Marvell USB to MDIO Adapter"
139 A USB to MDIO converter present on development boards for
140 Marvell's Link Street family of Ethernet switches.
142 config MDIO_MSCC_MIIM
143 tristate "Microsemi MIIM interface support"
147 This driver supports the MIIM (MDIO) interface found in the network
148 switches of the Microsemi SoCs; it is recommended to switch on
149 CONFIG_HIGH_RES_TIMERS
152 tristate "MOXA ART MDIO interface support"
153 depends on ARCH_MOXART || COMPILE_TEST
155 This driver supports the MDIO interface found in the network
156 interface units of the MOXA ART SoC
159 tristate "Octeon and some ThunderX SOCs MDIO buses"
160 depends on (64BIT && OF_MDIO) || COMPILE_TEST
165 This module provides a driver for the Octeon and ThunderX MDIO
166 buses. It is required by the Octeon and ThunderX ethernet device
167 drivers on some systems.
170 tristate "Qualcomm IPQ4019 MDIO interface support"
171 depends on HAS_IOMEM && OF_MDIO
172 depends on COMMON_CLK
174 This driver supports the MDIO interface found in Qualcomm
175 IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
178 tristate "Qualcomm IPQ8064 MDIO interface support"
179 depends on HAS_IOMEM && OF_MDIO
180 depends on MFD_SYSCON
182 This driver supports the MDIO interface found in the network
183 interface units of the IPQ8064 SoC
186 tristate "ThunderX SOCs MDIO buses"
192 This driver supports the MDIO interfaces found on Cavium
193 ThunderX SoCs when the MDIO bus device appears as a PCI
196 comment "MDIO Multiplexers"
202 This module provides a driver framework for MDIO bus
203 multiplexers which connect one of several child MDIO busses
204 to a parent bus. Switching between child busses is done by
205 device specific drivers.
207 config MDIO_BUS_MUX_MESON_G12A
208 tristate "Amlogic G12a based MDIO bus multiplexer"
209 depends on ARCH_MESON || COMPILE_TEST
210 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
212 default m if ARCH_MESON
214 This module provides a driver for the MDIO multiplexer/glue of
215 the amlogic g12a SoC. The multiplexers connects either the external
216 or the internal MDIO bus to the parent bus.
218 config MDIO_BUS_MUX_BCM6368
219 tristate "Broadcom BCM6368 MDIO bus multiplexers"
220 depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST)
222 default BMIPS_GENERIC
224 This module provides a driver for MDIO bus multiplexers found in
225 BCM6368 based Broadcom SoCs. This multiplexer connects one of several
226 child MDIO bus to a parent bus. Buses could be internal as well as
227 external and selection logic lies inside the same multiplexer.
229 config MDIO_BUS_MUX_BCM_IPROC
230 tristate "Broadcom iProc based MDIO bus multiplexers"
231 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
233 default ARCH_BCM_IPROC
235 This module provides a driver for MDIO bus multiplexers found in
236 iProc based Broadcom SoCs. This multiplexer connects one of several
237 child MDIO bus to a parent bus. Buses could be internal as well as
238 external and selection logic lies inside the same multiplexer.
240 config MDIO_BUS_MUX_GPIO
241 tristate "GPIO controlled MDIO bus multiplexers"
242 depends on OF_GPIO && OF_MDIO
245 This module provides a driver for MDIO bus multiplexers that
246 are controlled via GPIO lines. The multiplexer connects one of
247 several child MDIO busses to a parent bus. Child bus
248 selection is under the control of GPIO lines.
250 config MDIO_BUS_MUX_MULTIPLEXER
251 tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
256 This module provides a driver for MDIO bus multiplexer
257 that is controlled via the kernel multiplexer subsystem. The
258 bus multiplexer connects one of several child MDIO busses to
259 a parent bus. Child bus selection is under the control of
260 the kernel multiplexer subsystem.
262 config MDIO_BUS_MUX_MMIOREG
263 tristate "MMIO device-controlled MDIO bus multiplexers"
264 depends on OF_MDIO && HAS_IOMEM
267 This module provides a driver for MDIO bus multiplexers that
268 are controlled via a simple memory-mapped device, like an FPGA.
269 The multiplexer connects one of several child MDIO busses to a
270 parent bus. Child bus selection is under the control of one of
271 the FPGA's registers.
273 Currently, only 8/16/32 bits registers are supported.