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