1a9770eacSAndrew Lunn# SPDX-License-Identifier: GPL-2.0-only 2a9770eacSAndrew Lunn# 3a9770eacSAndrew Lunn# MDIO Layer Configuration 4a9770eacSAndrew Lunn# 5a9770eacSAndrew Lunn 665f18208SMaxime Chevalliermenu "MDIO controller drivers" 765f18208SMaxime Chevallier depends on PHYLIB 8a3e1c0adSHeiner Kallweit 9bc1bee3bSCalvin Johnsonconfig FWNODE_MDIO 10a3e1c0adSHeiner Kallweit def_tristate (ACPI || OF) || COMPILE_TEST 11bc1bee3bSCalvin Johnson help 12bc1bee3bSCalvin Johnson FWNODE MDIO bus (Ethernet PHY) accessors 13bc1bee3bSCalvin Johnson 1414b26b12SCalvin Johnsonconfig OF_MDIO 15a3e1c0adSHeiner Kallweit def_tristate OF 1614b26b12SCalvin Johnson select FIXED_PHY 1714b26b12SCalvin Johnson help 1814b26b12SCalvin Johnson OpenFirmware MDIO bus (Ethernet PHY) accessors 1914b26b12SCalvin Johnson 20803ca24dSCalvin Johnsonconfig ACPI_MDIO 21a3e1c0adSHeiner Kallweit def_tristate ACPI 22803ca24dSCalvin Johnson help 23803ca24dSCalvin Johnson ACPI MDIO bus (Ethernet PHY) accessors 24803ca24dSCalvin Johnson 2567e3ba97SChristian Marangiconfig MDIO_AIROHA 2667e3ba97SChristian Marangi tristate "Airoha AN7583 MDIO bus controller" 2767e3ba97SChristian Marangi depends on ARCH_AIROHA || COMPILE_TEST 2867e3ba97SChristian Marangi help 2967e3ba97SChristian Marangi This module provides a driver for the MDIO busses found in the 3067e3ba97SChristian Marangi Airoha AN7583 SoC's. 3167e3ba97SChristian Marangi 32a9770eacSAndrew Lunnconfig MDIO_SUN4I 33a9770eacSAndrew Lunn tristate "Allwinner sun4i MDIO interface support" 34a9770eacSAndrew Lunn depends on ARCH_SUNXI || COMPILE_TEST 35a9770eacSAndrew Lunn help 36a9770eacSAndrew Lunn This driver supports the MDIO interface found in the network 37a9770eacSAndrew Lunn interface units of the Allwinner SoC that have an EMAC (A10, 38a9770eacSAndrew Lunn A12, A10s, etc.) 39a9770eacSAndrew Lunn 40a9770eacSAndrew Lunnconfig MDIO_XGENE 41a9770eacSAndrew Lunn tristate "APM X-Gene SoC MDIO bus controller" 42a9770eacSAndrew Lunn depends on ARCH_XGENE || COMPILE_TEST 43a9770eacSAndrew Lunn help 44a9770eacSAndrew Lunn This module provides a driver for the MDIO busses found in the 45a9770eacSAndrew Lunn APM X-Gene SoC's. 46a9770eacSAndrew Lunn 47a9770eacSAndrew Lunnconfig MDIO_ASPEED 48a9770eacSAndrew Lunn tristate "ASPEED MDIO bus controller" 49a9770eacSAndrew Lunn depends on ARCH_ASPEED || COMPILE_TEST 50a9770eacSAndrew Lunn depends on OF_MDIO && HAS_IOMEM 51a9770eacSAndrew Lunn help 52a9770eacSAndrew Lunn This module provides a driver for the independent MDIO bus 53a9770eacSAndrew Lunn controllers found in the ASPEED AST2600 SoC. This is a driver for the 54a9770eacSAndrew Lunn third revision of the ASPEED MDIO register interface - the first two 55a9770eacSAndrew Lunn revisions are the "old" and "new" interfaces found in the AST2400 and 56a9770eacSAndrew Lunn AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver 57a9770eacSAndrew Lunn continues to drive the embedded MDIO controller for the AST2400 and 58a9770eacSAndrew Lunn AST2500 SoCs, so say N if AST2600 support is not required. 59a9770eacSAndrew Lunn 60a9770eacSAndrew Lunnconfig MDIO_BITBANG 61a9770eacSAndrew Lunn tristate "Bitbanged MDIO buses" 62a9770eacSAndrew Lunn help 63a9770eacSAndrew Lunn This module implements the MDIO bus protocol in software, 64a9770eacSAndrew Lunn for use by low level drivers that export the ability to 65a9770eacSAndrew Lunn drive the relevant pins. 66a9770eacSAndrew Lunn 67a9770eacSAndrew Lunn If in doubt, say N. 68a9770eacSAndrew Lunn 69a9770eacSAndrew Lunnconfig MDIO_BCM_IPROC 70a9770eacSAndrew Lunn tristate "Broadcom iProc MDIO bus controller" 71a9770eacSAndrew Lunn depends on ARCH_BCM_IPROC || COMPILE_TEST 72a9770eacSAndrew Lunn depends on HAS_IOMEM && OF_MDIO 73a9770eacSAndrew Lunn default ARCH_BCM_IPROC 74a9770eacSAndrew Lunn help 75a9770eacSAndrew Lunn This module provides a driver for the MDIO busses found in the 76a9770eacSAndrew Lunn Broadcom iProc SoC's. 77a9770eacSAndrew Lunn 78a9770eacSAndrew Lunnconfig MDIO_BCM_UNIMAC 79a9770eacSAndrew Lunn tristate "Broadcom UniMAC MDIO bus controller" 80a9770eacSAndrew Lunn depends on HAS_IOMEM 81a9770eacSAndrew Lunn help 82a9770eacSAndrew Lunn This module provides a driver for the Broadcom UniMAC MDIO busses. 83a9770eacSAndrew Lunn This hardware can be found in the Broadcom GENET Ethernet MAC 84a9770eacSAndrew Lunn controllers as well as some Broadcom Ethernet switches such as the 85a9770eacSAndrew Lunn Starfighter 2 switches. 86a9770eacSAndrew Lunn 87a9770eacSAndrew Lunnconfig MDIO_CAVIUM 88a9770eacSAndrew Lunn tristate 89a9770eacSAndrew Lunn 90a9770eacSAndrew Lunnconfig MDIO_GPIO 91a9770eacSAndrew Lunn tristate "GPIO lib-based bitbanged MDIO buses" 92a9770eacSAndrew Lunn depends on MDIO_BITBANG 93a9770eacSAndrew Lunn depends on GPIOLIB || COMPILE_TEST 94a9770eacSAndrew Lunn help 95a9770eacSAndrew Lunn Supports GPIO lib-based MDIO busses. 96a9770eacSAndrew Lunn 97a9770eacSAndrew Lunn To compile this driver as a module, choose M here: the module 98a9770eacSAndrew Lunn will be called mdio-gpio. 99a9770eacSAndrew Lunn 100a9770eacSAndrew Lunnconfig MDIO_HISI_FEMAC 101a9770eacSAndrew Lunn tristate "Hisilicon FEMAC MDIO bus controller" 102a9770eacSAndrew Lunn depends on HAS_IOMEM && OF_MDIO 103a9770eacSAndrew Lunn help 104a9770eacSAndrew Lunn This module provides a driver for the MDIO busses found in the 105a9770eacSAndrew Lunn Hisilicon SoC that have an Fast Ethernet MAC. 106a9770eacSAndrew Lunn 107a9770eacSAndrew Lunnconfig MDIO_I2C 108a9770eacSAndrew Lunn tristate 109a9770eacSAndrew Lunn depends on I2C 110a9770eacSAndrew Lunn help 111a9770eacSAndrew Lunn Support I2C based PHYs. This provides a MDIO bus bridged 112a9770eacSAndrew Lunn to I2C to allow PHYs connected in I2C mode to be accessed 113a9770eacSAndrew Lunn using the existing infrastructure. 114a9770eacSAndrew Lunn 115a9770eacSAndrew Lunn This is library mode. 116a9770eacSAndrew Lunn 117a9770eacSAndrew Lunnconfig MDIO_MVUSB 118a9770eacSAndrew Lunn tristate "Marvell USB to MDIO Adapter" 119a9770eacSAndrew Lunn depends on USB 120a9770eacSAndrew Lunn help 121a9770eacSAndrew Lunn A USB to MDIO converter present on development boards for 122a9770eacSAndrew Lunn Marvell's Link Street family of Ethernet switches. 123a9770eacSAndrew Lunn 124a9770eacSAndrew Lunnconfig MDIO_MSCC_MIIM 125a9770eacSAndrew Lunn tristate "Microsemi MIIM interface support" 1261a3267a8SRosen Penev depends on HAS_IOMEM 1271a3267a8SRosen Penev select REGMAP_MMIO 128a9770eacSAndrew Lunn help 129a9770eacSAndrew Lunn This driver supports the MIIM (MDIO) interface found in the network 130a9770eacSAndrew Lunn switches of the Microsemi SoCs; it is recommended to switch on 131a9770eacSAndrew Lunn CONFIG_HIGH_RES_TIMERS 132a9770eacSAndrew Lunn 133a9770eacSAndrew Lunnconfig MDIO_MOXART 134a9770eacSAndrew Lunn tristate "MOXA ART MDIO interface support" 135a9770eacSAndrew Lunn depends on ARCH_MOXART || COMPILE_TEST 136a9770eacSAndrew Lunn help 137a9770eacSAndrew Lunn This driver supports the MDIO interface found in the network 138a9770eacSAndrew Lunn interface units of the MOXA ART SoC 139a9770eacSAndrew Lunn 140a9770eacSAndrew Lunnconfig MDIO_OCTEON 141a9770eacSAndrew Lunn tristate "Octeon and some ThunderX SOCs MDIO buses" 142a9770eacSAndrew Lunn depends on (64BIT && OF_MDIO) || COMPILE_TEST 143a9770eacSAndrew Lunn depends on HAS_IOMEM 144a9770eacSAndrew Lunn select MDIO_CAVIUM 145a9770eacSAndrew Lunn help 146a9770eacSAndrew Lunn This module provides a driver for the Octeon and ThunderX MDIO 147a9770eacSAndrew Lunn buses. It is required by the Octeon and ThunderX ethernet device 148a9770eacSAndrew Lunn drivers on some systems. 149a9770eacSAndrew Lunn 150f76aef98SCharles Perryconfig MDIO_PIC64HPSC 151f76aef98SCharles Perry tristate "PIC64-HPSC/HX MDIO interface support" 1521e9e7fd8SGeert Uytterhoeven depends on ARCH_MICROCHIP || COMPILE_TEST 153f76aef98SCharles Perry depends on HAS_IOMEM && OF_MDIO 154f76aef98SCharles Perry help 155f76aef98SCharles Perry This driver supports the MDIO interface found on the PIC64-HPSC/HX 156f76aef98SCharles Perry SoCs. 157f76aef98SCharles Perry 158a9770eacSAndrew Lunnconfig MDIO_IPQ4019 159a9770eacSAndrew Lunn tristate "Qualcomm IPQ4019 MDIO interface support" 160a9770eacSAndrew Lunn depends on HAS_IOMEM && OF_MDIO 16123a890d4SLuo Jie depends on COMMON_CLK 162a9770eacSAndrew Lunn help 163a9770eacSAndrew Lunn This driver supports the MDIO interface found in Qualcomm 164c76ee263SLuo Jie IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s. 165a9770eacSAndrew Lunn 166a9770eacSAndrew Lunnconfig MDIO_IPQ8064 167a9770eacSAndrew Lunn tristate "Qualcomm IPQ8064 MDIO interface support" 168a9770eacSAndrew Lunn depends on HAS_IOMEM && OF_MDIO 169a9770eacSAndrew Lunn depends on MFD_SYSCON 170a9770eacSAndrew Lunn help 171a9770eacSAndrew Lunn This driver supports the MDIO interface found in the network 172a9770eacSAndrew Lunn interface units of the IPQ8064 SoC 173a9770eacSAndrew Lunn 17424e31e47SChris Packhamconfig MDIO_REALTEK_RTL9300 17524e31e47SChris Packham tristate "Realtek RTL9300 MDIO interface support" 17624e31e47SChris Packham depends on MACH_REALTEK_RTL || COMPILE_TEST 17724e31e47SChris Packham help 17824e31e47SChris Packham This driver supports the MDIO interface found in the Realtek 17924e31e47SChris Packham RTL9300 family of Ethernet switches with integrated SoC. 18024e31e47SChris Packham 181642af0f9SMaxime Chevallierconfig MDIO_REGMAP 182642af0f9SMaxime Chevallier tristate 183642af0f9SMaxime Chevallier help 184642af0f9SMaxime Chevallier This driver allows using MDIO devices that are not sitting on a 185642af0f9SMaxime Chevallier regular MDIO bus, but still exposes the standard 802.3 register 186642af0f9SMaxime Chevallier layout. It's regmap-based so that it can be used on integrated, 187642af0f9SMaxime Chevallier memory-mapped PHYs, SPI PHYs and so on. A new virtual MDIO bus is 188642af0f9SMaxime Chevallier created, and its read/write operations are mapped to the underlying 189642af0f9SMaxime Chevallier regmap. Users willing to use this driver must explicitly select 190642af0f9SMaxime Chevallier REGMAP. 191642af0f9SMaxime Chevallier 192a9770eacSAndrew Lunnconfig MDIO_THUNDER 193a9770eacSAndrew Lunn tristate "ThunderX SOCs MDIO buses" 194a9770eacSAndrew Lunn depends on 64BIT 195a9770eacSAndrew Lunn depends on PCI 196a9770eacSAndrew Lunn select MDIO_CAVIUM 197a9770eacSAndrew Lunn help 198a9770eacSAndrew Lunn This driver supports the MDIO interfaces found on Cavium 199a9770eacSAndrew Lunn ThunderX SoCs when the MDIO bus device appears as a PCI 200a9770eacSAndrew Lunn device. 201a9770eacSAndrew Lunn 202*8a48eb84SMaxime Chevalliermenu "MDIO Multiplexers" 203a9770eacSAndrew Lunn 204a9770eacSAndrew Lunnconfig MDIO_BUS_MUX 205a9770eacSAndrew Lunn tristate 206a9770eacSAndrew Lunn depends on OF_MDIO 207a9770eacSAndrew Lunn help 208a9770eacSAndrew Lunn This module provides a driver framework for MDIO bus 209a9770eacSAndrew Lunn multiplexers which connect one of several child MDIO busses 210a9770eacSAndrew Lunn to a parent bus. Switching between child busses is done by 211a9770eacSAndrew Lunn device specific drivers. 212a9770eacSAndrew Lunn 213a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MESON_G12A 214a9770eacSAndrew Lunn tristate "Amlogic G12a based MDIO bus multiplexer" 215a9770eacSAndrew Lunn depends on ARCH_MESON || COMPILE_TEST 216a9770eacSAndrew Lunn depends on OF_MDIO && HAS_IOMEM && COMMON_CLK 217a9770eacSAndrew Lunn select MDIO_BUS_MUX 218a9770eacSAndrew Lunn default m if ARCH_MESON 219a9770eacSAndrew Lunn help 220a9770eacSAndrew Lunn This module provides a driver for the MDIO multiplexer/glue of 221a9770eacSAndrew Lunn the amlogic g12a SoC. The multiplexers connects either the external 222a9770eacSAndrew Lunn or the internal MDIO bus to the parent bus. 223a9770eacSAndrew Lunn 2249a24e1ffSJerome Brunetconfig MDIO_BUS_MUX_MESON_GXL 2259a24e1ffSJerome Brunet tristate "Amlogic GXL based MDIO bus multiplexer" 2269a24e1ffSJerome Brunet depends on ARCH_MESON || COMPILE_TEST 2279a24e1ffSJerome Brunet depends on OF_MDIO && HAS_IOMEM && COMMON_CLK 2289a24e1ffSJerome Brunet select MDIO_BUS_MUX 2299a24e1ffSJerome Brunet default m if ARCH_MESON 2309a24e1ffSJerome Brunet help 2319a24e1ffSJerome Brunet This module provides a driver for the MDIO multiplexer/glue of 2329a24e1ffSJerome Brunet the amlogic GXL SoC. The multiplexer connects either the external 2339a24e1ffSJerome Brunet or the internal MDIO bus to the parent bus. 2349a24e1ffSJerome Brunet 235e2397567SÁlvaro Fernández Rojasconfig MDIO_BUS_MUX_BCM6368 236e2397567SÁlvaro Fernández Rojas tristate "Broadcom BCM6368 MDIO bus multiplexers" 237e2397567SÁlvaro Fernández Rojas depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST) 238e2397567SÁlvaro Fernández Rojas select MDIO_BUS_MUX 239e2397567SÁlvaro Fernández Rojas default BMIPS_GENERIC 240e2397567SÁlvaro Fernández Rojas help 241e2397567SÁlvaro Fernández Rojas This module provides a driver for MDIO bus multiplexers found in 242e2397567SÁlvaro Fernández Rojas BCM6368 based Broadcom SoCs. This multiplexer connects one of several 243e2397567SÁlvaro Fernández Rojas child MDIO bus to a parent bus. Buses could be internal as well as 244e2397567SÁlvaro Fernández Rojas external and selection logic lies inside the same multiplexer. 245e2397567SÁlvaro Fernández Rojas 246a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_BCM_IPROC 247a9770eacSAndrew Lunn tristate "Broadcom iProc based MDIO bus multiplexers" 248a9770eacSAndrew Lunn depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST) 249a9770eacSAndrew Lunn select MDIO_BUS_MUX 250a9770eacSAndrew Lunn default ARCH_BCM_IPROC 251a9770eacSAndrew Lunn help 252a9770eacSAndrew Lunn This module provides a driver for MDIO bus multiplexers found in 253a9770eacSAndrew Lunn iProc based Broadcom SoCs. This multiplexer connects one of several 254a9770eacSAndrew Lunn child MDIO bus to a parent bus. Buses could be internal as well as 255a9770eacSAndrew Lunn external and selection logic lies inside the same multiplexer. 256a9770eacSAndrew Lunn 257a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_GPIO 258a9770eacSAndrew Lunn tristate "GPIO controlled MDIO bus multiplexers" 259c1358187SBartosz Golaszewski depends on OF_MDIO 260a9770eacSAndrew Lunn select MDIO_BUS_MUX 261a9770eacSAndrew Lunn help 262a9770eacSAndrew Lunn This module provides a driver for MDIO bus multiplexers that 263a9770eacSAndrew Lunn are controlled via GPIO lines. The multiplexer connects one of 264a9770eacSAndrew Lunn several child MDIO busses to a parent bus. Child bus 265a9770eacSAndrew Lunn selection is under the control of GPIO lines. 266a9770eacSAndrew Lunn 267a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MULTIPLEXER 268a9770eacSAndrew Lunn tristate "MDIO bus multiplexer using kernel multiplexer subsystem" 269a9770eacSAndrew Lunn depends on OF_MDIO 270a9770eacSAndrew Lunn select MULTIPLEXER 271a9770eacSAndrew Lunn select MDIO_BUS_MUX 272a9770eacSAndrew Lunn help 273a9770eacSAndrew Lunn This module provides a driver for MDIO bus multiplexer 274a9770eacSAndrew Lunn that is controlled via the kernel multiplexer subsystem. The 275a9770eacSAndrew Lunn bus multiplexer connects one of several child MDIO busses to 276a9770eacSAndrew Lunn a parent bus. Child bus selection is under the control of 277a9770eacSAndrew Lunn the kernel multiplexer subsystem. 278a9770eacSAndrew Lunn 279a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MMIOREG 280a9770eacSAndrew Lunn tristate "MMIO device-controlled MDIO bus multiplexers" 281a9770eacSAndrew Lunn depends on OF_MDIO && HAS_IOMEM 282a9770eacSAndrew Lunn select MDIO_BUS_MUX 283a9770eacSAndrew Lunn help 284a9770eacSAndrew Lunn This module provides a driver for MDIO bus multiplexers that 285a9770eacSAndrew Lunn are controlled via a simple memory-mapped device, like an FPGA. 286a9770eacSAndrew Lunn The multiplexer connects one of several child MDIO busses to a 287a9770eacSAndrew Lunn parent bus. Child bus selection is under the control of one of 288a9770eacSAndrew Lunn the FPGA's registers. 289a9770eacSAndrew Lunn 290a9770eacSAndrew Lunn Currently, only 8/16/32 bits registers are supported. 291a9770eacSAndrew Lunn 29265f18208SMaxime Chevallierendmenu 293*8a48eb84SMaxime Chevallierendmenu 294