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