1# SPDX-License-Identifier: GPL-2.0-only 2# 3# MDIO Layer Configuration 4# 5 6if PHYLIB 7 8config FWNODE_MDIO 9 def_tristate (ACPI || OF) || COMPILE_TEST 10 select FIXED_PHY 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 && REGMAP_MMIO 127 help 128 This driver supports the MIIM (MDIO) interface found in the network 129 switches of the Microsemi SoCs; it is recommended to switch on 130 CONFIG_HIGH_RES_TIMERS 131 132config MDIO_MOXART 133 tristate "MOXA ART MDIO interface support" 134 depends on ARCH_MOXART || COMPILE_TEST 135 help 136 This driver supports the MDIO interface found in the network 137 interface units of the MOXA ART SoC 138 139config MDIO_OCTEON 140 tristate "Octeon and some ThunderX SOCs MDIO buses" 141 depends on (64BIT && OF_MDIO) || COMPILE_TEST 142 depends on HAS_IOMEM 143 select MDIO_CAVIUM 144 help 145 This module provides a driver for the Octeon and ThunderX MDIO 146 buses. It is required by the Octeon and ThunderX ethernet device 147 drivers on some systems. 148 149config MDIO_IPQ4019 150 tristate "Qualcomm IPQ4019 MDIO interface support" 151 depends on HAS_IOMEM && OF_MDIO 152 depends on COMMON_CLK 153 help 154 This driver supports the MDIO interface found in Qualcomm 155 IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s. 156 157config MDIO_IPQ8064 158 tristate "Qualcomm IPQ8064 MDIO interface support" 159 depends on HAS_IOMEM && OF_MDIO 160 depends on MFD_SYSCON 161 help 162 This driver supports the MDIO interface found in the network 163 interface units of the IPQ8064 SoC 164 165config MDIO_REALTEK_RTL9300 166 tristate "Realtek RTL9300 MDIO interface support" 167 depends on MACH_REALTEK_RTL || COMPILE_TEST 168 help 169 This driver supports the MDIO interface found in the Realtek 170 RTL9300 family of Ethernet switches with integrated SoC. 171 172config MDIO_REGMAP 173 tristate 174 help 175 This driver allows using MDIO devices that are not sitting on a 176 regular MDIO bus, but still exposes the standard 802.3 register 177 layout. It's regmap-based so that it can be used on integrated, 178 memory-mapped PHYs, SPI PHYs and so on. A new virtual MDIO bus is 179 created, and its read/write operations are mapped to the underlying 180 regmap. Users willing to use this driver must explicitly select 181 REGMAP. 182 183config MDIO_THUNDER 184 tristate "ThunderX SOCs MDIO buses" 185 depends on 64BIT 186 depends on PCI 187 select MDIO_CAVIUM 188 help 189 This driver supports the MDIO interfaces found on Cavium 190 ThunderX SoCs when the MDIO bus device appears as a PCI 191 device. 192 193comment "MDIO Multiplexers" 194 195config MDIO_BUS_MUX 196 tristate 197 depends on OF_MDIO 198 help 199 This module provides a driver framework for MDIO bus 200 multiplexers which connect one of several child MDIO busses 201 to a parent bus. Switching between child busses is done by 202 device specific drivers. 203 204config MDIO_BUS_MUX_MESON_G12A 205 tristate "Amlogic G12a based MDIO bus multiplexer" 206 depends on ARCH_MESON || COMPILE_TEST 207 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK 208 select MDIO_BUS_MUX 209 default m if ARCH_MESON 210 help 211 This module provides a driver for the MDIO multiplexer/glue of 212 the amlogic g12a SoC. The multiplexers connects either the external 213 or the internal MDIO bus to the parent bus. 214 215config MDIO_BUS_MUX_MESON_GXL 216 tristate "Amlogic GXL based MDIO bus multiplexer" 217 depends on ARCH_MESON || COMPILE_TEST 218 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK 219 select MDIO_BUS_MUX 220 default m if ARCH_MESON 221 help 222 This module provides a driver for the MDIO multiplexer/glue of 223 the amlogic GXL SoC. The multiplexer connects either the external 224 or the internal MDIO bus to the parent bus. 225 226config MDIO_BUS_MUX_BCM6368 227 tristate "Broadcom BCM6368 MDIO bus multiplexers" 228 depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST) 229 select MDIO_BUS_MUX 230 default BMIPS_GENERIC 231 help 232 This module provides a driver for MDIO bus multiplexers found in 233 BCM6368 based Broadcom SoCs. This multiplexer connects one of several 234 child MDIO bus to a parent bus. Buses could be internal as well as 235 external and selection logic lies inside the same multiplexer. 236 237config MDIO_BUS_MUX_BCM_IPROC 238 tristate "Broadcom iProc based MDIO bus multiplexers" 239 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST) 240 select MDIO_BUS_MUX 241 default ARCH_BCM_IPROC 242 help 243 This module provides a driver for MDIO bus multiplexers found in 244 iProc based Broadcom SoCs. This multiplexer connects one of several 245 child MDIO bus to a parent bus. Buses could be internal as well as 246 external and selection logic lies inside the same multiplexer. 247 248config MDIO_BUS_MUX_GPIO 249 tristate "GPIO controlled MDIO bus multiplexers" 250 depends on OF_GPIO && OF_MDIO 251 select MDIO_BUS_MUX 252 help 253 This module provides a driver for MDIO bus multiplexers that 254 are controlled via GPIO lines. The multiplexer connects one of 255 several child MDIO busses to a parent bus. Child bus 256 selection is under the control of GPIO lines. 257 258config MDIO_BUS_MUX_MULTIPLEXER 259 tristate "MDIO bus multiplexer using kernel multiplexer subsystem" 260 depends on OF_MDIO 261 select MULTIPLEXER 262 select MDIO_BUS_MUX 263 help 264 This module provides a driver for MDIO bus multiplexer 265 that is controlled via the kernel multiplexer subsystem. The 266 bus multiplexer connects one of several child MDIO busses to 267 a parent bus. Child bus selection is under the control of 268 the kernel multiplexer subsystem. 269 270config MDIO_BUS_MUX_MMIOREG 271 tristate "MMIO device-controlled MDIO bus multiplexers" 272 depends on OF_MDIO && HAS_IOMEM 273 select MDIO_BUS_MUX 274 help 275 This module provides a driver for MDIO bus multiplexers that 276 are controlled via a simple memory-mapped device, like an FPGA. 277 The multiplexer connects one of several child MDIO busses to a 278 parent bus. Child bus selection is under the control of one of 279 the FPGA's registers. 280 281 Currently, only 8/16/32 bits registers are supported. 282 283 284endif 285