# SPDX-License-Identifier: GPL-2.0-only 
 | 
# 
 | 
# MDIO Layer Configuration 
 | 
# 
 | 
  
 | 
menuconfig MDIO_DEVICE 
 | 
    tristate "MDIO bus device drivers" 
 | 
    help 
 | 
      MDIO devices and driver infrastructure code. 
 | 
  
 | 
if MDIO_DEVICE 
 | 
  
 | 
config MDIO_BUS 
 | 
    tristate 
 | 
    default m if PHYLIB=m 
 | 
    default MDIO_DEVICE 
 | 
    help 
 | 
      This internal symbol is used for link time dependencies and it 
 | 
      reflects whether the mdio_bus/mdio_device code is built as a 
 | 
      loadable module or built-in. 
 | 
  
 | 
config OF_MDIO 
 | 
    def_tristate PHYLIB 
 | 
    depends on OF 
 | 
    depends on PHYLIB 
 | 
    select FIXED_PHY 
 | 
    help 
 | 
      OpenFirmware MDIO bus (Ethernet PHY) accessors 
 | 
  
 | 
if MDIO_BUS 
 | 
  
 | 
config MDIO_DEVRES 
 | 
    tristate 
 | 
  
 | 
config MDIO_SUN4I 
 | 
    tristate "Allwinner sun4i MDIO interface support" 
 | 
    depends on ARCH_SUNXI || COMPILE_TEST 
 | 
    help 
 | 
      This driver supports the MDIO interface found in the network 
 | 
      interface units of the Allwinner SoC that have an EMAC (A10, 
 | 
      A12, A10s, etc.) 
 | 
  
 | 
config MDIO_XGENE 
 | 
    tristate "APM X-Gene SoC MDIO bus controller" 
 | 
    depends on ARCH_XGENE || COMPILE_TEST 
 | 
    help 
 | 
      This module provides a driver for the MDIO busses found in the 
 | 
      APM X-Gene SoC's. 
 | 
  
 | 
config MDIO_ASPEED 
 | 
    tristate "ASPEED MDIO bus controller" 
 | 
    depends on ARCH_ASPEED || COMPILE_TEST 
 | 
    depends on OF_MDIO && HAS_IOMEM 
 | 
    help 
 | 
      This module provides a driver for the independent MDIO bus 
 | 
      controllers found in the ASPEED AST2600 SoC. This is a driver for the 
 | 
      third revision of the ASPEED MDIO register interface - the first two 
 | 
      revisions are the "old" and "new" interfaces found in the AST2400 and 
 | 
      AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver 
 | 
      continues to drive the embedded MDIO controller for the AST2400 and 
 | 
      AST2500 SoCs, so say N if AST2600 support is not required. 
 | 
  
 | 
config MDIO_BITBANG 
 | 
    tristate "Bitbanged MDIO buses" 
 | 
    help 
 | 
      This module implements the MDIO bus protocol in software, 
 | 
      for use by low level drivers that export the ability to 
 | 
      drive the relevant pins. 
 | 
  
 | 
      If in doubt, say N. 
 | 
  
 | 
config MDIO_BCM_IPROC 
 | 
    tristate "Broadcom iProc MDIO bus controller" 
 | 
    depends on ARCH_BCM_IPROC || COMPILE_TEST 
 | 
    depends on HAS_IOMEM && OF_MDIO 
 | 
    default ARCH_BCM_IPROC 
 | 
    help 
 | 
      This module provides a driver for the MDIO busses found in the 
 | 
      Broadcom iProc SoC's. 
 | 
  
 | 
config MDIO_BCM_UNIMAC 
 | 
    tristate "Broadcom UniMAC MDIO bus controller" 
 | 
    depends on HAS_IOMEM 
 | 
    help 
 | 
      This module provides a driver for the Broadcom UniMAC MDIO busses. 
 | 
      This hardware can be found in the Broadcom GENET Ethernet MAC 
 | 
      controllers as well as some Broadcom Ethernet switches such as the 
 | 
      Starfighter 2 switches. 
 | 
  
 | 
