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