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 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 help 173 This driver supports the MDIO interface found in Qualcomm 174 IPQ40xx series Soc-s. 175 176config MDIO_IPQ8064 177 tristate "Qualcomm IPQ8064 MDIO interface support" 178 depends on HAS_IOMEM && OF_MDIO 179 depends on MFD_SYSCON 180 help 181 This driver supports the MDIO interface found in the network 182 interface units of the IPQ8064 SoC 183 184config MDIO_THUNDER 185 tristate "ThunderX SOCs MDIO buses" 186 depends on 64BIT 187 depends on PCI 188 select MDIO_CAVIUM 189 select MDIO_DEVRES 190 help 191 This driver supports the MDIO interfaces found on Cavium 192 ThunderX SoCs when the MDIO bus device appears as a PCI 193 device. 194 195comment "MDIO Multiplexers" 196 197config MDIO_BUS_MUX 198 tristate 199 depends on OF_MDIO 200 help 201 This module provides a driver framework for MDIO bus 202 multiplexers which connect one of several child MDIO busses 203 to a parent bus. Switching between child busses is done by 204 device specific drivers. 205 206config MDIO_BUS_MUX_MESON_G12A 207 tristate "Amlogic G12a based MDIO bus multiplexer" 208 depends on ARCH_MESON || COMPILE_TEST 209 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK 210 select MDIO_BUS_MUX 211 default m if ARCH_MESON 212 help 213 This module provides a driver for the MDIO multiplexer/glue of 214 the amlogic g12a SoC. The multiplexers connects either the external 215 or the internal MDIO bus to the parent bus. 216 217config MDIO_BUS_MUX_BCM6368 218 tristate "Broadcom BCM6368 MDIO bus multiplexers" 219 depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST) 220 select MDIO_BUS_MUX 221 default BMIPS_GENERIC 222 help 223 This module provides a driver for MDIO bus multiplexers found in 224 BCM6368 based Broadcom SoCs. This multiplexer connects one of several 225 child MDIO bus to a parent bus. Buses could be internal as well as 226 external and selection logic lies inside the same multiplexer. 227 228config MDIO_BUS_MUX_BCM_IPROC 229 tristate "Broadcom iProc based MDIO bus multiplexers" 230 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST) 231 select MDIO_BUS_MUX 232 default ARCH_BCM_IPROC 233 help 234 This module provides a driver for MDIO bus multiplexers found in 235 iProc based Broadcom SoCs. This multiplexer connects one of several 236 child MDIO bus to a parent bus. Buses could be internal as well as 237 external and selection logic lies inside the same multiplexer. 238 239config MDIO_BUS_MUX_GPIO 240 tristate "GPIO controlled MDIO bus multiplexers" 241 depends on OF_GPIO && OF_MDIO 242 select MDIO_BUS_MUX 243 help 244 This module provides a driver for MDIO bus multiplexers that 245 are controlled via GPIO lines. The multiplexer connects one of 246 several child MDIO busses to a parent bus. Child bus 247 selection is under the control of GPIO lines. 248 249config MDIO_BUS_MUX_MULTIPLEXER 250 tristate "MDIO bus multiplexer using kernel multiplexer subsystem" 251 depends on OF_MDIO 252 select MULTIPLEXER 253 select MDIO_BUS_MUX 254 help 255 This module provides a driver for MDIO bus multiplexer 256 that is controlled via the kernel multiplexer subsystem. The 257 bus multiplexer connects one of several child MDIO busses to 258 a parent bus. Child bus selection is under the control of 259 the kernel multiplexer subsystem. 260 261config MDIO_BUS_MUX_MMIOREG 262 tristate "MMIO device-controlled MDIO bus multiplexers" 263 depends on OF_MDIO && HAS_IOMEM 264 select MDIO_BUS_MUX 265 help 266 This module provides a driver for MDIO bus multiplexers that 267 are controlled via a simple memory-mapped device, like an FPGA. 268 The multiplexer connects one of several child MDIO busses to a 269 parent bus. Child bus selection is under the control of one of 270 the FPGA's registers. 271 272 Currently, only 8/16/32 bits registers are supported. 273 274 275endif 276endif 277