1# SPDX-License-Identifier: GPL-2.0-only 2# 3# MDIO Layer Configuration 4# 5 6menuconfig MDIO_DEVICE 7 tristate "MDIO bus device drivers" 8 help 9 MDIO devices and driver infrastructure code. 10 11if MDIO_DEVICE 12 13config MDIO_BUS 14 tristate 15 default m if PHYLIB=m 16 default MDIO_DEVICE 17 help 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. 21 22config OF_MDIO 23 def_tristate PHYLIB 24 depends on OF 25 depends on PHYLIB 26 select FIXED_PHY 27 help 28 OpenFirmware MDIO bus (Ethernet PHY) accessors 29 30if MDIO_BUS 31 32config MDIO_DEVRES 33 tristate 34 35config MDIO_SUN4I 36 tristate "Allwinner sun4i MDIO interface support" 37 depends on ARCH_SUNXI || COMPILE_TEST 38 help 39 This driver supports the MDIO interface found in the network 40 interface units of the Allwinner SoC that have an EMAC (A10, 41 A12, A10s, etc.) 42 43config MDIO_XGENE 44 tristate "APM X-Gene SoC MDIO bus controller" 45 depends on ARCH_XGENE || COMPILE_TEST 46 help 47 This module provides a driver for the MDIO busses found in the 48 APM X-Gene SoC's. 49 50config MDIO_ASPEED 51 tristate "ASPEED MDIO bus controller" 52 depends on ARCH_ASPEED || COMPILE_TEST 53 depends on OF_MDIO && HAS_IOMEM 54 help 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. 62 63config MDIO_BITBANG 64 tristate "Bitbanged MDIO buses" 65 help 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. 69 70 If in doubt, say N. 71 72config MDIO_BCM_IPROC 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 77 help 78 This module provides a driver for the MDIO busses found in the 79 Broadcom iProc SoC's. 80 81config MDIO_BCM_UNIMAC 82 tristate "Broadcom UniMAC MDIO bus controller" 83 depends on HAS_IOMEM 84 help 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. 89 90config MDIO_CAVIUM 91 tristate 92 93config MDIO_GPIO 94 tristate "GPIO lib-based bitbanged MDIO buses" 95 depends on MDIO_BITBANG 96 depends on GPIOLIB || COMPILE_TEST 97 help 98 Supports GPIO lib-based MDIO busses. 99 100 To compile this driver as a module, choose M here: the module 101 will be called mdio-gpio. 102 103config MDIO_HISI_FEMAC 104 tristate "Hisilicon FEMAC MDIO bus controller" 105 depends on HAS_IOMEM && OF_MDIO 106 help 107 This module provides a driver for the MDIO busses found in the 108 Hisilicon SoC that have an Fast Ethernet MAC. 109 110config MDIO_I2C 111 tristate 112 depends on I2C 113 help 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. 117 118 This is library mode. 119 120config MDIO_MVUSB 121 tristate "Marvell USB to MDIO Adapter" 122 depends on USB 123 select MDIO_DEVRES 124 help 125 A USB to MDIO converter present on development boards for 126 Marvell's Link Street family of Ethernet switches. 127 128config MDIO_MSCC_MIIM 129 tristate "Microsemi MIIM interface support" 130 depends on HAS_IOMEM 131 select MDIO_DEVRES 132 help 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 136 137config MDIO_MOXART 138 tristate "MOXA ART MDIO interface support" 139 depends on ARCH_MOXART || COMPILE_TEST 140 help 141 This driver supports the MDIO interface found in the network 142 interface units of the MOXA ART SoC 143 144config MDIO_OCTEON 145 tristate "Octeon and some ThunderX SOCs MDIO buses" 146 depends on (64BIT && OF_MDIO) || COMPILE_TEST 147 depends on HAS_IOMEM 148 select MDIO_CAVIUM 149 select MDIO_DEVRES 150 help 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. 154 155config MDIO_IPQ4019 156 tristate "Qualcomm IPQ4019 MDIO interface support" 157 depends on HAS_IOMEM && OF_MDIO 158 help 159 This driver supports the MDIO interface found in Qualcomm 160 IPQ40xx series Soc-s. 161 162config MDIO_IPQ8064 163 tristate "Qualcomm IPQ8064 MDIO interface support" 164 depends on HAS_IOMEM && OF_MDIO 165 depends on MFD_SYSCON 166 help 167 This driver supports the MDIO interface found in the network 168 interface units of the IPQ8064 SoC 169 170config MDIO_THUNDER 171 tristate "ThunderX SOCs MDIO buses" 172 depends on 64BIT 173 depends on PCI 174 select MDIO_CAVIUM 175 select MDIO_DEVRES 176 help 177 This driver supports the MDIO interfaces found on Cavium 178 ThunderX SoCs when the MDIO bus device appears as a PCI 179 device. 180 181comment "MDIO Multiplexers" 182 183config MDIO_BUS_MUX 184 tristate 185 depends on OF_MDIO 186 help 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. 191 192config 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 196 select MDIO_BUS_MUX 197 default m if ARCH_MESON 198 help 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. 202 203config MDIO_BUS_MUX_BCM6368 204 tristate "Broadcom BCM6368 MDIO bus multiplexers" 205 depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST) 206 select MDIO_BUS_MUX 207 default BMIPS_GENERIC 208 help 209 This module provides a driver for MDIO bus multiplexers found in 210 BCM6368 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. 213 214config MDIO_BUS_MUX_BCM_IPROC 215 tristate "Broadcom iProc based MDIO bus multiplexers" 216 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST) 217 select MDIO_BUS_MUX 218 default ARCH_BCM_IPROC 219 help 220 This module provides a driver for MDIO bus multiplexers found in 221 iProc based Broadcom SoCs. This multiplexer connects one of several 222 child MDIO bus to a parent bus. Buses could be internal as well as 223 external and selection logic lies inside the same multiplexer. 224 225config MDIO_BUS_MUX_GPIO 226 tristate "GPIO controlled MDIO bus multiplexers" 227 depends on OF_GPIO && OF_MDIO 228 select MDIO_BUS_MUX 229 help 230 This module provides a driver for MDIO bus multiplexers that 231 are controlled via GPIO lines. The multiplexer connects one of 232 several child MDIO busses to a parent bus. Child bus 233 selection is under the control of GPIO lines. 234 235config MDIO_BUS_MUX_MULTIPLEXER 236 tristate "MDIO bus multiplexer using kernel multiplexer subsystem" 237 depends on OF_MDIO 238 select MULTIPLEXER 239 select MDIO_BUS_MUX 240 help 241 This module provides a driver for MDIO bus multiplexer 242 that is controlled via the kernel multiplexer subsystem. The 243 bus multiplexer connects one of several child MDIO busses to 244 a parent bus. Child bus selection is under the control of 245 the kernel multiplexer subsystem. 246 247config MDIO_BUS_MUX_MMIOREG 248 tristate "MMIO device-controlled MDIO bus multiplexers" 249 depends on OF_MDIO && HAS_IOMEM 250 select MDIO_BUS_MUX 251 help 252 This module provides a driver for MDIO bus multiplexers that 253 are controlled via a simple memory-mapped device, like an FPGA. 254 The multiplexer connects one of several child MDIO busses to a 255 parent bus. Child bus selection is under the control of one of 256 the FPGA's registers. 257 258 Currently, only 8/16/32 bits registers are supported. 259 260 261endif 262endif 263