303 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2#3# MDIO Layer Configuration4#5 6menuconfig MDIO_DEVICE7 tristate "MDIO bus device drivers"8 help9 MDIO devices and driver infrastructure code.10 11if MDIO_DEVICE12 13config MDIO_BUS14 tristate15 default m if PHYLIB=m16 default MDIO_DEVICE17 help18 This internal symbol is used for link time dependencies and it19 reflects whether the mdio_bus/mdio_device code is built as a20 loadable module or built-in.21 22config FWNODE_MDIO23 def_tristate PHYLIB24 depends on (ACPI || OF) || COMPILE_TEST25 select FIXED_PHY26 help27 FWNODE MDIO bus (Ethernet PHY) accessors28 29config OF_MDIO30 def_tristate PHYLIB31 depends on OF32 depends on PHYLIB33 select FIXED_PHY34 help35 OpenFirmware MDIO bus (Ethernet PHY) accessors36 37config ACPI_MDIO38 def_tristate PHYLIB39 depends on ACPI40 depends on PHYLIB41 help42 ACPI MDIO bus (Ethernet PHY) accessors43 44if MDIO_BUS45 46config MDIO_DEVRES47 tristate48 49config MDIO_SUN4I50 tristate "Allwinner sun4i MDIO interface support"51 depends on ARCH_SUNXI || COMPILE_TEST52 help53 This driver supports the MDIO interface found in the network54 interface units of the Allwinner SoC that have an EMAC (A10,55 A12, A10s, etc.)56 57config MDIO_XGENE58 tristate "APM X-Gene SoC MDIO bus controller"59 depends on ARCH_XGENE || COMPILE_TEST60 help61 This module provides a driver for the MDIO busses found in the62 APM X-Gene SoC's.63 64config MDIO_ASPEED65 tristate "ASPEED MDIO bus controller"66 depends on ARCH_ASPEED || COMPILE_TEST67 depends on OF_MDIO && HAS_IOMEM68 depends on MDIO_DEVRES69 help70 This module provides a driver for the independent MDIO bus71 controllers found in the ASPEED AST2600 SoC. This is a driver for the72 third revision of the ASPEED MDIO register interface - the first two73 revisions are the "old" and "new" interfaces found in the AST2400 and74 AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver75 continues to drive the embedded MDIO controller for the AST2400 and76 AST2500 SoCs, so say N if AST2600 support is not required.77 78config MDIO_BITBANG79 tristate "Bitbanged MDIO buses"80 help81 This module implements the MDIO bus protocol in software,82 for use by low level drivers that export the ability to83 drive the relevant pins.84 85 If in doubt, say N.86 87config MDIO_BCM_IPROC88 tristate "Broadcom iProc MDIO bus controller"89 depends on ARCH_BCM_IPROC || COMPILE_TEST90 depends on HAS_IOMEM && OF_MDIO91 default ARCH_BCM_IPROC92 help93 This module provides a driver for the MDIO busses found in the94 Broadcom iProc SoC's.95 96config MDIO_BCM_UNIMAC97 tristate "Broadcom UniMAC MDIO bus controller"98 depends on HAS_IOMEM99 help100 This module provides a driver for the Broadcom UniMAC MDIO busses.101 This hardware can be found in the Broadcom GENET Ethernet MAC102 controllers as well as some Broadcom Ethernet switches such as the103 Starfighter 2 switches.104 105config MDIO_CAVIUM106 tristate107 108config MDIO_GPIO109 tristate "GPIO lib-based bitbanged MDIO buses"110 depends on MDIO_BITBANG111 depends on GPIOLIB || COMPILE_TEST112 help113 Supports GPIO lib-based MDIO busses.114 115 To compile this driver as a module, choose M here: the module116 will be called mdio-gpio.117 118config MDIO_HISI_FEMAC119 tristate "Hisilicon FEMAC MDIO bus controller"120 depends on HAS_IOMEM && OF_MDIO121 help122 This module provides a driver for the MDIO busses found in the123 Hisilicon SoC that have an Fast Ethernet MAC.124 125config MDIO_I2C126 tristate127 depends on I2C128 help129 Support I2C based PHYs. This provides a MDIO bus bridged130 to I2C to allow PHYs connected in I2C mode to be accessed131 using the existing infrastructure.132 133 This is library mode.134 135config MDIO_MVUSB136 tristate "Marvell USB to MDIO Adapter"137 depends on USB138 select MDIO_DEVRES139 help140 A USB to MDIO converter present on development boards for141 Marvell's Link Street family of Ethernet switches.142 143config MDIO_MSCC_MIIM144 tristate "Microsemi MIIM interface support"145 depends on HAS_IOMEM && REGMAP_MMIO146 select MDIO_DEVRES147 help148 This driver supports the MIIM (MDIO) interface found in the network149 switches of the Microsemi SoCs; it is recommended to switch on150 CONFIG_HIGH_RES_TIMERS151 152config MDIO_MOXART153 tristate "MOXA ART MDIO interface support"154 depends on ARCH_MOXART || COMPILE_TEST155 help156 This driver supports the MDIO interface found in the network157 interface units of the MOXA ART SoC158 159config MDIO_OCTEON160 tristate "Octeon and some ThunderX SOCs MDIO buses"161 depends on (64BIT && OF_MDIO) || COMPILE_TEST162 depends on HAS_IOMEM163 select MDIO_CAVIUM164 select MDIO_DEVRES165 help166 This module provides a driver for the Octeon and ThunderX MDIO167 buses. It is required by the Octeon and ThunderX ethernet device168 drivers on some systems.169 170config MDIO_IPQ4019171 tristate "Qualcomm IPQ4019 MDIO interface support"172 depends on HAS_IOMEM && OF_MDIO173 depends on COMMON_CLK174 depends on MDIO_DEVRES175 help176 This driver supports the MDIO interface found in Qualcomm177 IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.178 179config MDIO_IPQ8064180 tristate "Qualcomm IPQ8064 MDIO interface support"181 depends on HAS_IOMEM && OF_MDIO182 depends on MFD_SYSCON183 depends on MDIO_DEVRES184 help185 This driver supports the MDIO interface found in the network186 interface units of the IPQ8064 SoC187 188config MDIO_REGMAP189 tristate190 help191 This driver allows using MDIO devices that are not sitting on a192 regular MDIO bus, but still exposes the standard 802.3 register193 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 is195 created, and its read/write operations are mapped to the underlying196 regmap. Users willing to use this driver must explicitly select197 REGMAP.198 199config MDIO_THUNDER200 tristate "ThunderX SOCs MDIO buses"201 depends on 64BIT202 depends on PCI203 select MDIO_CAVIUM204 select MDIO_DEVRES205 help206 This driver supports the MDIO interfaces found on Cavium207 ThunderX SoCs when the MDIO bus device appears as a PCI208 device.209 210comment "MDIO Multiplexers"211 212config MDIO_BUS_MUX213 tristate214 depends on OF_MDIO215 help216 This module provides a driver framework for MDIO bus217 multiplexers which connect one of several child MDIO busses218 to a parent bus. Switching between child busses is done by219 device specific drivers.220 221config MDIO_BUS_MUX_MESON_G12A222 tristate "Amlogic G12a based MDIO bus multiplexer"223 depends on ARCH_MESON || COMPILE_TEST224 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK225 select MDIO_BUS_MUX226 default m if ARCH_MESON227 help228 This module provides a driver for the MDIO multiplexer/glue of229 the amlogic g12a SoC. The multiplexers connects either the external230 or the internal MDIO bus to the parent bus.231 232config MDIO_BUS_MUX_MESON_GXL233 tristate "Amlogic GXL based MDIO bus multiplexer"234 depends on ARCH_MESON || COMPILE_TEST235 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK236 select MDIO_BUS_MUX237 default m if ARCH_MESON238 help239 This module provides a driver for the MDIO multiplexer/glue of240 the amlogic GXL SoC. The multiplexer connects either the external241 or the internal MDIO bus to the parent bus.242 243config MDIO_BUS_MUX_BCM6368244 tristate "Broadcom BCM6368 MDIO bus multiplexers"245 depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST)246 select MDIO_BUS_MUX247 default BMIPS_GENERIC248 help249 This module provides a driver for MDIO bus multiplexers found in250 BCM6368 based Broadcom SoCs. This multiplexer connects one of several251 child MDIO bus to a parent bus. Buses could be internal as well as252 external and selection logic lies inside the same multiplexer.253 254config MDIO_BUS_MUX_BCM_IPROC255 tristate "Broadcom iProc based MDIO bus multiplexers"256 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)257 select MDIO_BUS_MUX258 default ARCH_BCM_IPROC259 help260 This module provides a driver for MDIO bus multiplexers found in261 iProc based Broadcom SoCs. This multiplexer connects one of several262 child MDIO bus to a parent bus. Buses could be internal as well as263 external and selection logic lies inside the same multiplexer.264 265config MDIO_BUS_MUX_GPIO266 tristate "GPIO controlled MDIO bus multiplexers"267 depends on OF_GPIO && OF_MDIO268 select MDIO_BUS_MUX269 help270 This module provides a driver for MDIO bus multiplexers that271 are controlled via GPIO lines. The multiplexer connects one of272 several child MDIO busses to a parent bus. Child bus273 selection is under the control of GPIO lines.274 275config MDIO_BUS_MUX_MULTIPLEXER276 tristate "MDIO bus multiplexer using kernel multiplexer subsystem"277 depends on OF_MDIO278 select MULTIPLEXER279 select MDIO_BUS_MUX280 help281 This module provides a driver for MDIO bus multiplexer282 that is controlled via the kernel multiplexer subsystem. The283 bus multiplexer connects one of several child MDIO busses to284 a parent bus. Child bus selection is under the control of285 the kernel multiplexer subsystem.286 287config MDIO_BUS_MUX_MMIOREG288 tristate "MMIO device-controlled MDIO bus multiplexers"289 depends on OF_MDIO && HAS_IOMEM290 select MDIO_BUS_MUX291 help292 This module provides a driver for MDIO bus multiplexers that293 are controlled via a simple memory-mapped device, like an FPGA.294 The multiplexer connects one of several child MDIO busses to a295 parent bus. Child bus selection is under the control of one of296 the FPGA's registers.297 298 Currently, only 8/16/32 bits registers are supported.299 300 301endif302endif303