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