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 FWNODE_MDIO 23 def_tristate PHYLIB 24 depends on (ACPI || OF) || COMPILE_TEST 25 select FIXED_PHY 26 help 27 FWNODE MDIO bus (Ethernet PHY) accessors 28 29config OF_MDIO 30 def_tristate PHYLIB 31 depends on OF 32 depends on PHYLIB 33 select FIXED_PHY 34 help 35 OpenFirmware MDIO bus (Ethernet PHY) accessors 36 37if MDIO_BUS 38 39config MDIO_DEVRES 40 tristate 41 42config MDIO_SUN4I 43 tristate "Allwinner sun4i MDIO interface support" 44 depends on ARCH_SUNXI || COMPILE_TEST 45 help 46 This driver supports the MDIO interface found in the network 47 interface units of the Allwinner SoC that have an EMAC (A10, 48 A12, A10s, etc.) 49 50config MDIO_XGENE 51 tristate "APM X-Gene SoC MDIO bus controller" 52 depends on ARCH_XGENE || COMPILE_TEST 53 help 54 This module provides a driver for the MDIO busses found in the 55 APM X-Gene SoC's. 56 57config MDIO_ASPEED 58 tristate "ASPEED MDIO bus controller" 59 depends on ARCH_ASPEED || COMPILE_TEST 60 depends on OF_MDIO && HAS_IOMEM 61 help 62 This module provides a driver for the independent MDIO bus 63 controllers found in the ASPEED AST2600 SoC. This is a driver for the 64 third revision of the ASPEED MDIO register interface - the first two 65 revisions are the "old" and "new" interfaces found in the AST2400 and 66 AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver 67 continues to drive the embedded MDIO controller for the AST2400 and 68 AST2500 SoCs, so say N if AST2600 support is not required. 69 70config MDIO_BITBANG 71 tristate "Bitbanged MDIO buses" 72 help 73 This module implements the MDIO bus protocol in software, 74 for use by low level drivers that export the ability to 75 drive the relevant pins. 76 77 If in doubt, say N. 78 79config MDIO_BCM_IPROC 80 tristate "Broadcom iProc MDIO bus controller" 81 depends on ARCH_BCM_IPROC || COMPILE_TEST 82 depends on HAS_IOMEM && OF_MDIO 83 default ARCH_BCM_IPROC 84 help 85 This module provides a driver for the MDIO busses found in the 86 Broadcom iProc SoC's. 87 88config MDIO_BCM_UNIMAC 89 tristate "Broadcom UniMAC MDIO bus controller" 90 depends on HAS_IOMEM 91 help 92 This module provides a driver for the Broadcom UniMAC MDIO busses. 93 This hardware can be found in the Broadcom GENET Ethernet MAC 94 controllers as well as some Broadcom Ethernet switches such as the 95 Starfighter 2 switches. 96 97config MDIO_CAVIUM 98 tristate 99 100config MDIO_GPIO 101 tristate "GPIO lib-based bitbanged MDIO buses" 102 depends on MDIO_BITBANG 103 depends on GPIOLIB || COMPILE_TEST 104 help 105 Supports GPIO lib-based MDIO busses. 106 107 To compile this driver as a module, choose M here: the module 108 will be called mdio-gpio. 109 110config MDIO_HISI_FEMAC 111 tristate "Hisilicon FEMAC MDIO bus controller" 112 depends on HAS_IOMEM && OF_MDIO 113 help 114 This module provides a driver for the MDIO busses found in the 115 Hisilicon SoC that have an Fast Ethernet MAC. 116 117config MDIO_I2C 118 tristate 119 depends on I2C 120 help 121 Support I2C based PHYs. This provides a MDIO bus bridged 122 to I2C to allow PHYs connected in I2C mode to be accessed 123 using the existing infrastructure. 124 125 This is library mode. 126 127config MDIO_MVUSB 128 tristate "Marvell USB to MDIO Adapter" 129 depends on USB 130 select MDIO_DEVRES 131 help 132 A USB to MDIO converter present on development boards for 133 Marvell's Link Street family of Ethernet switches. 134 135config MDIO_MSCC_MIIM 136 tristate "Microsemi MIIM interface support" 137 depends on HAS_IOMEM 138 select MDIO_DEVRES 139 help 140 This driver supports the MIIM (MDIO) interface found in the network 141 switches of the Microsemi SoCs; it is recommended to switch on 142 CONFIG_HIGH_RES_TIMERS 143 144config MDIO_MOXART 145 tristate "MOXA ART MDIO interface support" 146 depends on ARCH_MOXART || COMPILE_TEST 147 help 148 This driver supports the MDIO interface found in the network 149 interface units of the MOXA ART SoC 150 151config MDIO_OCTEON 152 tristate "Octeon and some ThunderX SOCs MDIO buses" 153 depends on (64BIT && OF_MDIO) || COMPILE_TEST 154 depends on HAS_IOMEM 155 select MDIO_CAVIUM 156 select MDIO_DEVRES 157 help 158 This module provides a driver for the Octeon and ThunderX MDIO 159 buses. It is required by the Octeon and ThunderX ethernet device 160 drivers on some systems. 161 162config MDIO_IPQ4019 163 tristate "Qualcomm IPQ4019 MDIO interface support" 164 depends on HAS_IOMEM && OF_MDIO 165 help 166 This driver supports the MDIO interface found in Qualcomm 167 IPQ40xx series Soc-s. 168 169config MDIO_IPQ8064 170 tristate "Qualcomm IPQ8064 MDIO interface support" 171 depends on HAS_IOMEM && OF_MDIO 172 depends on MFD_SYSCON 173 help 174 This driver supports the MDIO interface found in the network 175 interface units of the IPQ8064 SoC 176 177config MDIO_THUNDER 178 tristate "ThunderX SOCs MDIO buses" 179 depends on 64BIT 180 depends on PCI 181 select MDIO_CAVIUM 182 select MDIO_DEVRES 183 help 184 This driver supports the MDIO interfaces found on Cavium 185 ThunderX SoCs when the MDIO bus device appears as a PCI 186 device. 187 188comment "MDIO Multiplexers" 189 190config MDIO_BUS_MUX 191 tristate 192 depends on OF_MDIO 193 help 194 This module provides a driver framework for MDIO bus 195 multiplexers which connect one of several child MDIO busses 196 to a parent bus. Switching between child busses is done by 197 device specific drivers. 198 199config MDIO_BUS_MUX_MESON_G12A 200 tristate "Amlogic G12a based MDIO bus multiplexer" 201 depends on ARCH_MESON || COMPILE_TEST 202 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK 203 select MDIO_BUS_MUX 204 default m if ARCH_MESON 205 help 206 This module provides a driver for the MDIO multiplexer/glue of 207 the amlogic g12a SoC. The multiplexers connects either the external 208 or the internal MDIO bus to the parent bus. 209 210config MDIO_BUS_MUX_BCM6368 211 tristate "Broadcom BCM6368 MDIO bus multiplexers" 212 depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST) 213 select MDIO_BUS_MUX 214 default BMIPS_GENERIC 215 help 216 This module provides a driver for MDIO bus multiplexers found in 217 BCM6368 based Broadcom SoCs. This multiplexer connects one of several 218 child MDIO bus to a parent bus. Buses could be internal as well as 219 external and selection logic lies inside the same multiplexer. 220 221config MDIO_BUS_MUX_BCM_IPROC 222 tristate "Broadcom iProc based MDIO bus multiplexers" 223 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST) 224 select MDIO_BUS_MUX 225 default ARCH_BCM_IPROC 226 help 227 This module provides a driver for MDIO bus multiplexers found in 228 iProc based Broadcom SoCs. This multiplexer connects one of several 229 child MDIO bus to a parent bus. Buses could be internal as well as 230 external and selection logic lies inside the same multiplexer. 231 232config MDIO_BUS_MUX_GPIO 233 tristate "GPIO controlled MDIO bus multiplexers" 234 depends on OF_GPIO && OF_MDIO 235 select MDIO_BUS_MUX 236 help 237 This module provides a driver for MDIO bus multiplexers that 238 are controlled via GPIO lines. The multiplexer connects one of 239 several child MDIO busses to a parent bus. Child bus 240 selection is under the control of GPIO lines. 241 242config MDIO_BUS_MUX_MULTIPLEXER 243 tristate "MDIO bus multiplexer using kernel multiplexer subsystem" 244 depends on OF_MDIO 245 select MULTIPLEXER 246 select MDIO_BUS_MUX 247 help 248 This module provides a driver for MDIO bus multiplexer 249 that is controlled via the kernel multiplexer subsystem. The 250 bus multiplexer connects one of several child MDIO busses to 251 a parent bus. Child bus selection is under the control of 252 the kernel multiplexer subsystem. 253 254config MDIO_BUS_MUX_MMIOREG 255 tristate "MMIO device-controlled MDIO bus multiplexers" 256 depends on OF_MDIO && HAS_IOMEM 257 select MDIO_BUS_MUX 258 help 259 This module provides a driver for MDIO bus multiplexers that 260 are controlled via a simple memory-mapped device, like an FPGA. 261 The multiplexer connects one of several child MDIO busses to a 262 parent bus. Child bus selection is under the control of one of 263 the FPGA's registers. 264 265 Currently, only 8/16/32 bits registers are supported. 266 267 268endif 269endif 270