1a9770eacSAndrew Lunn# SPDX-License-Identifier: GPL-2.0-only 2a9770eacSAndrew Lunn# 3a9770eacSAndrew Lunn# MDIO Layer Configuration 4a9770eacSAndrew Lunn# 5a9770eacSAndrew Lunn 6a9770eacSAndrew Lunnconfig MDIO_BUS 7*31be641dSHeiner Kallweit tristate "MDIO bus consumer layer" 8a9770eacSAndrew Lunn help 9*31be641dSHeiner Kallweit MDIO bus consumer layer 10a9770eacSAndrew Lunn 11a3e1c0adSHeiner Kallweitif PHYLIB 12a3e1c0adSHeiner Kallweit 13bc1bee3bSCalvin Johnsonconfig FWNODE_MDIO 14a3e1c0adSHeiner Kallweit def_tristate (ACPI || OF) || COMPILE_TEST 15bc1bee3bSCalvin Johnson select FIXED_PHY 16bc1bee3bSCalvin Johnson help 17bc1bee3bSCalvin Johnson FWNODE MDIO bus (Ethernet PHY) accessors 18bc1bee3bSCalvin Johnson 1914b26b12SCalvin Johnsonconfig OF_MDIO 20a3e1c0adSHeiner Kallweit def_tristate OF 2114b26b12SCalvin Johnson select FIXED_PHY 2214b26b12SCalvin Johnson help 2314b26b12SCalvin Johnson OpenFirmware MDIO bus (Ethernet PHY) accessors 2414b26b12SCalvin Johnson 25803ca24dSCalvin Johnsonconfig ACPI_MDIO 26a3e1c0adSHeiner Kallweit def_tristate ACPI 27803ca24dSCalvin Johnson help 28803ca24dSCalvin Johnson ACPI MDIO bus (Ethernet PHY) accessors 29803ca24dSCalvin Johnson 30a9770eacSAndrew Lunnconfig MDIO_AIROHA 31a9770eacSAndrew Lunn tristate "Airoha AN7583 MDIO bus controller" 32a9770eacSAndrew Lunn depends on ARCH_AIROHA || COMPILE_TEST 33a9770eacSAndrew Lunn help 34a9770eacSAndrew Lunn This module provides a driver for the MDIO busses found in the 35a9770eacSAndrew Lunn Airoha AN7583 SoC's. 36a9770eacSAndrew Lunn 37a9770eacSAndrew Lunnconfig MDIO_SUN4I 38a9770eacSAndrew Lunn tristate "Allwinner sun4i MDIO interface support" 39a9770eacSAndrew Lunn depends on ARCH_SUNXI || COMPILE_TEST 40a9770eacSAndrew Lunn help 41a9770eacSAndrew Lunn This driver supports the MDIO interface found in the network 42a9770eacSAndrew Lunn interface units of the Allwinner SoC that have an EMAC (A10, 43a9770eacSAndrew Lunn A12, A10s, etc.) 44a9770eacSAndrew Lunn 45a9770eacSAndrew Lunnconfig MDIO_XGENE 46a9770eacSAndrew Lunn tristate "APM X-Gene SoC MDIO bus controller" 47a9770eacSAndrew Lunn depends on ARCH_XGENE || COMPILE_TEST 48a9770eacSAndrew Lunn help 49a9770eacSAndrew Lunn This module provides a driver for the MDIO busses found in the 50a9770eacSAndrew Lunn APM X-Gene SoC's. 51a9770eacSAndrew Lunn 52a9770eacSAndrew Lunnconfig MDIO_ASPEED 53a9770eacSAndrew Lunn tristate "ASPEED MDIO bus controller" 54a9770eacSAndrew Lunn depends on ARCH_ASPEED || COMPILE_TEST 55a9770eacSAndrew Lunn depends on OF_MDIO && HAS_IOMEM 56a9770eacSAndrew Lunn help 57a9770eacSAndrew Lunn This module provides a driver for the independent MDIO bus 58a9770eacSAndrew Lunn controllers found in the ASPEED AST2600 SoC. This is a driver for the 59a9770eacSAndrew Lunn third revision of the ASPEED MDIO register interface - the first two 60a9770eacSAndrew Lunn revisions are the "old" and "new" interfaces found in the AST2400 and 61a9770eacSAndrew Lunn AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver 62a9770eacSAndrew Lunn continues to drive the embedded MDIO controller for the AST2400 and 63a9770eacSAndrew Lunn AST2500 SoCs, so say N if AST2600 support is not required. 64a9770eacSAndrew Lunn 65a9770eacSAndrew Lunnconfig MDIO_BITBANG 66a9770eacSAndrew Lunn tristate "Bitbanged MDIO buses" 67a9770eacSAndrew Lunn help 68a9770eacSAndrew Lunn This module implements the MDIO bus protocol in software, 69a9770eacSAndrew Lunn for use by low level drivers that export the ability to 70a9770eacSAndrew Lunn drive the relevant pins. 71a9770eacSAndrew Lunn 72a9770eacSAndrew Lunn If in doubt, say N. 73a9770eacSAndrew Lunn 74a9770eacSAndrew Lunnconfig MDIO_BCM_IPROC 75a9770eacSAndrew Lunn tristate "Broadcom iProc MDIO bus controller" 76a9770eacSAndrew Lunn depends on ARCH_BCM_IPROC || COMPILE_TEST 77a9770eacSAndrew Lunn depends on HAS_IOMEM && OF_MDIO 78a9770eacSAndrew Lunn default ARCH_BCM_IPROC 79a9770eacSAndrew Lunn help 80a9770eacSAndrew Lunn This module provides a driver for the MDIO busses found in the 81a9770eacSAndrew Lunn Broadcom iProc SoC's. 82a9770eacSAndrew Lunn 83a9770eacSAndrew Lunnconfig MDIO_BCM_UNIMAC 84a9770eacSAndrew Lunn tristate "Broadcom UniMAC MDIO bus controller" 85a9770eacSAndrew Lunn depends on HAS_IOMEM 86a9770eacSAndrew Lunn help 87a9770eacSAndrew Lunn This module provides a driver for the Broadcom UniMAC MDIO busses. 88a9770eacSAndrew Lunn This hardware can be found in the Broadcom GENET Ethernet MAC 89a9770eacSAndrew Lunn controllers as well as some Broadcom Ethernet switches such as the 90a9770eacSAndrew Lunn Starfighter 2 switches. 91a9770eacSAndrew Lunn 92a9770eacSAndrew Lunnconfig MDIO_CAVIUM 93a9770eacSAndrew Lunn tristate 94a9770eacSAndrew Lunn 95a9770eacSAndrew Lunnconfig MDIO_GPIO 96a9770eacSAndrew Lunn tristate "GPIO lib-based bitbanged MDIO buses" 97a9770eacSAndrew Lunn depends on MDIO_BITBANG 98a9770eacSAndrew Lunn depends on GPIOLIB || COMPILE_TEST 99a9770eacSAndrew Lunn help 100a9770eacSAndrew Lunn Supports GPIO lib-based MDIO busses. 101a9770eacSAndrew Lunn 102a9770eacSAndrew Lunn To compile this driver as a module, choose M here: the module 103a9770eacSAndrew Lunn will be called mdio-gpio. 104a9770eacSAndrew Lunn 105a9770eacSAndrew Lunnconfig MDIO_HISI_FEMAC 106a9770eacSAndrew Lunn tristate "Hisilicon FEMAC MDIO bus controller" 107a9770eacSAndrew Lunn depends on HAS_IOMEM && OF_MDIO 108a9770eacSAndrew Lunn help 109a9770eacSAndrew Lunn This module provides a driver for the MDIO busses found in the 110a9770eacSAndrew Lunn Hisilicon SoC that have an Fast Ethernet MAC. 111a9770eacSAndrew Lunn 112a9770eacSAndrew Lunnconfig MDIO_I2C 113a9770eacSAndrew Lunn tristate 114a9770eacSAndrew Lunn depends on I2C 115a9770eacSAndrew Lunn help 116a9770eacSAndrew Lunn Support I2C based PHYs. This provides a MDIO bus bridged 117a9770eacSAndrew Lunn to I2C to allow PHYs connected in I2C mode to be accessed 118a9770eacSAndrew Lunn using the existing infrastructure. 119a9770eacSAndrew Lunn 120a9770eacSAndrew Lunn This is library mode. 121a9770eacSAndrew Lunn 122a9770eacSAndrew Lunnconfig MDIO_MVUSB 123a9770eacSAndrew Lunn tristate "Marvell USB to MDIO Adapter" 1248057cbb8STianchen Ding depends on USB 125a9770eacSAndrew Lunn help 126a9770eacSAndrew Lunn A USB to MDIO converter present on development boards for 127a9770eacSAndrew Lunn Marvell's Link Street family of Ethernet switches. 128a9770eacSAndrew Lunn 129a9770eacSAndrew Lunnconfig MDIO_MSCC_MIIM 130a9770eacSAndrew Lunn tristate "Microsemi MIIM interface support" 131a9770eacSAndrew Lunn depends on HAS_IOMEM && REGMAP_MMIO 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 149a9770eacSAndrew Lunn help 15023a890d4SLuo Jie This module provides a driver for the Octeon and ThunderX MDIO 151a9770eacSAndrew Lunn buses. It is required by the Octeon and ThunderX ethernet device 152a9770eacSAndrew Lunn drivers on some systems. 153c76ee263SLuo Jie 154a9770eacSAndrew Lunnconfig MDIO_IPQ4019 155a9770eacSAndrew Lunn tristate "Qualcomm IPQ4019 MDIO interface support" 156a9770eacSAndrew Lunn depends on HAS_IOMEM && OF_MDIO 157a9770eacSAndrew Lunn depends on COMMON_CLK 158a9770eacSAndrew Lunn help 159a9770eacSAndrew Lunn This driver supports the MDIO interface found in Qualcomm 160a9770eacSAndrew Lunn IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s. 161a9770eacSAndrew Lunn 162a9770eacSAndrew Lunnconfig MDIO_IPQ8064 16324e31e47SChris Packham tristate "Qualcomm IPQ8064 MDIO interface support" 16424e31e47SChris Packham depends on HAS_IOMEM && OF_MDIO 16524e31e47SChris Packham depends on MFD_SYSCON 16624e31e47SChris Packham help 16724e31e47SChris Packham This driver supports the MDIO interface found in the network 16824e31e47SChris Packham interface units of the IPQ8064 SoC 16924e31e47SChris Packham 170642af0f9SMaxime Chevallierconfig MDIO_REALTEK_RTL9300 171642af0f9SMaxime Chevallier tristate "Realtek RTL9300 MDIO interface support" 172642af0f9SMaxime Chevallier depends on MACH_REALTEK_RTL || COMPILE_TEST 173642af0f9SMaxime Chevallier help 174642af0f9SMaxime Chevallier This driver supports the MDIO interface found in the Realtek 175642af0f9SMaxime Chevallier RTL9300 family of Ethernet switches with integrated SoC. 176642af0f9SMaxime Chevallier 177642af0f9SMaxime Chevallierconfig MDIO_REGMAP 178642af0f9SMaxime Chevallier tristate 179642af0f9SMaxime Chevallier help 180642af0f9SMaxime Chevallier This driver allows using MDIO devices that are not sitting on a 181a9770eacSAndrew Lunn regular MDIO bus, but still exposes the standard 802.3 register 182a9770eacSAndrew Lunn layout. It's regmap-based so that it can be used on integrated, 183a9770eacSAndrew Lunn memory-mapped PHYs, SPI PHYs and so on. A new virtual MDIO bus is 184a9770eacSAndrew Lunn created, and its read/write operations are mapped to the underlying 185a9770eacSAndrew Lunn regmap. Users willing to use this driver must explicitly select 186a9770eacSAndrew Lunn REGMAP. 187a9770eacSAndrew Lunn 188a9770eacSAndrew Lunnconfig MDIO_THUNDER 189a9770eacSAndrew Lunn tristate "ThunderX SOCs MDIO buses" 190a9770eacSAndrew Lunn depends on 64BIT 191a9770eacSAndrew Lunn depends on PCI 192a9770eacSAndrew Lunn select MDIO_CAVIUM 193a9770eacSAndrew Lunn help 194a9770eacSAndrew Lunn This driver supports the MDIO interfaces found on Cavium 195a9770eacSAndrew Lunn ThunderX SoCs when the MDIO bus device appears as a PCI 196a9770eacSAndrew Lunn device. 197a9770eacSAndrew Lunn 198a9770eacSAndrew Lunncomment "MDIO Multiplexers" 199a9770eacSAndrew Lunn 200a9770eacSAndrew Lunnconfig MDIO_BUS_MUX 201a9770eacSAndrew Lunn tristate 202a9770eacSAndrew Lunn depends on OF_MDIO 203a9770eacSAndrew Lunn help 204a9770eacSAndrew Lunn This module provides a driver framework for MDIO bus 205a9770eacSAndrew Lunn multiplexers which connect one of several child MDIO busses 206a9770eacSAndrew Lunn to a parent bus. Switching between child busses is done by 207a9770eacSAndrew Lunn device specific drivers. 208a9770eacSAndrew Lunn 209a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MESON_G12A 210a9770eacSAndrew Lunn tristate "Amlogic G12a based MDIO bus multiplexer" 211a9770eacSAndrew Lunn depends on ARCH_MESON || COMPILE_TEST 212a9770eacSAndrew Lunn depends on OF_MDIO && HAS_IOMEM && COMMON_CLK 2139a24e1ffSJerome Brunet select MDIO_BUS_MUX 2149a24e1ffSJerome Brunet default m if ARCH_MESON 2159a24e1ffSJerome Brunet help 2169a24e1ffSJerome Brunet This module provides a driver for the MDIO multiplexer/glue of 2179a24e1ffSJerome Brunet the amlogic g12a SoC. The multiplexers connects either the external 2189a24e1ffSJerome Brunet or the internal MDIO bus to the parent bus. 2199a24e1ffSJerome Brunet 2209a24e1ffSJerome Brunetconfig MDIO_BUS_MUX_MESON_GXL 2219a24e1ffSJerome Brunet tristate "Amlogic GXL based MDIO bus multiplexer" 2229a24e1ffSJerome Brunet depends on ARCH_MESON || COMPILE_TEST 2239a24e1ffSJerome Brunet depends on OF_MDIO && HAS_IOMEM && COMMON_CLK 224e2397567SÁlvaro Fernández Rojas select MDIO_BUS_MUX 225e2397567SÁlvaro Fernández Rojas default m if ARCH_MESON 226e2397567SÁlvaro Fernández Rojas help 227e2397567SÁlvaro Fernández Rojas This module provides a driver for the MDIO multiplexer/glue of 228e2397567SÁlvaro Fernández Rojas the amlogic GXL SoC. The multiplexer connects either the external 229e2397567SÁlvaro Fernández Rojas or the internal MDIO bus to the parent bus. 230e2397567SÁlvaro Fernández Rojas 231e2397567SÁlvaro Fernández Rojasconfig MDIO_BUS_MUX_BCM6368 232e2397567SÁlvaro Fernández Rojas tristate "Broadcom BCM6368 MDIO bus multiplexers" 233e2397567SÁlvaro Fernández Rojas depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST) 234e2397567SÁlvaro Fernández Rojas select MDIO_BUS_MUX 235a9770eacSAndrew Lunn default BMIPS_GENERIC 236a9770eacSAndrew Lunn help 237a9770eacSAndrew Lunn This module provides a driver for MDIO bus multiplexers found in 238a9770eacSAndrew Lunn BCM6368 based Broadcom SoCs. This multiplexer connects one of several 239a9770eacSAndrew Lunn child MDIO bus to a parent bus. Buses could be internal as well as 240a9770eacSAndrew Lunn external and selection logic lies inside the same multiplexer. 241a9770eacSAndrew Lunn 242a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_BCM_IPROC 243a9770eacSAndrew Lunn tristate "Broadcom iProc based MDIO bus multiplexers" 244a9770eacSAndrew Lunn depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST) 245a9770eacSAndrew Lunn select MDIO_BUS_MUX 246a9770eacSAndrew Lunn default ARCH_BCM_IPROC 247a9770eacSAndrew Lunn help 248a9770eacSAndrew Lunn This module provides a driver for MDIO bus multiplexers found in 249a9770eacSAndrew Lunn iProc based Broadcom SoCs. This multiplexer connects one of several 250a9770eacSAndrew Lunn child MDIO bus to a parent bus. Buses could be internal as well as 251a9770eacSAndrew Lunn external and selection logic lies inside the same multiplexer. 252a9770eacSAndrew Lunn 253a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_GPIO 254a9770eacSAndrew Lunn tristate "GPIO controlled MDIO bus multiplexers" 255a9770eacSAndrew Lunn depends on OF_GPIO && OF_MDIO 256a9770eacSAndrew Lunn select MDIO_BUS_MUX 257a9770eacSAndrew Lunn help 258a9770eacSAndrew Lunn This module provides a driver for MDIO bus multiplexers that 259a9770eacSAndrew Lunn are controlled via GPIO lines. The multiplexer connects one of 260a9770eacSAndrew Lunn several child MDIO busses to a parent bus. Child bus 261a9770eacSAndrew Lunn selection is under the control of GPIO lines. 262a9770eacSAndrew Lunn 263a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MULTIPLEXER 264a9770eacSAndrew Lunn tristate "MDIO bus multiplexer using kernel multiplexer subsystem" 265a9770eacSAndrew Lunn depends on OF_MDIO 266a9770eacSAndrew Lunn select MULTIPLEXER 267a9770eacSAndrew Lunn select MDIO_BUS_MUX 268a9770eacSAndrew Lunn help 269a9770eacSAndrew Lunn This module provides a driver for MDIO bus multiplexer 270a9770eacSAndrew Lunn that is controlled via the kernel multiplexer subsystem. The 271a9770eacSAndrew Lunn bus multiplexer connects one of several child MDIO busses to 272a9770eacSAndrew Lunn a parent bus. Child bus selection is under the control of 273a9770eacSAndrew Lunn the kernel multiplexer subsystem. 274a9770eacSAndrew Lunn 275a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MMIOREG 276a9770eacSAndrew Lunn tristate "MMIO device-controlled MDIO bus multiplexers" 277a9770eacSAndrew Lunn depends on OF_MDIO && HAS_IOMEM 278a9770eacSAndrew Lunn select MDIO_BUS_MUX 279a9770eacSAndrew Lunn help 280a9770eacSAndrew Lunn This module provides a driver for MDIO bus multiplexers that 281a9770eacSAndrew Lunn are controlled via a simple memory-mapped device, like an FPGA. 282a9770eacSAndrew Lunn 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