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