Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # MDIO Layer Configuration
0004 #
0005 
0006 menuconfig MDIO_DEVICE
0007         tristate "MDIO bus device drivers"
0008         help
0009           MDIO devices and driver infrastructure code.
0010 
0011 if MDIO_DEVICE
0012 
0013 config MDIO_BUS
0014         tristate
0015         default m if PHYLIB=m
0016         default MDIO_DEVICE
0017         help
0018           This internal symbol is used for link time dependencies and it
0019           reflects whether the mdio_bus/mdio_device code is built as a
0020           loadable module or built-in.
0021 
0022 config FWNODE_MDIO
0023         def_tristate PHYLIB
0024         depends on (ACPI || OF) || COMPILE_TEST
0025         select FIXED_PHY
0026         help
0027           FWNODE MDIO bus (Ethernet PHY) accessors
0028 
0029 config OF_MDIO
0030         def_tristate PHYLIB
0031         depends on OF
0032         depends on PHYLIB
0033         select FIXED_PHY
0034         help
0035           OpenFirmware MDIO bus (Ethernet PHY) accessors
0036 
0037 config ACPI_MDIO
0038         def_tristate PHYLIB
0039         depends on ACPI
0040         depends on PHYLIB
0041         help
0042           ACPI MDIO bus (Ethernet PHY) accessors
0043 
0044 if MDIO_BUS
0045 
0046 config MDIO_DEVRES
0047         tristate
0048 
0049 config MDIO_SUN4I
0050         tristate "Allwinner sun4i MDIO interface support"
0051         depends on ARCH_SUNXI || COMPILE_TEST
0052         help
0053           This driver supports the MDIO interface found in the network
0054           interface units of the Allwinner SoC that have an EMAC (A10,
0055           A12, A10s, etc.)
0056 
0057 config MDIO_XGENE
0058         tristate "APM X-Gene SoC MDIO bus controller"
0059         depends on ARCH_XGENE || COMPILE_TEST
0060         help
0061           This module provides a driver for the MDIO busses found in the
0062           APM X-Gene SoC's.
0063 
0064 config MDIO_ASPEED
0065         tristate "ASPEED MDIO bus controller"
0066         depends on ARCH_ASPEED || COMPILE_TEST
0067         depends on OF_MDIO && HAS_IOMEM
0068         help
0069           This module provides a driver for the independent MDIO bus
0070           controllers found in the ASPEED AST2600 SoC. This is a driver for the
0071           third revision of the ASPEED MDIO register interface - the first two
0072           revisions are the "old" and "new" interfaces found in the AST2400 and
0073           AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver
0074           continues to drive the embedded MDIO controller for the AST2400 and
0075           AST2500 SoCs, so say N if AST2600 support is not required.
0076 
0077 config MDIO_BITBANG
0078         tristate "Bitbanged MDIO buses"
0079         help
0080           This module implements the MDIO bus protocol in software,
0081           for use by low level drivers that export the ability to
0082           drive the relevant pins.
0083 
0084           If in doubt, say N.
0085 
0086 config MDIO_BCM_IPROC
0087         tristate "Broadcom iProc MDIO bus controller"
0088         depends on ARCH_BCM_IPROC || COMPILE_TEST
0089         depends on HAS_IOMEM && OF_MDIO
0090         default ARCH_BCM_IPROC
0091         help
0092           This module provides a driver for the MDIO busses found in the
0093           Broadcom iProc SoC's.
0094 
0095 config MDIO_BCM_UNIMAC
0096         tristate "Broadcom UniMAC MDIO bus controller"
0097         depends on HAS_IOMEM
0098         help
0099           This module provides a driver for the Broadcom UniMAC MDIO busses.
0100           This hardware can be found in the Broadcom GENET Ethernet MAC
0101           controllers as well as some Broadcom Ethernet switches such as the
0102           Starfighter 2 switches.
0103 
0104 config MDIO_CAVIUM
0105         tristate
0106 
0107 config MDIO_GPIO
0108         tristate "GPIO lib-based bitbanged MDIO buses"
0109         depends on MDIO_BITBANG
0110         depends on GPIOLIB || COMPILE_TEST
0111         help
0112           Supports GPIO lib-based MDIO busses.
0113 
0114           To compile this driver as a module, choose M here: the module
0115           will be called mdio-gpio.
0116 
0117 config MDIO_HISI_FEMAC
0118         tristate "Hisilicon FEMAC MDIO bus controller"
0119         depends on HAS_IOMEM && OF_MDIO
0120         help
0121           This module provides a driver for the MDIO busses found in the
0122           Hisilicon SoC that have an Fast Ethernet MAC.
0123 
0124 config MDIO_I2C
0125         tristate
0126         depends on I2C
0127         help
0128           Support I2C based PHYs.  This provides a MDIO bus bridged
0129           to I2C to allow PHYs connected in I2C mode to be accessed
0130           using the existing infrastructure.
0131 
0132           This is library mode.
0133 
0134 config MDIO_MVUSB
0135         tristate "Marvell USB to MDIO Adapter"
0136         depends on USB
0137         select MDIO_DEVRES
0138         help
0139           A USB to MDIO converter present on development boards for
0140           Marvell's Link Street family of Ethernet switches.
0141 
0142 config MDIO_MSCC_MIIM
0143         tristate "Microsemi MIIM interface support"
0144         depends on HAS_IOMEM && REGMAP_MMIO
0145         select MDIO_DEVRES
0146         help
0147           This driver supports the MIIM (MDIO) interface found in the network
0148           switches of the Microsemi SoCs; it is recommended to switch on
0149           CONFIG_HIGH_RES_TIMERS
0150 
0151 config MDIO_MOXART
0152         tristate "MOXA ART MDIO interface support"
0153         depends on ARCH_MOXART || COMPILE_TEST
0154         help
0155           This driver supports the MDIO interface found in the network
0156           interface units of the MOXA ART SoC
0157 
0158 config MDIO_OCTEON
0159         tristate "Octeon and some ThunderX SOCs MDIO buses"
0160         depends on (64BIT && OF_MDIO) || COMPILE_TEST
0161         depends on HAS_IOMEM
0162         select MDIO_CAVIUM
0163         select MDIO_DEVRES
0164         help
0165           This module provides a driver for the Octeon and ThunderX MDIO
0166           buses. It is required by the Octeon and ThunderX ethernet device
0167           drivers on some systems.
0168 
0169 config MDIO_IPQ4019
0170         tristate "Qualcomm IPQ4019 MDIO interface support"
0171         depends on HAS_IOMEM && OF_MDIO
0172         depends on COMMON_CLK
0173         help
0174           This driver supports the MDIO interface found in Qualcomm
0175           IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
0176 
0177 config MDIO_IPQ8064
0178         tristate "Qualcomm IPQ8064 MDIO interface support"
0179         depends on HAS_IOMEM && OF_MDIO
0180         depends on MFD_SYSCON
0181         help
0182           This driver supports the MDIO interface found in the network
0183           interface units of the IPQ8064 SoC
0184 
0185 config MDIO_THUNDER
0186         tristate "ThunderX SOCs MDIO buses"
0187         depends on 64BIT
0188         depends on PCI
0189         select MDIO_CAVIUM
0190         select MDIO_DEVRES
0191         help
0192           This driver supports the MDIO interfaces found on Cavium
0193           ThunderX SoCs when the MDIO bus device appears as a PCI
0194           device.
0195 
0196 comment "MDIO Multiplexers"
0197 
0198 config MDIO_BUS_MUX
0199         tristate
0200         depends on OF_MDIO
0201         help
0202           This module provides a driver framework for MDIO bus
0203           multiplexers which connect one of several child MDIO busses
0204           to a parent bus.  Switching between child busses is done by
0205           device specific drivers.
0206 
0207 config MDIO_BUS_MUX_MESON_G12A
0208         tristate "Amlogic G12a based MDIO bus multiplexer"
0209         depends on ARCH_MESON || COMPILE_TEST
0210         depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
0211         select MDIO_BUS_MUX
0212         default m if ARCH_MESON
0213         help
0214           This module provides a driver for the MDIO multiplexer/glue of
0215           the amlogic g12a SoC. The multiplexers connects either the external
0216           or the internal MDIO bus to the parent bus.
0217 
0218 config MDIO_BUS_MUX_BCM6368
0219         tristate "Broadcom BCM6368 MDIO bus multiplexers"
0220         depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST)
0221         select MDIO_BUS_MUX
0222         default BMIPS_GENERIC
0223         help
0224           This module provides a driver for MDIO bus multiplexers found in
0225           BCM6368 based Broadcom SoCs. This multiplexer connects one of several
0226           child MDIO bus to a parent bus. Buses could be internal as well as
0227           external and selection logic lies inside the same multiplexer.
0228 
0229 config MDIO_BUS_MUX_BCM_IPROC
0230         tristate "Broadcom iProc based MDIO bus multiplexers"
0231         depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
0232         select MDIO_BUS_MUX
0233         default ARCH_BCM_IPROC
0234         help
0235           This module provides a driver for MDIO bus multiplexers found in
0236           iProc based Broadcom SoCs. This multiplexer connects one of several
0237           child MDIO bus to a parent bus. Buses could be internal as well as
0238           external and selection logic lies inside the same multiplexer.
0239 
0240 config MDIO_BUS_MUX_GPIO
0241         tristate "GPIO controlled MDIO bus multiplexers"
0242         depends on OF_GPIO && OF_MDIO
0243         select MDIO_BUS_MUX
0244         help
0245           This module provides a driver for MDIO bus multiplexers that
0246           are controlled via GPIO lines.  The multiplexer connects one of
0247           several child MDIO busses to a parent bus.  Child bus
0248           selection is under the control of GPIO lines.
0249 
0250 config MDIO_BUS_MUX_MULTIPLEXER
0251         tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
0252         depends on OF_MDIO
0253         select MULTIPLEXER
0254         select MDIO_BUS_MUX
0255         help
0256           This module provides a driver for MDIO bus multiplexer
0257           that is controlled via the kernel multiplexer subsystem. The
0258           bus multiplexer connects one of several child MDIO busses to
0259           a parent bus.  Child bus selection is under the control of
0260           the kernel multiplexer subsystem.
0261 
0262 config MDIO_BUS_MUX_MMIOREG
0263         tristate "MMIO device-controlled MDIO bus multiplexers"
0264         depends on OF_MDIO && HAS_IOMEM
0265         select MDIO_BUS_MUX
0266         help
0267           This module provides a driver for MDIO bus multiplexers that
0268           are controlled via a simple memory-mapped device, like an FPGA.
0269           The multiplexer connects one of several child MDIO busses to a
0270           parent bus.  Child bus selection is under the control of one of
0271           the FPGA's registers.
0272 
0273           Currently, only 8/16/32 bits registers are supported.
0274 
0275 
0276 endif
0277 endif