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