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.
28 OpenFirmware MDIO bus (Ethernet PHY) accessors
36 tristate "Allwinner sun4i MDIO interface support"
37 depends on ARCH_SUNXI || COMPILE_TEST
39 This driver supports the MDIO interface found in the network
40 interface units of the Allwinner SoC that have an EMAC (A10,
44 tristate "APM X-Gene SoC MDIO bus controller"
45 depends on ARCH_XGENE || COMPILE_TEST
47 This module provides a driver for the MDIO busses found in the
51 tristate "ASPEED MDIO bus controller"
52 depends on ARCH_ASPEED || COMPILE_TEST
53 depends on OF_MDIO && HAS_IOMEM
55 This module provides a driver for the independent MDIO bus
56 controllers found in the ASPEED AST2600 SoC. This is a driver for the
57 third revision of the ASPEED MDIO register interface - the first two
58 revisions are the "old" and "new" interfaces found in the AST2400 and
59 AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver
60 continues to drive the embedded MDIO controller for the AST2400 and
61 AST2500 SoCs, so say N if AST2600 support is not required.
64 tristate "Bitbanged MDIO buses"
66 This module implements the MDIO bus protocol in software,
67 for use by low level drivers that export the ability to
68 drive the relevant pins.
73 tristate "Broadcom iProc MDIO bus controller"
74 depends on ARCH_BCM_IPROC || COMPILE_TEST
75 depends on HAS_IOMEM && OF_MDIO
76 default ARCH_BCM_IPROC
78 This module provides a driver for the MDIO busses found in the
81 config MDIO_BCM_UNIMAC
82 tristate "Broadcom UniMAC MDIO bus controller"
85 This module provides a driver for the Broadcom UniMAC MDIO busses.
86 This hardware can be found in the Broadcom GENET Ethernet MAC
87 controllers as well as some Broadcom Ethernet switches such as the
88 Starfighter 2 switches.
94 tristate "GPIO lib-based bitbanged MDIO buses"
95 depends on MDIO_BITBANG
96 depends on GPIOLIB || COMPILE_TEST
98 Supports GPIO lib-based MDIO busses.
100 To compile this driver as a module, choose M here: the module
101 will be called mdio-gpio.
103 config MDIO_HISI_FEMAC
104 tristate "Hisilicon FEMAC MDIO bus controller"
105 depends on HAS_IOMEM && OF_MDIO
107 This module provides a driver for the MDIO busses found in the
108 Hisilicon SoC that have an Fast Ethernet MAC.
114 Support I2C based PHYs. This provides a MDIO bus bridged
115 to I2C to allow PHYs connected in I2C mode to be accessed
116 using the existing infrastructure.
118 This is library mode.
121 tristate "Marvell USB to MDIO Adapter"
125 A USB to MDIO converter present on development boards for
126 Marvell's Link Street family of Ethernet switches.
128 config MDIO_MSCC_MIIM
129 tristate "Microsemi MIIM interface support"
133 This driver supports the MIIM (MDIO) interface found in the network
134 switches of the Microsemi SoCs; it is recommended to switch on
135 CONFIG_HIGH_RES_TIMERS
138 tristate "MOXA ART MDIO interface support"
139 depends on ARCH_MOXART || COMPILE_TEST
141 This driver supports the MDIO interface found in the network
142 interface units of the MOXA ART SoC
145 tristate "Octeon and some ThunderX SOCs MDIO buses"
146 depends on (64BIT && OF_MDIO) || COMPILE_TEST
151 This module provides a driver for the Octeon and ThunderX MDIO
152 buses. It is required by the Octeon and ThunderX ethernet device
153 drivers on some systems.
156 tristate "Qualcomm IPQ4019 MDIO interface support"
157 depends on HAS_IOMEM && OF_MDIO
159 This driver supports the MDIO interface found in Qualcomm
160 IPQ40xx series Soc-s.
163 tristate "Qualcomm IPQ8064 MDIO interface support"
164 depends on HAS_IOMEM && OF_MDIO
165 depends on MFD_SYSCON
167 This driver supports the MDIO interface found in the network
168 interface units of the IPQ8064 SoC
171 tristate "ThunderX SOCs MDIO buses"
177 This driver supports the MDIO interfaces found on Cavium
178 ThunderX SoCs when the MDIO bus device appears as a PCI
181 comment "MDIO Multiplexers"
187 This module provides a driver framework for MDIO bus
188 multiplexers which connect one of several child MDIO busses
189 to a parent bus. Switching between child busses is done by
190 device specific drivers.
192 config MDIO_BUS_MUX_MESON_G12A
193 tristate "Amlogic G12a based MDIO bus multiplexer"
194 depends on ARCH_MESON || COMPILE_TEST
195 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
197 default m if ARCH_MESON
199 This module provides a driver for the MDIO multiplexer/glue of
200 the amlogic g12a SoC. The multiplexers connects either the external
201 or the internal MDIO bus to the parent bus.
203 config MDIO_BUS_MUX_BCM_IPROC
204 tristate "Broadcom iProc based MDIO bus multiplexers"
205 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
207 default ARCH_BCM_IPROC
209 This module provides a driver for MDIO bus multiplexers found in
210 iProc based Broadcom SoCs. This multiplexer connects one of several
211 child MDIO bus to a parent bus. Buses could be internal as well as
212 external and selection logic lies inside the same multiplexer.
214 config MDIO_BUS_MUX_GPIO
215 tristate "GPIO controlled MDIO bus multiplexers"
216 depends on OF_GPIO && OF_MDIO
219 This module provides a driver for MDIO bus multiplexers that
220 are controlled via GPIO lines. The multiplexer connects one of
221 several child MDIO busses to a parent bus. Child bus
222 selection is under the control of GPIO lines.
224 config MDIO_BUS_MUX_MULTIPLEXER
225 tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
230 This module provides a driver for MDIO bus multiplexer
231 that is controlled via the kernel multiplexer subsystem. The
232 bus multiplexer connects one of several child MDIO busses to
233 a parent bus. Child bus selection is under the control of
234 the kernel multiplexer subsystem.
236 config MDIO_BUS_MUX_MMIOREG
237 tristate "MMIO device-controlled MDIO bus multiplexers"
238 depends on OF_MDIO && HAS_IOMEM
241 This module provides a driver for MDIO bus multiplexers that
242 are controlled via a simple memory-mapped device, like an FPGA.
243 The multiplexer connects one of several child MDIO busses to a
244 parent bus. Child bus selection is under the control of one of
245 the FPGA's registers.
247 Currently, only 8/16/32 bits registers are supported.