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