config MDIO_CAVIUM 
 | 
    tristate 
 | 
  
 | 
config MDIO_GPIO 
 | 
    tristate "GPIO lib-based bitbanged MDIO buses" 
 | 
    depends on MDIO_BITBANG 
 | 
    depends on GPIOLIB || COMPILE_TEST 
 | 
    help 
 | 
      Supports GPIO lib-based MDIO busses. 
 | 
  
 | 
      To compile this driver as a module, choose M here: the module 
 | 
      will be called mdio-gpio. 
 | 
  
 | 
config MDIO_HISI_FEMAC 
 | 
    tristate "Hisilicon FEMAC MDIO bus controller" 
 | 
    depends on HAS_IOMEM && OF_MDIO 
 | 
    help 
 | 
      This module provides a driver for the MDIO busses found in the 
 | 
      Hisilicon SoC that have an Fast Ethernet MAC. 
 | 
  
 | 
config MDIO_I2C 
 | 
    tristate 
 | 
    depends on I2C 
 | 
    help 
 | 
      Support I2C based PHYs.  This provides a MDIO bus bridged 
 | 
      to I2C to allow PHYs connected in I2C mode to be accessed 
 | 
      using the existing infrastructure. 
 | 
  
 | 
      This is library mode. 
 | 
  
 | 
config MDIO_MVUSB 
 | 
    tristate "Marvell USB to MDIO Adapter" 
 | 
    depends on USB 
 | 
    select MDIO_DEVRES 
 | 
    help 
 | 
      A USB to MDIO converter present on development boards for 
 | 
      Marvell's Link Street family of Ethernet switches. 
 | 
  
 | 
config MDIO_MSCC_MIIM 
 | 
    tristate "Microsemi MIIM interface support" 
 | 
    depends on HAS_IOMEM 
 | 
    select MDIO_DEVRES 
 | 
    help 
 | 
      This driver supports the MIIM (MDIO) interface found in the network 
 | 
      switches of the Microsemi SoCs; it is recommended to switch on 
 | 
      CONFIG_HIGH_RES_TIMERS 
 | 
  
 | 
config MDIO_MOXART 
 | 
    tristate "MOXA ART MDIO interface support" 
 | 
    depends on ARCH_MOXART || COMPILE_TEST 
 | 
    help 
 | 
      This driver supports the MDIO interface found in the network 
 | 
      interface units of the MOXA ART SoC 
 | 
  
 | 
config MDIO_OCTEON 
 | 
    tristate "Octeon and some ThunderX SOCs MDIO buses" 
 | 
    depends on (64BIT && OF_MDIO) || COMPILE_TEST 
 | 
    depends on HAS_IOMEM 
 | 
    select MDIO_CAVIUM 
 | 
    select MDIO_DEVRES 
 | 
    help 
 | 
      This module provides a driver for the Octeon and ThunderX MDIO 
 | 
      buses. It is required by the Octeon and ThunderX ethernet device 
 | 
      drivers on some systems. 
 | 
  
 | 
config MDIO_IPQ4019 
 | 
    tristate "Qualcomm IPQ4019 MDIO interface support" 
 | 
    depends on HAS_IOMEM && OF_MDIO 
 | 
    help 
 | 
      This driver supports the MDIO interface found in Qualcomm 
 | 
      IPQ40xx series Soc-s. 
 | 
  
 | 
config MDIO_IPQ8064 
 | 
    tristate "Qualcomm IPQ8064 MDIO interface support" 
 | 
    depends on HAS_IOMEM && OF_MDIO 
 | 
    depends on MFD_SYSCON 
 | 
    help 
 | 
      This driver supports the MDIO interface found in the network 
 | 
      interface units of the IPQ8064 SoC 
 | 
  
 | 
