| # SPDX-License-Identifier: GPL-2.0-only | 
 | # | 
 | # PHY Layer Configuration | 
 | # | 
 |  | 
 | menuconfig MDIO_DEVICE | 
 | 	tristate "MDIO bus device drivers" | 
 | 	help | 
 | 	  MDIO devices and driver infrastructure code. | 
 |  | 
 | if MDIO_DEVICE | 
 |  | 
 | config MDIO_BUS | 
 | 	tristate | 
 | 	default m if PHYLIB=m | 
 | 	default MDIO_DEVICE | 
 | 	help | 
 | 	  This internal symbol is used for link time dependencies and it | 
 | 	  reflects whether the mdio_bus/mdio_device code is built as a | 
 | 	  loadable module or built-in. | 
 |  | 
 | if MDIO_BUS | 
 |  | 
 | config MDIO_ASPEED | 
 | 	tristate "ASPEED MDIO bus controller" | 
 | 	depends on ARCH_ASPEED || COMPILE_TEST | 
 | 	depends on OF_MDIO && HAS_IOMEM | 
 | 	help | 
 | 	  This module provides a driver for the independent MDIO bus | 
 | 	  controllers found in the ASPEED AST2600 SoC. This is a driver for the | 
 | 	  third revision of the ASPEED MDIO register interface - the first two | 
 | 	  revisions are the "old" and "new" interfaces found in the AST2400 and | 
 | 	  AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver | 
 | 	  continues to drive the embedded MDIO controller for the AST2400 and | 
 | 	  AST2500 SoCs, so say N if AST2600 support is not required. | 
 |  | 
 | config MDIO_BCM_IPROC | 
 | 	tristate "Broadcom iProc MDIO bus controller" | 
 | 	depends on ARCH_BCM_IPROC || COMPILE_TEST | 
 | 	depends on HAS_IOMEM && OF_MDIO | 
 | 	default ARCH_BCM_IPROC | 
 | 	help | 
 | 	  This module provides a driver for the MDIO busses found in the | 
 | 	  Broadcom iProc SoC's. | 
 |  | 
 | config MDIO_BCM_UNIMAC | 
 | 	tristate "Broadcom UniMAC MDIO bus controller" | 
 | 	depends on HAS_IOMEM | 
 | 	help | 
 | 	  This module provides a driver for the Broadcom UniMAC MDIO busses. | 
 | 	  This hardware can be found in the Broadcom GENET Ethernet MAC | 
 | 	  controllers as well as some Broadcom Ethernet switches such as the | 
 | 	  Starfighter 2 switches. | 
 |  | 
 | config MDIO_BITBANG | 
 | 	tristate "Bitbanged MDIO buses" | 
 | 	help | 
 | 	  This module implements the MDIO bus protocol in software, | 
 | 	  for use by low level drivers that export the ability to | 
 | 	  drive the relevant pins. | 
 |  | 
 | 	  If in doubt, say N. | 
 |  | 
 | config MDIO_BUS_MUX | 
 | 	tristate | 
 | 	depends on OF_MDIO | 
 | 	help | 
 | 	  This module provides a driver framework for MDIO bus | 
 | 	  multiplexers which connect one of several child MDIO busses | 
 | 	  to a parent bus.  Switching between child busses is done by | 
 | 	  device specific drivers. | 
 |  | 
 | config MDIO_BUS_MUX_BCM_IPROC | 
 | 	tristate "Broadcom iProc based MDIO bus multiplexers" | 
 | 	depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST) | 
 | 	select MDIO_BUS_MUX | 
 | 	default ARCH_BCM_IPROC | 
 | 	help | 
 | 	  This module provides a driver for MDIO bus multiplexers found in | 
 | 	  iProc based Broadcom SoCs. This multiplexer connects one of several | 
 | 	  child MDIO bus to a parent bus. Buses could be internal as well as | 
 | 	  external and selection logic lies inside the same multiplexer. | 
 |  | 
 | config MDIO_BUS_MUX_GPIO | 
 | 	tristate "GPIO controlled MDIO bus multiplexers" | 
 | 	depends on OF_GPIO && OF_MDIO | 
 | 	select MDIO_BUS_MUX | 
 | 	help | 
 | 	  This module provides a driver for MDIO bus multiplexers that | 
 | 	  are controlled via GPIO lines.  The multiplexer connects one of | 
 | 	  several child MDIO busses to a parent bus.  Child bus | 
 | 	  selection is under the control of GPIO lines. | 
 |  | 
 | config MDIO_BUS_MUX_MESON_G12A | 
 | 	tristate "Amlogic G12a based MDIO bus multiplexer" | 
 | 	depends on ARCH_MESON || COMPILE_TEST | 
 | 	depends on OF_MDIO && HAS_IOMEM && COMMON_CLK | 
 | 	select MDIO_BUS_MUX | 
 | 	default m if ARCH_MESON | 
 | 	help | 
 | 	  This module provides a driver for the MDIO multiplexer/glue of | 
 | 	  the amlogic g12a SoC. The multiplexers connects either the external | 
 | 	  or the internal MDIO bus to the parent bus. | 
 |  | 
 | config MDIO_BUS_MUX_MMIOREG | 
 | 	tristate "MMIO device-controlled MDIO bus multiplexers" | 
 | 	depends on OF_MDIO && HAS_IOMEM | 
 | 	select MDIO_BUS_MUX | 
 | 	help | 
 | 	  This module provides a driver for MDIO bus multiplexers that | 
 | 	  are controlled via a simple memory-mapped device, like an FPGA. | 
 | 	  The multiplexer connects one of several child MDIO busses to a | 
 | 	  parent bus.  Child bus selection is under the control of one of | 
 | 	  the FPGA's registers. | 
 |  | 
 | 	  Currently, only 8/16/32 bits registers are supported. | 
 |  | 
 | config MDIO_BUS_MUX_MULTIPLEXER | 
 | 	tristate "MDIO bus multiplexer using kernel multiplexer subsystem" | 
 | 	depends on OF_MDIO | 
 | 	select MULTIPLEXER | 
 | 	select MDIO_BUS_MUX | 
 | 	help | 
 | 	  This module provides a driver for MDIO bus multiplexer | 
 | 	  that is controlled via the kernel multiplexer subsystem. The | 
 | 	  bus multiplexer connects one of several child MDIO busses to | 
 | 	  a parent bus.  Child bus selection is under the control of | 
 | 	  the kernel multiplexer subsystem. | 
 |  | 
 | config MDIO_CAVIUM | 
 | 	tristate | 
 |  | 
 | config MDIO_GPIO | 
 | 	tristate "GPIO lib-based bitbanged MDIO buses" | 
 | 	depends on MDIO_BITBANG | 
 | 	depends on GPIOLIB || COMPILE_TEST | 
 | 	---help--- | 
 | 	  Supports GPIO lib-based MDIO busses. | 
 |  | 
 | 	  To compile this driver as a module, choose M here: the module | 
 | 	  will be called mdio-gpio. | 
 |  | 
 | config MDIO_HISI_FEMAC | 
 | 	tristate "Hisilicon FEMAC MDIO bus controller" | 
 | 	depends on HAS_IOMEM && OF_MDIO | 
 | 	help | 
 | 	  This module provides a driver for the MDIO busses found in the | 
 | 	  Hisilicon SoC that have an Fast Ethernet MAC. | 
 |  | 
 | config MDIO_I2C | 
 | 	tristate | 
 | 	depends on I2C | 
 | 	help | 
 | 	  Support I2C based PHYs.  This provides a MDIO bus bridged | 
 | 	  to I2C to allow PHYs connected in I2C mode to be accessed | 
 | 	  using the existing infrastructure. | 
 |  | 
 | 	  This is library mode. | 
 |  | 
 | config MDIO_MOXART | 
 | 	tristate "MOXA ART MDIO interface support" | 
 | 	depends on ARCH_MOXART || COMPILE_TEST | 
 | 	help | 
 | 	  This driver supports the MDIO interface found in the network | 
 | 	  interface units of the MOXA ART SoC | 
 |  | 
 | config MDIO_MSCC_MIIM | 
 | 	tristate "Microsemi MIIM interface support" | 
 | 	depends on HAS_IOMEM | 
 | 	help | 
 | 	  This driver supports the MIIM (MDIO) interface found in the network | 
 | 	  switches of the Microsemi SoCs | 
 |  | 
 | config MDIO_OCTEON | 
 | 	tristate "Octeon and some ThunderX SOCs MDIO buses" | 
 | 	depends on (64BIT && OF_MDIO) || COMPILE_TEST | 
 | 	depends on HAS_IOMEM | 
 | 	select MDIO_CAVIUM | 
 | 	help | 
 | 	  This module provides a driver for the Octeon and ThunderX MDIO | 
 | 	  buses. It is required by the Octeon and ThunderX ethernet device | 
 | 	  drivers on some systems. | 
 |  | 
 | config MDIO_SUN4I | 
 | 	tristate "Allwinner sun4i MDIO interface support" | 
 | 	depends on ARCH_SUNXI || COMPILE_TEST | 
 | 	help | 
 | 	  This driver supports the MDIO interface found in the network | 
 | 	  interface units of the Allwinner SoC that have an EMAC (A10, | 
 | 	  A12, A10s, etc.) | 
 |  | 
 | config MDIO_THUNDER | 
 | 	tristate "ThunderX SOCs MDIO buses" | 
 | 	depends on 64BIT | 
 | 	depends on PCI | 
 | 	select MDIO_CAVIUM | 
 | 	help | 
 | 	  This driver supports the MDIO interfaces found on Cavium | 
 | 	  ThunderX SoCs when the MDIO bus device appears as a PCI | 
 | 	  device. | 
 |  | 
 | config MDIO_XGENE | 
 | 	tristate "APM X-Gene SoC MDIO bus controller" | 
 | 	depends on ARCH_XGENE || COMPILE_TEST | 
 | 	help | 
 | 	  This module provides a driver for the MDIO busses found in the | 
 | 	  APM X-Gene SoC's. | 
 |  | 
 | endif | 
 | endif | 
 |  | 
 | config PHYLINK | 
 | 	tristate | 
 | 	depends on NETDEVICES | 
 | 	select PHYLIB | 
 | 	select SWPHY | 
 | 	help | 
 | 	  PHYlink models the link between the PHY and MAC, allowing fixed | 
 | 	  configuration links, PHYs, and Serdes links with MAC level | 
 | 	  autonegotiation modes. | 
 |  | 
 | menuconfig PHYLIB | 
 | 	tristate "PHY Device support and infrastructure" | 
 | 	depends on NETDEVICES | 
 | 	select MDIO_DEVICE | 
 | 	help | 
 | 	  Ethernet controllers are usually attached to PHY | 
 | 	  devices.  This option provides infrastructure for | 
 | 	  managing PHY devices. | 
 |  | 
 | if PHYLIB | 
 |  | 
 | config SWPHY | 
 | 	bool | 
 |  | 
 | config LED_TRIGGER_PHY | 
 | 	bool "Support LED triggers for tracking link state" | 
 | 	depends on LEDS_TRIGGERS | 
 | 	---help--- | 
 | 	  Adds support for a set of LED trigger events per-PHY.  Link | 
 | 	  state change will trigger the events, for consumption by an | 
 | 	  LED class driver.  There are triggers for each link speed currently | 
 | 	  supported by the PHY and also a one common "link" trigger as a | 
 | 	  logical-or of all the link speed ones. | 
 | 	  All these triggers are named according to the following pattern: | 
 | 	      <mii bus id>:<phy>:<speed> | 
 |  | 
 | 	  Where speed is in the form: | 
 | 		<Speed in megabits>Mbps OR <Speed in gigabits>Gbps OR link | 
 | 		for any speed known to the PHY. | 
 |  | 
 |  | 
 | comment "MII PHY device drivers" | 
 |  | 
 | config SFP | 
 | 	tristate "SFP cage support" | 
 | 	depends on I2C && PHYLINK | 
 | 	depends on HWMON || HWMON=n | 
 | 	select MDIO_I2C | 
 |  | 
 | config ADIN_PHY | 
 | 	tristate "Analog Devices Industrial Ethernet PHYs" | 
 | 	help | 
 | 	  Adds support for the Analog Devices Industrial Ethernet PHYs. | 
 | 	  Currently supports the: | 
 | 	  - ADIN1200 - Robust,Industrial, Low Power 10/100 Ethernet PHY | 
 | 	  - ADIN1300 - Robust,Industrial, Low Latency 10/100/1000 Gigabit | 
 | 	    Ethernet PHY | 
 |  | 
 | config AMD_PHY | 
 | 	tristate "AMD PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the am79c874 | 
 |  | 
 | config AQUANTIA_PHY | 
 | 	tristate "Aquantia PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the Aquantia AQ1202, AQ2104, AQR105, AQR405 | 
 |  | 
 | config AX88796B_PHY | 
 | 	tristate "Asix PHYs" | 
 | 	help | 
 | 	  Currently supports the Asix Electronics PHY found in the X-Surf 100 | 
 | 	  AX88796B package. | 
 |  | 
 | config BCM63XX_PHY | 
 | 	tristate "Broadcom 63xx SOCs internal PHY" | 
 | 	depends on BCM63XX || COMPILE_TEST | 
 | 	select BCM_NET_PHYLIB | 
 | 	---help--- | 
 | 	  Currently supports the 6348 and 6358 PHYs. | 
 |  | 
 | config BCM7XXX_PHY | 
 | 	tristate "Broadcom 7xxx SOCs internal PHYs" | 
 | 	select BCM_NET_PHYLIB | 
 | 	---help--- | 
 | 	  Currently supports the BCM7366, BCM7439, BCM7445, and | 
 | 	  40nm and 65nm generation of BCM7xxx Set Top Box SoCs. | 
 |  | 
 | config BCM87XX_PHY | 
 | 	tristate "Broadcom BCM8706 and BCM8727 PHYs" | 
 | 	help | 
 | 	  Currently supports the BCM8706 and BCM8727 10G Ethernet PHYs. | 
 |  | 
 | config BCM_CYGNUS_PHY | 
 | 	tristate "Broadcom Cygnus/Omega SoC internal PHY" | 
 | 	depends on ARCH_BCM_IPROC || COMPILE_TEST | 
 | 	depends on MDIO_BCM_IPROC | 
 | 	select BCM_NET_PHYLIB | 
 | 	---help--- | 
 | 	  This PHY driver is for the 1G internal PHYs of the Broadcom | 
 | 	  Cygnus and Omega Family SoC. | 
 |  | 
 | 	  Currently supports internal PHY's used in the BCM11300, | 
 | 	  BCM11320, BCM11350, BCM11360, BCM58300, BCM58302, | 
 | 	  BCM58303 & BCM58305 Broadcom Cygnus SoCs. | 
 |  | 
 | config BCM_NET_PHYLIB | 
 | 	tristate | 
 |  | 
 | config BROADCOM_PHY | 
 | 	tristate "Broadcom PHYs" | 
 | 	select BCM_NET_PHYLIB | 
 | 	---help--- | 
 | 	  Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464, | 
 | 	  BCM5481, BCM54810 and BCM5482 PHYs. | 
 |  | 
 | config BCM84881_PHY | 
 | 	bool "Broadcom BCM84881 PHY" | 
 | 	depends on PHYLIB=y | 
 | 	---help--- | 
 | 	  Support the Broadcom BCM84881 PHY. | 
 |  | 
 | config CICADA_PHY | 
 | 	tristate "Cicada PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the cis8204 | 
 |  | 
 | config CORTINA_PHY | 
 | 	tristate "Cortina EDC CDR 10G Ethernet PHY" | 
 | 	---help--- | 
 | 	  Currently supports the CS4340 phy. | 
 |  | 
 | config DAVICOM_PHY | 
 | 	tristate "Davicom PHYs" | 
 | 	---help--- | 
 | 	  Currently supports dm9161e and dm9131 | 
 |  | 
 | config DP83822_PHY | 
 | 	tristate "Texas Instruments DP83822/825/826 PHYs" | 
 | 	---help--- | 
 | 	  Supports the DP83822, DP83825I, DP83825CM, DP83825CS, DP83825S, | 
 | 	  DP83826C and DP83826NC PHYs. | 
 |  | 
 | config DP83TC811_PHY | 
 | 	tristate "Texas Instruments DP83TC811 PHY" | 
 | 	---help--- | 
 | 	  Supports the DP83TC811 PHY. | 
 |  | 
 | config DP83848_PHY | 
 | 	tristate "Texas Instruments DP83848 PHY" | 
 | 	---help--- | 
 | 	  Supports the DP83848 PHY. | 
 |  | 
 | config DP83867_PHY | 
 | 	tristate "Texas Instruments DP83867 Gigabit PHY" | 
 | 	---help--- | 
 | 	  Currently supports the DP83867 PHY. | 
 |  | 
 | config DP83869_PHY | 
 | 	tristate "Texas Instruments DP83869 Gigabit PHY" | 
 | 	---help--- | 
 | 	  Currently supports the DP83869 PHY.  This PHY supports copper and | 
 | 	  fiber connections. | 
 |  | 
 | config FIXED_PHY | 
 | 	tristate "MDIO Bus/PHY emulation with fixed speed/link PHYs" | 
 | 	depends on PHYLIB | 
 | 	select SWPHY | 
 | 	---help--- | 
 | 	  Adds the platform "fixed" MDIO Bus to cover the boards that use | 
 | 	  PHYs that are not connected to the real MDIO bus. | 
 |  | 
 | 	  Currently tested with mpc866ads and mpc8349e-mitx. | 
 |  | 
 | config ICPLUS_PHY | 
 | 	tristate "ICPlus PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the IP175C and IP1001 PHYs. | 
 |  | 
 | config INTEL_XWAY_PHY | 
 | 	tristate "Intel XWAY PHYs" | 
 | 	---help--- | 
 | 	  Supports the Intel XWAY (former Lantiq) 11G and 22E PHYs. | 
 | 	  These PHYs are marked as standalone chips under the names | 
 | 	  PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel | 
 | 	  SoCs xRX200, xRX300, xRX330, xRX350 and xRX550. | 
 |  | 
 | config LSI_ET1011C_PHY | 
 | 	tristate "LSI ET1011C PHY" | 
 | 	---help--- | 
 | 	  Supports the LSI ET1011C PHY. | 
 |  | 
 | config LXT_PHY | 
 | 	tristate "Intel LXT PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the lxt970, lxt971 | 
 |  | 
 | config MARVELL_PHY | 
 | 	tristate "Marvell PHYs" | 
 | 	---help--- | 
 | 	  Currently has a driver for the 88E1011S | 
 |  | 
 | config MARVELL_10G_PHY | 
 | 	tristate "Marvell Alaska 10Gbit PHYs" | 
 | 	---help--- | 
 | 	  Support for the Marvell Alaska MV88X3310 and compatible PHYs. | 
 |  | 
 | config MESON_GXL_PHY | 
 | 	tristate "Amlogic Meson GXL Internal PHY" | 
 | 	depends on ARCH_MESON || COMPILE_TEST | 
 | 	---help--- | 
 | 	  Currently has a driver for the Amlogic Meson GXL Internal PHY | 
 |  | 
 | config MICREL_PHY | 
 | 	tristate "Micrel PHYs" | 
 | 	---help--- | 
 | 	  Supports the KSZ9021, VSC8201, KS8001 PHYs. | 
 |  | 
 | config MICROCHIP_PHY | 
 | 	tristate "Microchip PHYs" | 
 | 	help | 
 | 	  Supports the LAN88XX PHYs. | 
 |  | 
 | config MICROCHIP_T1_PHY | 
 | 	tristate "Microchip T1 PHYs" | 
 | 	---help--- | 
 | 	  Supports the LAN87XX PHYs. | 
 |  | 
 | config MICROSEMI_PHY | 
 | 	tristate "Microsemi PHYs" | 
 | 	depends on MACSEC || MACSEC=n | 
 | 	select CRYPTO_AES | 
 | 	select CRYPTO_ECB | 
 | 	---help--- | 
 | 	  Currently supports VSC8514, VSC8530, VSC8531, VSC8540 and VSC8541 PHYs | 
 |  | 
 | config NATIONAL_PHY | 
 | 	tristate "National Semiconductor PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the DP83865 PHY. | 
 |  | 
 | config NXP_TJA11XX_PHY | 
 | 	tristate "NXP TJA11xx PHYs support" | 
 | 	depends on HWMON | 
 | 	---help--- | 
 | 	  Currently supports the NXP TJA1100 and TJA1101 PHY. | 
 |  | 
 | config AT803X_PHY | 
 | 	tristate "Qualcomm Atheros AR803X PHYs" | 
 | 	depends on REGULATOR | 
 | 	help | 
 | 	  Currently supports the AR8030, AR8031, AR8033 and AR8035 model | 
 |  | 
 | config QSEMI_PHY | 
 | 	tristate "Quality Semiconductor PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the qs6612 | 
 |  | 
 | config REALTEK_PHY | 
 | 	tristate "Realtek PHYs" | 
 | 	---help--- | 
 | 	  Supports the Realtek 821x PHY. | 
 |  | 
 | config RENESAS_PHY | 
 | 	tristate "Driver for Renesas PHYs" | 
 | 	---help--- | 
 | 	  Supports the Renesas PHYs uPD60620 and uPD60620A. | 
 |  | 
 | config ROCKCHIP_PHY | 
 | 	tristate "Driver for Rockchip Ethernet PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the integrated Ethernet PHY. | 
 |  | 
 | config SMSC_PHY | 
 | 	tristate "SMSC PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the LAN83C185, LAN8187 and LAN8700 PHYs | 
 |  | 
 | config STE10XP | 
 | 	tristate "STMicroelectronics STe10Xp PHYs" | 
 | 	---help--- | 
 | 	  This is the driver for the STe100p and STe101p PHYs. | 
 |  | 
 | config TERANETICS_PHY | 
 | 	tristate "Teranetics PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the Teranetics TN2020 | 
 |  | 
 | config VITESSE_PHY | 
 | 	tristate "Vitesse PHYs" | 
 | 	---help--- | 
 | 	  Currently supports the vsc8244 | 
 |  | 
 | config XILINX_GMII2RGMII | 
 | 	tristate "Xilinx GMII2RGMII converter driver" | 
 | 	---help--- | 
 | 	  This driver support xilinx GMII to RGMII IP core it provides | 
 | 	  the Reduced Gigabit Media Independent Interface(RGMII) between | 
 | 	  Ethernet physical media devices and the Gigabit Ethernet controller. | 
 |  | 
 | endif # PHYLIB | 
 |  | 
 | config MICREL_KS8995MA | 
 | 	tristate "Micrel KS8995MA 5-ports 10/100 managed Ethernet switch" | 
 | 	depends on SPI |