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