config MDIO_THUNDER 
 | 
    tristate "ThunderX SOCs MDIO buses" 
 | 
    depends on 64BIT 
 | 
    depends on PCI 
 | 
    select MDIO_CAVIUM 
 | 
    select MDIO_DEVRES 
 | 
    help 
 | 
      This driver supports the MDIO interfaces found on Cavium 
 | 
      ThunderX SoCs when the MDIO bus device appears as a PCI 
 | 
      device. 
 | 
  
 | 
comment "MDIO Multiplexers" 
 | 
  
 | 
config MDIO_BUS_MUX 
 | 
    tristate 
 | 
    depends on OF_MDIO 
 | 
    help 
 | 
      This module provides a driver framework for MDIO bus 
 | 
      multiplexers which connect one of several child MDIO busses 
 | 
      to a parent bus.  Switching between child busses is done by 
 | 
      device specific drivers. 
 | 
  
 | 
config MDIO_BUS_MUX_MESON_G12A 
 | 
    tristate "Amlogic G12a based MDIO bus multiplexer" 
 | 
    depends on ARCH_MESON || COMPILE_TEST 
 | 
    depends on OF_MDIO && HAS_IOMEM && COMMON_CLK 
 | 
    select MDIO_BUS_MUX 
 | 
    default m if ARCH_MESON 
 | 
    help 
 | 
      This module provides a driver for the MDIO multiplexer/glue of 
 | 
      the amlogic g12a SoC. The multiplexers connects either the external 
 | 
      or the internal MDIO bus to the parent bus. 
 | 
  
 | 
config MDIO_BUS_MUX_BCM_IPROC 
 | 
    tristate "Broadcom iProc based MDIO bus multiplexers" 
 | 
    depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST) 
 | 
    select MDIO_BUS_MUX 
 | 
    default ARCH_BCM_IPROC 
 | 
    help 
 | 
      This module provides a driver for MDIO bus multiplexers found in 
 | 
      iProc based Broadcom SoCs. This multiplexer connects one of several 
 | 
      child MDIO bus to a parent bus. Buses could be internal as well as 
 | 
      external and selection logic lies inside the same multiplexer. 
 | 
  
 | 
config MDIO_BUS_MUX_GPIO 
 | 
    tristate "GPIO controlled MDIO bus multiplexers" 
 | 
    depends on OF_GPIO && OF_MDIO 
 | 
    select MDIO_BUS_MUX 
 | 
    help 
 | 
      This module provides a driver for MDIO bus multiplexers that 
 | 
      are controlled via GPIO lines.  The multiplexer connects one of 
 | 
      several child MDIO busses to a parent bus.  Child bus 
 | 
      selection is under the control of GPIO lines. 
 | 
  
 | 
config MDIO_BUS_MUX_MULTIPLEXER 
 | 
    tristate "MDIO bus multiplexer using kernel multiplexer subsystem" 
 | 
    depends on OF_MDIO 
 | 
    select MULTIPLEXER 
 | 
    select MDIO_BUS_MUX 
 | 
    help 
 | 
      This module provides a driver for MDIO bus multiplexer 
 | 
      that is controlled via the kernel multiplexer subsystem. The 
 | 
      bus multiplexer connects one of several child MDIO busses to 
 | 
      a parent bus.  Child bus selection is under the control of 
 | 
      the kernel multiplexer subsystem. 
 | 
  
 | 
config MDIO_BUS_MUX_MMIOREG 
 | 
    tristate "MMIO device-controlled MDIO bus multiplexers" 
 | 
    depends on OF_MDIO && HAS_IOMEM 
 | 
    select MDIO_BUS_MUX 
 | 
    help 
 | 
      This module provides a driver for MDIO bus multiplexers that 
 | 
      are controlled via a simple memory-mapped device, like an FPGA. 
 | 
      The multiplexer connects one of several child MDIO busses to a 
 | 
      parent bus.  Child bus selection is under the control of one of 
 | 
      the FPGA's registers. 
 | 
  
 | 
      Currently, only 8/16/32 bits registers are supported. 
 | 
  
 | 
  
 | 
endif 
 | 
endif 
 |