lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 3 Aug 2020 14:11:10 +0000
From:   "Madalin Bucur (OSS)" <madalin.bucur@....nxp.com>
To:     Andrew Lunn <andrew@...n.ch>, netdev <netdev@...r.kernel.org>
CC:     Ioana Ciornei <ioana.ciornei@....com>,
        Florian Fainelli <f.fainelli@...il.com>,
        Russell King <rmk+kernel@...linux.org.uk>,
        Heiner Kallweit <hkallweit1@...il.com>
Subject: RE: [PATCH RFC net-next 2/3] net: phy: Move into subdirectories

> -----Original Message-----
> From: netdev-owner@...r.kernel.org <netdev-owner@...r.kernel.org> On
> Behalf Of Andrew Lunn
> Sent: 27 July 2020 23:48
> To: netdev <netdev@...r.kernel.org>
> Cc: Ioana Ciornei <ioana.ciornei@....com>; Florian Fainelli
> <f.fainelli@...il.com>; Russell King <rmk+kernel@...linux.org.uk>; Heiner
> Kallweit <hkallweit1@...il.com>; Andrew Lunn <andrew@...n.ch>
> Subject: [PATCH RFC net-next 2/3] net: phy: Move into subdirectories
> 
> Move the PHY drivers into the phy subdirectory

We could keep the PHY drivers in the base drivers/net/phy/ folder, move
only mdio to introduce lesser changes.

> Move the MDIO bus drivers into the mdio subdirectory
> 
> Take this opportunity to sort the Kconfig entries based on the text
> that appears in the menu, and the Makefiles.
> 
> Signed-off-by: Andrew Lunn <andrew@...n.ch>
> ---
>  drivers/net/phy/Kconfig                       | 481 +-----------------
>  drivers/net/phy/Makefile                      |  77 +--
>  drivers/net/phy/mdio/Kconfig                  | 226 ++++++++
>  drivers/net/phy/mdio/Makefile                 |  26 +
>  drivers/net/phy/{ => mdio}/mdio-aspeed.c      |   0
>  drivers/net/phy/{ => mdio}/mdio-bcm-iproc.c   |   0
>  drivers/net/phy/{ => mdio}/mdio-bcm-unimac.c  |   0
>  drivers/net/phy/{ => mdio}/mdio-bitbang.c     |   0
>  drivers/net/phy/{ => mdio}/mdio-cavium.c      |   0
>  drivers/net/phy/{ => mdio}/mdio-cavium.h      |   0
>  drivers/net/phy/{ => mdio}/mdio-gpio.c        |   0
>  drivers/net/phy/{ => mdio}/mdio-hisi-femac.c  |   0
>  drivers/net/phy/{ => mdio}/mdio-ipq4019.c     |   0
>  drivers/net/phy/{ => mdio}/mdio-ipq8064.c     |   0
>  drivers/net/phy/{ => mdio}/mdio-moxart.c      |   0
>  drivers/net/phy/{ => mdio}/mdio-mscc-miim.c   |   0
>  .../net/phy/{ => mdio}/mdio-mux-bcm-iproc.c   |   0
>  drivers/net/phy/{ => mdio}/mdio-mux-gpio.c    |   0
>  .../net/phy/{ => mdio}/mdio-mux-meson-g12a.c  |   0
>  drivers/net/phy/{ => mdio}/mdio-mux-mmioreg.c |   0
>  .../net/phy/{ => mdio}/mdio-mux-multiplexer.c |   0
>  drivers/net/phy/{ => mdio}/mdio-mux.c         |   0
>  drivers/net/phy/{ => mdio}/mdio-mvusb.c       |   0
>  drivers/net/phy/{ => mdio}/mdio-octeon.c      |   0
>  drivers/net/phy/{ => mdio}/mdio-sun4i.c       |   0
>  drivers/net/phy/{ => mdio}/mdio-thunder.c     |   0
>  drivers/net/phy/{ => mdio}/mdio-xgene.c       |   0
>  drivers/net/phy/phy/Kconfig                   | 243 +++++++++
>  drivers/net/phy/phy/Makefile                  |  50 ++
>  drivers/net/phy/{ => phy}/adin.c              |   0
>  drivers/net/phy/{ => phy}/amd.c               |   0
>  drivers/net/phy/{ => phy}/aquantia.h          |   0
>  drivers/net/phy/{ => phy}/aquantia_hwmon.c    |   0
>  drivers/net/phy/{ => phy}/aquantia_main.c     |   0
>  drivers/net/phy/{ => phy}/at803x.c            |   0
>  drivers/net/phy/{ => phy}/ax88796b.c          |   0
>  drivers/net/phy/{ => phy}/bcm-cygnus.c        |   0
>  drivers/net/phy/{ => phy}/bcm-phy-lib.c       |   0
>  drivers/net/phy/{ => phy}/bcm-phy-lib.h       |   0
>  drivers/net/phy/{ => phy}/bcm54140.c          |   0
>  drivers/net/phy/{ => phy}/bcm63xx.c           |   0
>  drivers/net/phy/{ => phy}/bcm7xxx.c           |   0
>  drivers/net/phy/{ => phy}/bcm84881.c          |   0
>  drivers/net/phy/{ => phy}/bcm87xx.c           |   0
>  drivers/net/phy/{ => phy}/broadcom.c          |   0
>  drivers/net/phy/{ => phy}/cicada.c            |   0
>  drivers/net/phy/{ => phy}/cortina.c           |   0
>  drivers/net/phy/{ => phy}/davicom.c           |   0
>  drivers/net/phy/{ => phy}/dp83640.c           |   0
>  drivers/net/phy/{ => phy}/dp83640_reg.h       |   0
>  drivers/net/phy/{ => phy}/dp83822.c           |   0
>  drivers/net/phy/{ => phy}/dp83848.c           |   0
>  drivers/net/phy/{ => phy}/dp83867.c           |   0
>  drivers/net/phy/{ => phy}/dp83869.c           |   0
>  drivers/net/phy/{ => phy}/dp83tc811.c         |   0
>  drivers/net/phy/{ => phy}/et1011c.c           |   0
>  drivers/net/phy/{ => phy}/icplus.c            |   0
>  drivers/net/phy/{ => phy}/intel-xway.c        |   0
>  drivers/net/phy/{ => phy}/lxt.c               |   0
>  drivers/net/phy/{ => phy}/marvell.c           |   0
>  drivers/net/phy/{ => phy}/marvell10g.c        |   0
>  drivers/net/phy/{ => phy}/meson-gxl.c         |   0
>  drivers/net/phy/{ => phy}/micrel.c            |   0
>  drivers/net/phy/{ => phy}/microchip.c         |   0
>  drivers/net/phy/{ => phy}/microchip_t1.c      |   0
>  drivers/net/phy/{ => phy}/mscc/Makefile       |   0
>  drivers/net/phy/{ => phy}/mscc/mscc.h         |   0
>  .../net/phy/{ => phy}/mscc/mscc_fc_buffer.h   |   0
>  drivers/net/phy/{ => phy}/mscc/mscc_mac.h     |   0
>  drivers/net/phy/{ => phy}/mscc/mscc_macsec.c  |   0
>  drivers/net/phy/{ => phy}/mscc/mscc_macsec.h  |   0
>  drivers/net/phy/{ => phy}/mscc/mscc_main.c    |   0
>  drivers/net/phy/{ => phy}/national.c          |   0
>  drivers/net/phy/{ => phy}/nxp-tja11xx.c       |   0
>  drivers/net/phy/{ => phy}/qsemi.c             |   0
>  drivers/net/phy/{ => phy}/realtek.c           |   0
>  drivers/net/phy/{ => phy}/rockchip.c          |   0
>  drivers/net/phy/{ => phy}/smsc.c              |   0
>  drivers/net/phy/{ => phy}/ste10Xp.c           |   0
>  drivers/net/phy/{ => phy}/teranetics.c        |   0
>  drivers/net/phy/{ => phy}/uPD60620.c          |   0
>  drivers/net/phy/{ => phy}/vitesse.c           |   0
>  82 files changed, 559 insertions(+), 544 deletions(-)
>  create mode 100644 drivers/net/phy/mdio/Kconfig
>  create mode 100644 drivers/net/phy/mdio/Makefile
>  rename drivers/net/phy/{ => mdio}/mdio-aspeed.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-bcm-iproc.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-bcm-unimac.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-bitbang.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-cavium.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-cavium.h (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-gpio.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-hisi-femac.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-ipq4019.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-ipq8064.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-moxart.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-mscc-miim.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-mux-bcm-iproc.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-mux-gpio.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-mux-meson-g12a.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-mux-mmioreg.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-mux-multiplexer.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-mux.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-mvusb.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-octeon.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-sun4i.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-thunder.c (100%)
>  rename drivers/net/phy/{ => mdio}/mdio-xgene.c (100%)
>  create mode 100644 drivers/net/phy/phy/Kconfig
>  create mode 100644 drivers/net/phy/phy/Makefile
>  rename drivers/net/phy/{ => phy}/adin.c (100%)
>  rename drivers/net/phy/{ => phy}/amd.c (100%)
>  rename drivers/net/phy/{ => phy}/aquantia.h (100%)
>  rename drivers/net/phy/{ => phy}/aquantia_hwmon.c (100%)
>  rename drivers/net/phy/{ => phy}/aquantia_main.c (100%)
>  rename drivers/net/phy/{ => phy}/at803x.c (100%)
>  rename drivers/net/phy/{ => phy}/ax88796b.c (100%)
>  rename drivers/net/phy/{ => phy}/bcm-cygnus.c (100%)
>  rename drivers/net/phy/{ => phy}/bcm-phy-lib.c (100%)
>  rename drivers/net/phy/{ => phy}/bcm-phy-lib.h (100%)
>  rename drivers/net/phy/{ => phy}/bcm54140.c (100%)
>  rename drivers/net/phy/{ => phy}/bcm63xx.c (100%)
>  rename drivers/net/phy/{ => phy}/bcm7xxx.c (100%)
>  rename drivers/net/phy/{ => phy}/bcm84881.c (100%)
>  rename drivers/net/phy/{ => phy}/bcm87xx.c (100%)
>  rename drivers/net/phy/{ => phy}/broadcom.c (100%)
>  rename drivers/net/phy/{ => phy}/cicada.c (100%)
>  rename drivers/net/phy/{ => phy}/cortina.c (100%)
>  rename drivers/net/phy/{ => phy}/davicom.c (100%)
>  rename drivers/net/phy/{ => phy}/dp83640.c (100%)
>  rename drivers/net/phy/{ => phy}/dp83640_reg.h (100%)
>  rename drivers/net/phy/{ => phy}/dp83822.c (100%)
>  rename drivers/net/phy/{ => phy}/dp83848.c (100%)
>  rename drivers/net/phy/{ => phy}/dp83867.c (100%)
>  rename drivers/net/phy/{ => phy}/dp83869.c (100%)
>  rename drivers/net/phy/{ => phy}/dp83tc811.c (100%)
>  rename drivers/net/phy/{ => phy}/et1011c.c (100%)
>  rename drivers/net/phy/{ => phy}/icplus.c (100%)
>  rename drivers/net/phy/{ => phy}/intel-xway.c (100%)
>  rename drivers/net/phy/{ => phy}/lxt.c (100%)
>  rename drivers/net/phy/{ => phy}/marvell.c (100%)
>  rename drivers/net/phy/{ => phy}/marvell10g.c (100%)
>  rename drivers/net/phy/{ => phy}/meson-gxl.c (100%)
>  rename drivers/net/phy/{ => phy}/micrel.c (100%)
>  rename drivers/net/phy/{ => phy}/microchip.c (100%)
>  rename drivers/net/phy/{ => phy}/microchip_t1.c (100%)
>  rename drivers/net/phy/{ => phy}/mscc/Makefile (100%)
>  rename drivers/net/phy/{ => phy}/mscc/mscc.h (100%)
>  rename drivers/net/phy/{ => phy}/mscc/mscc_fc_buffer.h (100%)
>  rename drivers/net/phy/{ => phy}/mscc/mscc_mac.h (100%)
>  rename drivers/net/phy/{ => phy}/mscc/mscc_macsec.c (100%)
>  rename drivers/net/phy/{ => phy}/mscc/mscc_macsec.h (100%)
>  rename drivers/net/phy/{ => phy}/mscc/mscc_main.c (100%)
>  rename drivers/net/phy/{ => phy}/national.c (100%)
>  rename drivers/net/phy/{ => phy}/nxp-tja11xx.c (100%)
>  rename drivers/net/phy/{ => phy}/qsemi.c (100%)
>  rename drivers/net/phy/{ => phy}/realtek.c (100%)
>  rename drivers/net/phy/{ => phy}/rockchip.c (100%)
>  rename drivers/net/phy/{ => phy}/smsc.c (100%)
>  rename drivers/net/phy/{ => phy}/ste10Xp.c (100%)
>  rename drivers/net/phy/{ => phy}/teranetics.c (100%)
>  rename drivers/net/phy/{ => phy}/uPD60620.c (100%)
>  rename drivers/net/phy/{ => phy}/vitesse.c (100%)
> 
> diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
> index dd20c2c27c2f..a193236fd65a 100644
> --- a/drivers/net/phy/Kconfig
> +++ b/drivers/net/phy/Kconfig
> @@ -3,235 +3,7 @@
>  # 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_DEVRES
> -	tristate
> -
> -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_IPQ4019
> -	tristate "Qualcomm IPQ4019 MDIO interface support"
> -	depends on HAS_IOMEM && OF_MDIO
> -	help
> -	  This driver supports the MDIO interface found in Qualcomm
> -	  IPQ40xx series Soc-s.
> -
> -config MDIO_IPQ8064
> -	tristate "Qualcomm IPQ8064 MDIO interface support"
> -	depends on HAS_IOMEM && OF_MDIO
> -	depends on MFD_SYSCON
> -	help
> -	  This driver supports the MDIO interface found in the network
> -	  interface units of the IPQ8064 SoC
> -
> -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
> -	select MDIO_DEVRES
> -	help
> -	  This driver supports the MIIM (MDIO) interface found in the
> network
> -	  switches of the Microsemi SoCs; it is recommended to switch on
> -	  CONFIG_HIGH_RES_TIMERS
> -
> -config MDIO_MVUSB
> -	tristate "Marvell USB to MDIO Adapter"
> -	depends on USB
> -	help
> -	  A USB to MDIO converter present on development boards for
> -	  Marvell's Link Street family of Ethernet switches.
> -
> -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.
> +source "drivers/net/phy/mdio/Kconfig"
> 
>  config MDIO_XPCS
>  	tristate "Synopsys DesignWare XPCS controller"
> @@ -239,9 +11,6 @@ config MDIO_XPCS
>  	  This module provides helper functions for Synopsys DesignWare XPCS
>  	  controllers.
> 
> -endif
> -endif
> -
>  config PHYLINK
>  	tristate
>  	depends on NETDEVICES
> @@ -292,132 +61,6 @@ config SFP
>  	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 BCM54140_PHY
> -	tristate "Broadcom BCM54140 PHY"
> -	depends on PHYLIB
> -	depends on HWMON || HWMON=n
> -	select BCM_NET_PHYLIB
> -	help
> -	  Support the Broadcom BCM54140 Quad SGMII/QSGMII PHY.
> -
> -	  This driver also supports the hardware monitoring of this PHY and
> -	  exposes voltage and temperature sensors.
> -
> -config BCM84881_PHY
> -	tristate "Broadcom BCM84881 PHY"
> -	depends on PHYLIB
> -	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
> @@ -428,123 +71,17 @@ config FIXED_PHY
> 
>  	  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_LIB_AES if MACSEC
> -	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"
> +config MDIO_I2C
> +	tristate
> +	depends on I2C
>  	help
> -	  This is the driver for the STe100p and STe101p PHYs.
> +	  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.
> 
> -config TERANETICS_PHY
> -	tristate "Teranetics PHYs"
> -	help
> -	  Currently supports the Teranetics TN2020
> +	  This is library mode.
> 
> -config VITESSE_PHY
> -	tristate "Vitesse PHYs"
> -	help
> -	  Currently supports the vsc8244
> +source "drivers/net/phy/phy/Kconfig"
> 
>  config XILINX_GMII2RGMII
>  	tristate "Xilinx GMII2RGMII converter driver"
> diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
> index d84bab489a53..6bdf04478d34 100644
> --- a/drivers/net/phy/Makefile
> +++ b/drivers/net/phy/Makefile
> @@ -1,6 +1,8 @@
>  # SPDX-License-Identifier: GPL-2.0
>  # Makefile for Linux PHY drivers and MDIO bus drivers
> 
> +obj-y				+= phy/ mdio/
> +
>  libphy-y			:= phy.o phy-c45.o phy-core.o phy_device.o \
>  				   linkmode.o
>  mdio-bus-y			+= mdio_bus.o mdio_device.o
> @@ -23,30 +25,8 @@ libphy-$(CONFIG_LED_TRIGGER_PHY)	+=
> phy_led_triggers.o
> 
>  obj-$(CONFIG_PHYLINK)		+= phylink.o
>  obj-$(CONFIG_PHYLIB)		+= libphy.o
> +obj-$(CONFIG_FIXED_PHY)		+= fixed_phy.o
> 
> -obj-$(CONFIG_MDIO_ASPEED)	+= mdio-aspeed.o
> -obj-$(CONFIG_MDIO_BCM_IPROC)	+= mdio-bcm-iproc.o
> -obj-$(CONFIG_MDIO_BCM_UNIMAC)	+= mdio-bcm-unimac.o
> -obj-$(CONFIG_MDIO_BITBANG)	+= mdio-bitbang.o
> -obj-$(CONFIG_MDIO_BUS_MUX)	+= mdio-mux.o
> -obj-$(CONFIG_MDIO_BUS_MUX_BCM_IPROC)	+= mdio-mux-bcm-iproc.o
> -obj-$(CONFIG_MDIO_BUS_MUX_GPIO)	+= mdio-mux-gpio.o
> -obj-$(CONFIG_MDIO_BUS_MUX_MESON_G12A)	+= mdio-mux-meson-g12a.o
> -obj-$(CONFIG_MDIO_BUS_MUX_MMIOREG) += mdio-mux-mmioreg.o
> -obj-$(CONFIG_MDIO_BUS_MUX_MULTIPLEXER) += mdio-mux-multiplexer.o
> -obj-$(CONFIG_MDIO_CAVIUM)	+= mdio-cavium.o
> -obj-$(CONFIG_MDIO_GPIO)		+= mdio-gpio.o
> -obj-$(CONFIG_MDIO_HISI_FEMAC)	+= mdio-hisi-femac.o
> -obj-$(CONFIG_MDIO_I2C)		+= mdio-i2c.o
> -obj-$(CONFIG_MDIO_IPQ4019)	+= mdio-ipq4019.o
> -obj-$(CONFIG_MDIO_IPQ8064)	+= mdio-ipq8064.o
> -obj-$(CONFIG_MDIO_MOXART)	+= mdio-moxart.o
> -obj-$(CONFIG_MDIO_MSCC_MIIM)	+= mdio-mscc-miim.o
> -obj-$(CONFIG_MDIO_MVUSB)	+= mdio-mvusb.o
> -obj-$(CONFIG_MDIO_OCTEON)	+= mdio-octeon.o
> -obj-$(CONFIG_MDIO_SUN4I)	+= mdio-sun4i.o
> -obj-$(CONFIG_MDIO_THUNDER)	+= mdio-thunder.o
> -obj-$(CONFIG_MDIO_XGENE)	+= mdio-xgene.o
>  obj-$(CONFIG_MDIO_XPCS)		+= mdio-xpcs.o
> 
>  obj-$(CONFIG_NETWORK_PHY_TIMESTAMPING) += mii_timestamper.o
> @@ -54,54 +34,7 @@ obj-$(CONFIG_NETWORK_PHY_TIMESTAMPING) +=
> mii_timestamper.o
>  obj-$(CONFIG_SFP)		+= sfp.o
>  sfp-obj-$(CONFIG_SFP)		+= sfp-bus.o
>  obj-y				+= $(sfp-obj-y) $(sfp-obj-m)
> +obj-$(CONFIG_MDIO_I2C)		+= mdio-i2c.o
> 
> -obj-$(CONFIG_ADIN_PHY)		+= adin.o
> -obj-$(CONFIG_AMD_PHY)		+= amd.o
> -aquantia-objs			+= aquantia_main.o
> -ifdef CONFIG_HWMON
> -aquantia-objs			+= aquantia_hwmon.o
> -endif
> -obj-$(CONFIG_AQUANTIA_PHY)	+= aquantia.o
> -obj-$(CONFIG_AX88796B_PHY)	+= ax88796b.o
> -obj-$(CONFIG_AT803X_PHY)	+= at803x.o
> -obj-$(CONFIG_BCM63XX_PHY)	+= bcm63xx.o
> -obj-$(CONFIG_BCM7XXX_PHY)	+= bcm7xxx.o
> -obj-$(CONFIG_BCM87XX_PHY)	+= bcm87xx.o
> -obj-$(CONFIG_BCM_CYGNUS_PHY)	+= bcm-cygnus.o
> -obj-$(CONFIG_BCM_NET_PHYLIB)	+= bcm-phy-lib.o
> -obj-$(CONFIG_BROADCOM_PHY)	+= broadcom.o
> -obj-$(CONFIG_BCM54140_PHY)	+= bcm54140.o
> -obj-$(CONFIG_BCM84881_PHY)	+= bcm84881.o
> -obj-$(CONFIG_CICADA_PHY)	+= cicada.o
> -obj-$(CONFIG_CORTINA_PHY)	+= cortina.o
> -obj-$(CONFIG_DAVICOM_PHY)	+= davicom.o
> -obj-$(CONFIG_DP83640_PHY)	+= dp83640.o
> -obj-$(CONFIG_DP83822_PHY)	+= dp83822.o
> -obj-$(CONFIG_DP83TC811_PHY)	+= dp83tc811.o
> -obj-$(CONFIG_DP83848_PHY)	+= dp83848.o
> -obj-$(CONFIG_DP83867_PHY)	+= dp83867.o
> -obj-$(CONFIG_DP83869_PHY)	+= dp83869.o
> -obj-$(CONFIG_FIXED_PHY)		+= fixed_phy.o
> -obj-$(CONFIG_ICPLUS_PHY)	+= icplus.o
> -obj-$(CONFIG_INTEL_XWAY_PHY)	+= intel-xway.o
> -obj-$(CONFIG_LSI_ET1011C_PHY)	+= et1011c.o
> -obj-$(CONFIG_LXT_PHY)		+= lxt.o
> -obj-$(CONFIG_MARVELL_PHY)	+= marvell.o
> -obj-$(CONFIG_MARVELL_10G_PHY)	+= marvell10g.o
> -obj-$(CONFIG_MESON_GXL_PHY)	+= meson-gxl.o
>  obj-$(CONFIG_MICREL_KS8995MA)	+= spi_ks8995.o
> -obj-$(CONFIG_MICREL_PHY)	+= micrel.o
> -obj-$(CONFIG_MICROCHIP_PHY)	+= microchip.o
> -obj-$(CONFIG_MICROCHIP_T1_PHY)	+= microchip_t1.o
> -obj-$(CONFIG_MICROSEMI_PHY)	+= mscc/
> -obj-$(CONFIG_NATIONAL_PHY)	+= national.o
> -obj-$(CONFIG_NXP_TJA11XX_PHY)	+= nxp-tja11xx.o
> -obj-$(CONFIG_QSEMI_PHY)		+= qsemi.o
> -obj-$(CONFIG_REALTEK_PHY)	+= realtek.o
> -obj-$(CONFIG_RENESAS_PHY)	+= uPD60620.o
> -obj-$(CONFIG_ROCKCHIP_PHY)	+= rockchip.o
> -obj-$(CONFIG_SMSC_PHY)		+= smsc.o
> -obj-$(CONFIG_STE10XP)		+= ste10Xp.o
> -obj-$(CONFIG_TERANETICS_PHY)	+= teranetics.o
> -obj-$(CONFIG_VITESSE_PHY)	+= vitesse.o
> -obj-$(CONFIG_XILINX_GMII2RGMII) += xilinx_gmii2rgmii.o
> +
> diff --git a/drivers/net/phy/mdio/Kconfig b/drivers/net/phy/mdio/Kconfig
> new file mode 100644
> index 000000000000..f5ea07b84d65
> --- /dev/null
> +++ b/drivers/net/phy/mdio/Kconfig
> @@ -0,0 +1,226 @@
> +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_DEVRES
> +	tristate
> +
> +comment "MDIO Multiplexor drivers"
> +
> +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_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_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_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_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.
> +
> +comment "MDIO Bus drivers"
> +
> +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_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.
> +
> +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_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_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_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_MVUSB
> +	tristate "Marvell USB to MDIO Adapter"
> +	depends on USB
> +	help
> +	  A USB to MDIO converter present on development boards for
> +	  Marvell's Link Street family of Ethernet switches.
> +
> +config MDIO_MSCC_MIIM
> +	tristate "Microsemi MIIM interface support"
> +	depends on HAS_IOMEM
> +	select MDIO_DEVRES
> +	help
> +	  This driver supports the MIIM (MDIO) interface found in the
> network
> +	  switches of the Microsemi SoCs; it is recommended to switch on
> +	  CONFIG_HIGH_RES_TIMERS
> +
> +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_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_IPQ4019
> +	tristate "Qualcomm IPQ4019 MDIO interface support"
> +	depends on HAS_IOMEM && OF_MDIO
> +	help
> +	  This driver supports the MDIO interface found in Qualcomm
> +	  IPQ40xx series Soc-s.
> +
> +config MDIO_IPQ8064
> +	tristate "Qualcomm IPQ8064 MDIO interface support"
> +	depends on HAS_IOMEM && OF_MDIO
> +	depends on MFD_SYSCON
> +	help
> +	  This driver supports the MDIO interface found in the network
> +	  interface units of the IPQ8064 SoC
> +
> +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.
> +
> +endif
> +endif
> diff --git a/drivers/net/phy/mdio/Makefile b/drivers/net/phy/mdio/Makefile
> new file mode 100644
> index 000000000000..9f52aca3bc60
> --- /dev/null
> +++ b/drivers/net/phy/mdio/Makefile
> @@ -0,0 +1,26 @@
> +# SPDX-License-Identifier: GPL-2.0
> +# Makefile for Linux MDIO bus drivers
> +
> +obj-$(CONFIG_MDIO_BUS_MUX)		+= mdio-mux.o
> +obj-$(CONFIG_MDIO_BUS_MUX_BCM_IPROC)	+= mdio-mux-bcm-iproc.o
> +obj-$(CONFIG_MDIO_BUS_MUX_GPIO)		+= mdio-mux-gpio.o
> +obj-$(CONFIG_MDIO_BUS_MUX_MESON_G12A)	+= mdio-mux-meson-g12a.o
> +obj-$(CONFIG_MDIO_BUS_MUX_MMIOREG) 	+= mdio-mux-mmioreg.o
> +obj-$(CONFIG_MDIO_BUS_MUX_MULTIPLEXER) 	+= mdio-mux-multiplexer.o
> +
> +obj-$(CONFIG_MDIO_ASPEED)		+= mdio-aspeed.o
> +obj-$(CONFIG_MDIO_BCM_IPROC)		+= mdio-bcm-iproc.o
> +obj-$(CONFIG_MDIO_BCM_UNIMAC)		+= mdio-bcm-unimac.o
> +obj-$(CONFIG_MDIO_BITBANG)		+= mdio-bitbang.o
> +obj-$(CONFIG_MDIO_CAVIUM)		+= mdio-cavium.o
> +obj-$(CONFIG_MDIO_GPIO)			+= mdio-gpio.o
> +obj-$(CONFIG_MDIO_HISI_FEMAC)		+= mdio-hisi-femac.o
> +obj-$(CONFIG_MDIO_IPQ4019)		+= mdio-ipq4019.o
> +obj-$(CONFIG_MDIO_IPQ8064)		+= mdio-ipq8064.o
> +obj-$(CONFIG_MDIO_MOXART)		+= mdio-moxart.o
> +obj-$(CONFIG_MDIO_MSCC_MIIM)		+= mdio-mscc-miim.o
> +obj-$(CONFIG_MDIO_MVUSB)		+= mdio-mvusb.o
> +obj-$(CONFIG_MDIO_OCTEON)		+= mdio-octeon.o
> +obj-$(CONFIG_MDIO_SUN4I)		+= mdio-sun4i.o
> +obj-$(CONFIG_MDIO_THUNDER)		+= mdio-thunder.o
> +obj-$(CONFIG_MDIO_XGENE)		+= mdio-xgene.o
> diff --git a/drivers/net/phy/mdio-aspeed.c b/drivers/net/phy/mdio/mdio-
> aspeed.c
> similarity index 100%
> rename from drivers/net/phy/mdio-aspeed.c
> rename to drivers/net/phy/mdio/mdio-aspeed.c
> diff --git a/drivers/net/phy/mdio-bcm-iproc.c b/drivers/net/phy/mdio/mdio-
> bcm-iproc.c
> similarity index 100%
> rename from drivers/net/phy/mdio-bcm-iproc.c
> rename to drivers/net/phy/mdio/mdio-bcm-iproc.c
> diff --git a/drivers/net/phy/mdio-bcm-unimac.c
> b/drivers/net/phy/mdio/mdio-bcm-unimac.c
> similarity index 100%
> rename from drivers/net/phy/mdio-bcm-unimac.c
> rename to drivers/net/phy/mdio/mdio-bcm-unimac.c
> diff --git a/drivers/net/phy/mdio-bitbang.c b/drivers/net/phy/mdio/mdio-
> bitbang.c
> similarity index 100%
> rename from drivers/net/phy/mdio-bitbang.c
> rename to drivers/net/phy/mdio/mdio-bitbang.c
> diff --git a/drivers/net/phy/mdio-cavium.c b/drivers/net/phy/mdio/mdio-
> cavium.c
> similarity index 100%
> rename from drivers/net/phy/mdio-cavium.c
> rename to drivers/net/phy/mdio/mdio-cavium.c
> diff --git a/drivers/net/phy/mdio-cavium.h b/drivers/net/phy/mdio/mdio-
> cavium.h
> similarity index 100%
> rename from drivers/net/phy/mdio-cavium.h
> rename to drivers/net/phy/mdio/mdio-cavium.h
> diff --git a/drivers/net/phy/mdio-gpio.c b/drivers/net/phy/mdio/mdio-
> gpio.c
> similarity index 100%
> rename from drivers/net/phy/mdio-gpio.c
> rename to drivers/net/phy/mdio/mdio-gpio.c
> diff --git a/drivers/net/phy/mdio-hisi-femac.c
> b/drivers/net/phy/mdio/mdio-hisi-femac.c
> similarity index 100%
> rename from drivers/net/phy/mdio-hisi-femac.c
> rename to drivers/net/phy/mdio/mdio-hisi-femac.c
> diff --git a/drivers/net/phy/mdio-ipq4019.c b/drivers/net/phy/mdio/mdio-
> ipq4019.c
> similarity index 100%
> rename from drivers/net/phy/mdio-ipq4019.c
> rename to drivers/net/phy/mdio/mdio-ipq4019.c
> diff --git a/drivers/net/phy/mdio-ipq8064.c b/drivers/net/phy/mdio/mdio-
> ipq8064.c
> similarity index 100%
> rename from drivers/net/phy/mdio-ipq8064.c
> rename to drivers/net/phy/mdio/mdio-ipq8064.c
> diff --git a/drivers/net/phy/mdio-moxart.c b/drivers/net/phy/mdio/mdio-
> moxart.c
> similarity index 100%
> rename from drivers/net/phy/mdio-moxart.c
> rename to drivers/net/phy/mdio/mdio-moxart.c
> diff --git a/drivers/net/phy/mdio-mscc-miim.c b/drivers/net/phy/mdio/mdio-
> mscc-miim.c
> similarity index 100%
> rename from drivers/net/phy/mdio-mscc-miim.c
> rename to drivers/net/phy/mdio/mdio-mscc-miim.c
> diff --git a/drivers/net/phy/mdio-mux-bcm-iproc.c
> b/drivers/net/phy/mdio/mdio-mux-bcm-iproc.c
> similarity index 100%
> rename from drivers/net/phy/mdio-mux-bcm-iproc.c
> rename to drivers/net/phy/mdio/mdio-mux-bcm-iproc.c
> diff --git a/drivers/net/phy/mdio-mux-gpio.c b/drivers/net/phy/mdio/mdio-
> mux-gpio.c
> similarity index 100%
> rename from drivers/net/phy/mdio-mux-gpio.c
> rename to drivers/net/phy/mdio/mdio-mux-gpio.c
> diff --git a/drivers/net/phy/mdio-mux-meson-g12a.c
> b/drivers/net/phy/mdio/mdio-mux-meson-g12a.c
> similarity index 100%
> rename from drivers/net/phy/mdio-mux-meson-g12a.c
> rename to drivers/net/phy/mdio/mdio-mux-meson-g12a.c
> diff --git a/drivers/net/phy/mdio-mux-mmioreg.c
> b/drivers/net/phy/mdio/mdio-mux-mmioreg.c
> similarity index 100%
> rename from drivers/net/phy/mdio-mux-mmioreg.c
> rename to drivers/net/phy/mdio/mdio-mux-mmioreg.c
> diff --git a/drivers/net/phy/mdio-mux-multiplexer.c
> b/drivers/net/phy/mdio/mdio-mux-multiplexer.c
> similarity index 100%
> rename from drivers/net/phy/mdio-mux-multiplexer.c
> rename to drivers/net/phy/mdio/mdio-mux-multiplexer.c
> diff --git a/drivers/net/phy/mdio-mux.c b/drivers/net/phy/mdio/mdio-mux.c
> similarity index 100%
> rename from drivers/net/phy/mdio-mux.c
> rename to drivers/net/phy/mdio/mdio-mux.c
> diff --git a/drivers/net/phy/mdio-mvusb.c b/drivers/net/phy/mdio/mdio-
> mvusb.c
> similarity index 100%
> rename from drivers/net/phy/mdio-mvusb.c
> rename to drivers/net/phy/mdio/mdio-mvusb.c
> diff --git a/drivers/net/phy/mdio-octeon.c b/drivers/net/phy/mdio/mdio-
> octeon.c
> similarity index 100%
> rename from drivers/net/phy/mdio-octeon.c
> rename to drivers/net/phy/mdio/mdio-octeon.c
> diff --git a/drivers/net/phy/mdio-sun4i.c b/drivers/net/phy/mdio/mdio-
> sun4i.c
> similarity index 100%
> rename from drivers/net/phy/mdio-sun4i.c
> rename to drivers/net/phy/mdio/mdio-sun4i.c
> diff --git a/drivers/net/phy/mdio-thunder.c b/drivers/net/phy/mdio/mdio-
> thunder.c
> similarity index 100%
> rename from drivers/net/phy/mdio-thunder.c
> rename to drivers/net/phy/mdio/mdio-thunder.c
> diff --git a/drivers/net/phy/mdio-xgene.c b/drivers/net/phy/mdio/mdio-
> xgene.c
> similarity index 100%
> rename from drivers/net/phy/mdio-xgene.c
> rename to drivers/net/phy/mdio/mdio-xgene.c
> diff --git a/drivers/net/phy/phy/Kconfig b/drivers/net/phy/phy/Kconfig
> new file mode 100644
> index 000000000000..51c01e51be34
> --- /dev/null
> +++ b/drivers/net/phy/phy/Kconfig
> @@ -0,0 +1,243 @@
> +config AMD_PHY
> +	tristate "AMD PHYs"
> +	help
> +	  Currently supports the am79c874
> +
> +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 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 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 BCM_NET_PHYLIB
> +	tristate
> +
> +config BCM54140_PHY
> +	tristate "Broadcom BCM54140 PHY"
> +	depends on PHYLIB
> +	depends on HWMON || HWMON=n
> +	select BCM_NET_PHYLIB
> +	help
> +	  Support the Broadcom BCM54140 Quad SGMII/QSGMII PHY.
> +
> +	  This driver also supports the hardware monitoring of this PHY and
> +	  exposes voltage and temperature sensors.
> +
> +config BROADCOM_PHY
> +	tristate "Broadcom BCM5xxx PHYs"
> +	select BCM_NET_PHYLIB
> +	help
> +	  Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S,
> BCM5464,
> +	  BCM5481, BCM54810 and BCM5482 PHYs.
> +
> +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 BCM84881_PHY
> +	tristate "Broadcom BCM84881 PHY"
> +	depends on PHYLIB
> +	help
> +	  Support the Broadcom BCM84881 PHY.
> +
> +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 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 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 LXT_PHY
> +	tristate "Intel LXT PHYs"
> +	help
> +	  Currently supports the lxt970, lxt971
> +
> +config LSI_ET1011C_PHY
> +	tristate "LSI ET1011C PHY"
> +	help
> +	  Supports the LSI ET1011C PHY.
> +
> +config MARVELL_PHY
> +	tristate "Marvell Alaska 1Gbit 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 MICREL_PHY
> +	tristate "Micrel PHYs"
> +	help
> +	  Supports the KSZ9021, VSC8201, KS8001 PHYs.
> +
> +config MICROCHIP_PHY
> +	tristate "Microchip LAN88XX PHYs"
> +	help
> +	  Supports the LAN88XX PHYs.
> +
> +config MICROCHIP_T1_PHY
> +	tristate "Microchip LAN87xx T1 PHYs"
> +	help
> +	  Supports the LAN87XX PHYs.
> +
> +config MICROSEMI_PHY
> +	tristate "Microsemi PHYs"
> +	depends on MACSEC || MACSEC=n
> +	select CRYPTO_LIB_AES if MACSEC
> +	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 "Renesas PHYs"
> +	help
> +	  Supports the Renesas PHYs uPD60620 and uPD60620A.
> +
> +config ROCKCHIP_PHY
> +	tristate "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 DP83822_PHY
> +	tristate "Texas Instruments DP83822/825/826 PHYs"
> +	help
> +	  Supports the DP83822, DP83825I, DP83825CM, DP83825CS, DP83825S,
> +	  DP83826C and DP83826NC PHYs.
> +
> +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 DP83TC811_PHY
> +	tristate "Texas Instruments DP83TC811 PHY"
> +	help
> +	  Supports the DP83TC811 PHY.
> +
> +config VITESSE_PHY
> +	tristate "Vitesse PHYs"
> +	help
> +	  Currently supports the vsc8244
> diff --git a/drivers/net/phy/phy/Makefile b/drivers/net/phy/phy/Makefile
> new file mode 100644
> index 000000000000..f0c2b82c03ac
> --- /dev/null
> +++ b/drivers/net/phy/phy/Makefile
> @@ -0,0 +1,50 @@
> +# SPDX-License-Identifier: GPL-2.0
> +# Makefile for Linux PHY drivers
> +
> +obj-$(CONFIG_ADIN_PHY)		+= adin.o
> +obj-$(CONFIG_AMD_PHY)		+= amd.o
> +aquantia-objs			+= aquantia_main.o
> +ifdef CONFIG_HWMON
> +aquantia-objs			+= aquantia_hwmon.o
> +endif
> +obj-$(CONFIG_AQUANTIA_PHY)	+= aquantia.o
> +obj-$(CONFIG_AT803X_PHY)	+= at803x.o
> +obj-$(CONFIG_AX88796B_PHY)	+= ax88796b.o
> +obj-$(CONFIG_BCM54140_PHY)	+= bcm54140.o
> +obj-$(CONFIG_BCM63XX_PHY)	+= bcm63xx.o
> +obj-$(CONFIG_BCM7XXX_PHY)	+= bcm7xxx.o
> +obj-$(CONFIG_BCM84881_PHY)	+= bcm84881.o
> +obj-$(CONFIG_BCM87XX_PHY)	+= bcm87xx.o
> +obj-$(CONFIG_BCM_CYGNUS_PHY)	+= bcm-cygnus.o
> +obj-$(CONFIG_BCM_NET_PHYLIB)	+= bcm-phy-lib.o
> +obj-$(CONFIG_BROADCOM_PHY)	+= broadcom.o
> +obj-$(CONFIG_CICADA_PHY)	+= cicada.o
> +obj-$(CONFIG_CORTINA_PHY)	+= cortina.o
> +obj-$(CONFIG_DAVICOM_PHY)	+= davicom.o
> +obj-$(CONFIG_DP83640_PHY)	+= dp83640.o
> +obj-$(CONFIG_DP83822_PHY)	+= dp83822.o
> +obj-$(CONFIG_DP83848_PHY)	+= dp83848.o
> +obj-$(CONFIG_DP83867_PHY)	+= dp83867.o
> +obj-$(CONFIG_DP83869_PHY)	+= dp83869.o
> +obj-$(CONFIG_DP83TC811_PHY)	+= dp83tc811.o
> +obj-$(CONFIG_ICPLUS_PHY)	+= icplus.o
> +obj-$(CONFIG_INTEL_XWAY_PHY)	+= intel-xway.o
> +obj-$(CONFIG_LSI_ET1011C_PHY)	+= et1011c.o
> +obj-$(CONFIG_LXT_PHY)		+= lxt.o
> +obj-$(CONFIG_MARVELL_10G_PHY)	+= marvell10g.o
> +obj-$(CONFIG_MARVELL_PHY)	+= marvell.o
> +obj-$(CONFIG_MESON_GXL_PHY)	+= meson-gxl.o
> +obj-$(CONFIG_MICREL_PHY)	+= micrel.o
> +obj-$(CONFIG_MICROCHIP_PHY)	+= microchip.o
> +obj-$(CONFIG_MICROCHIP_T1_PHY)	+= microchip_t1.o
> +obj-$(CONFIG_MICROSEMI_PHY)	+= mscc/
> +obj-$(CONFIG_NATIONAL_PHY)	+= national.o
> +obj-$(CONFIG_NXP_TJA11XX_PHY)	+= nxp-tja11xx.o
> +obj-$(CONFIG_QSEMI_PHY)		+= qsemi.o
> +obj-$(CONFIG_REALTEK_PHY)	+= realtek.o
> +obj-$(CONFIG_RENESAS_PHY)	+= uPD60620.o
> +obj-$(CONFIG_ROCKCHIP_PHY)	+= rockchip.o
> +obj-$(CONFIG_SMSC_PHY)		+= smsc.o
> +obj-$(CONFIG_STE10XP)		+= ste10Xp.o
> +obj-$(CONFIG_TERANETICS_PHY)	+= teranetics.o
> +obj-$(CONFIG_VITESSE_PHY)	+= vitesse.o
> diff --git a/drivers/net/phy/adin.c b/drivers/net/phy/phy/adin.c
> similarity index 100%
> rename from drivers/net/phy/adin.c
> rename to drivers/net/phy/phy/adin.c
> diff --git a/drivers/net/phy/amd.c b/drivers/net/phy/phy/amd.c
> similarity index 100%
> rename from drivers/net/phy/amd.c
> rename to drivers/net/phy/phy/amd.c
> diff --git a/drivers/net/phy/aquantia.h b/drivers/net/phy/phy/aquantia.h
> similarity index 100%
> rename from drivers/net/phy/aquantia.h
> rename to drivers/net/phy/phy/aquantia.h
> diff --git a/drivers/net/phy/aquantia_hwmon.c
> b/drivers/net/phy/phy/aquantia_hwmon.c
> similarity index 100%
> rename from drivers/net/phy/aquantia_hwmon.c
> rename to drivers/net/phy/phy/aquantia_hwmon.c
> diff --git a/drivers/net/phy/aquantia_main.c
> b/drivers/net/phy/phy/aquantia_main.c
> similarity index 100%
> rename from drivers/net/phy/aquantia_main.c
> rename to drivers/net/phy/phy/aquantia_main.c
> diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/phy/at803x.c
> similarity index 100%
> rename from drivers/net/phy/at803x.c
> rename to drivers/net/phy/phy/at803x.c
> diff --git a/drivers/net/phy/ax88796b.c b/drivers/net/phy/phy/ax88796b.c
> similarity index 100%
> rename from drivers/net/phy/ax88796b.c
> rename to drivers/net/phy/phy/ax88796b.c
> diff --git a/drivers/net/phy/bcm-cygnus.c b/drivers/net/phy/phy/bcm-
> cygnus.c
> similarity index 100%
> rename from drivers/net/phy/bcm-cygnus.c
> rename to drivers/net/phy/phy/bcm-cygnus.c
> diff --git a/drivers/net/phy/bcm-phy-lib.c b/drivers/net/phy/phy/bcm-phy-
> lib.c
> similarity index 100%
> rename from drivers/net/phy/bcm-phy-lib.c
> rename to drivers/net/phy/phy/bcm-phy-lib.c
> diff --git a/drivers/net/phy/bcm-phy-lib.h b/drivers/net/phy/phy/bcm-phy-
> lib.h
> similarity index 100%
> rename from drivers/net/phy/bcm-phy-lib.h
> rename to drivers/net/phy/phy/bcm-phy-lib.h
> diff --git a/drivers/net/phy/bcm54140.c b/drivers/net/phy/phy/bcm54140.c
> similarity index 100%
> rename from drivers/net/phy/bcm54140.c
> rename to drivers/net/phy/phy/bcm54140.c
> diff --git a/drivers/net/phy/bcm63xx.c b/drivers/net/phy/phy/bcm63xx.c
> similarity index 100%
> rename from drivers/net/phy/bcm63xx.c
> rename to drivers/net/phy/phy/bcm63xx.c
> diff --git a/drivers/net/phy/bcm7xxx.c b/drivers/net/phy/phy/bcm7xxx.c
> similarity index 100%
> rename from drivers/net/phy/bcm7xxx.c
> rename to drivers/net/phy/phy/bcm7xxx.c
> diff --git a/drivers/net/phy/bcm84881.c b/drivers/net/phy/phy/bcm84881.c
> similarity index 100%
> rename from drivers/net/phy/bcm84881.c
> rename to drivers/net/phy/phy/bcm84881.c
> diff --git a/drivers/net/phy/bcm87xx.c b/drivers/net/phy/phy/bcm87xx.c
> similarity index 100%
> rename from drivers/net/phy/bcm87xx.c
> rename to drivers/net/phy/phy/bcm87xx.c
> diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/phy/broadcom.c
> similarity index 100%
> rename from drivers/net/phy/broadcom.c
> rename to drivers/net/phy/phy/broadcom.c
> diff --git a/drivers/net/phy/cicada.c b/drivers/net/phy/phy/cicada.c
> similarity index 100%
> rename from drivers/net/phy/cicada.c
> rename to drivers/net/phy/phy/cicada.c
> diff --git a/drivers/net/phy/cortina.c b/drivers/net/phy/phy/cortina.c
> similarity index 100%
> rename from drivers/net/phy/cortina.c
> rename to drivers/net/phy/phy/cortina.c
> diff --git a/drivers/net/phy/davicom.c b/drivers/net/phy/phy/davicom.c
> similarity index 100%
> rename from drivers/net/phy/davicom.c
> rename to drivers/net/phy/phy/davicom.c
> diff --git a/drivers/net/phy/dp83640.c b/drivers/net/phy/phy/dp83640.c
> similarity index 100%
> rename from drivers/net/phy/dp83640.c
> rename to drivers/net/phy/phy/dp83640.c
> diff --git a/drivers/net/phy/dp83640_reg.h
> b/drivers/net/phy/phy/dp83640_reg.h
> similarity index 100%
> rename from drivers/net/phy/dp83640_reg.h
> rename to drivers/net/phy/phy/dp83640_reg.h
> diff --git a/drivers/net/phy/dp83822.c b/drivers/net/phy/phy/dp83822.c
> similarity index 100%
> rename from drivers/net/phy/dp83822.c
> rename to drivers/net/phy/phy/dp83822.c
> diff --git a/drivers/net/phy/dp83848.c b/drivers/net/phy/phy/dp83848.c
> similarity index 100%
> rename from drivers/net/phy/dp83848.c
> rename to drivers/net/phy/phy/dp83848.c
> diff --git a/drivers/net/phy/dp83867.c b/drivers/net/phy/phy/dp83867.c
> similarity index 100%
> rename from drivers/net/phy/dp83867.c
> rename to drivers/net/phy/phy/dp83867.c
> diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/phy/dp83869.c
> similarity index 100%
> rename from drivers/net/phy/dp83869.c
> rename to drivers/net/phy/phy/dp83869.c
> diff --git a/drivers/net/phy/dp83tc811.c b/drivers/net/phy/phy/dp83tc811.c
> similarity index 100%
> rename from drivers/net/phy/dp83tc811.c
> rename to drivers/net/phy/phy/dp83tc811.c
> diff --git a/drivers/net/phy/et1011c.c b/drivers/net/phy/phy/et1011c.c
> similarity index 100%
> rename from drivers/net/phy/et1011c.c
> rename to drivers/net/phy/phy/et1011c.c
> diff --git a/drivers/net/phy/icplus.c b/drivers/net/phy/phy/icplus.c
> similarity index 100%
> rename from drivers/net/phy/icplus.c
> rename to drivers/net/phy/phy/icplus.c
> diff --git a/drivers/net/phy/intel-xway.c b/drivers/net/phy/phy/intel-
> xway.c
> similarity index 100%
> rename from drivers/net/phy/intel-xway.c
> rename to drivers/net/phy/phy/intel-xway.c
> diff --git a/drivers/net/phy/lxt.c b/drivers/net/phy/phy/lxt.c
> similarity index 100%
> rename from drivers/net/phy/lxt.c
> rename to drivers/net/phy/phy/lxt.c
> diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/phy/marvell.c
> similarity index 100%
> rename from drivers/net/phy/marvell.c
> rename to drivers/net/phy/phy/marvell.c
> diff --git a/drivers/net/phy/marvell10g.c
> b/drivers/net/phy/phy/marvell10g.c
> similarity index 100%
> rename from drivers/net/phy/marvell10g.c
> rename to drivers/net/phy/phy/marvell10g.c
> diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/phy/meson-gxl.c
> similarity index 100%
> rename from drivers/net/phy/meson-gxl.c
> rename to drivers/net/phy/phy/meson-gxl.c
> diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/phy/micrel.c
> similarity index 100%
> rename from drivers/net/phy/micrel.c
> rename to drivers/net/phy/phy/micrel.c
> diff --git a/drivers/net/phy/microchip.c b/drivers/net/phy/phy/microchip.c
> similarity index 100%
> rename from drivers/net/phy/microchip.c
> rename to drivers/net/phy/phy/microchip.c
> diff --git a/drivers/net/phy/microchip_t1.c
> b/drivers/net/phy/phy/microchip_t1.c
> similarity index 100%
> rename from drivers/net/phy/microchip_t1.c
> rename to drivers/net/phy/phy/microchip_t1.c
> diff --git a/drivers/net/phy/mscc/Makefile
> b/drivers/net/phy/phy/mscc/Makefile
> similarity index 100%
> rename from drivers/net/phy/mscc/Makefile
> rename to drivers/net/phy/phy/mscc/Makefile
> diff --git a/drivers/net/phy/mscc/mscc.h b/drivers/net/phy/phy/mscc/mscc.h
> similarity index 100%
> rename from drivers/net/phy/mscc/mscc.h
> rename to drivers/net/phy/phy/mscc/mscc.h
> diff --git a/drivers/net/phy/mscc/mscc_fc_buffer.h
> b/drivers/net/phy/phy/mscc/mscc_fc_buffer.h
> similarity index 100%
> rename from drivers/net/phy/mscc/mscc_fc_buffer.h
> rename to drivers/net/phy/phy/mscc/mscc_fc_buffer.h
> diff --git a/drivers/net/phy/mscc/mscc_mac.h
> b/drivers/net/phy/phy/mscc/mscc_mac.h
> similarity index 100%
> rename from drivers/net/phy/mscc/mscc_mac.h
> rename to drivers/net/phy/phy/mscc/mscc_mac.h
> diff --git a/drivers/net/phy/mscc/mscc_macsec.c
> b/drivers/net/phy/phy/mscc/mscc_macsec.c
> similarity index 100%
> rename from drivers/net/phy/mscc/mscc_macsec.c
> rename to drivers/net/phy/phy/mscc/mscc_macsec.c
> diff --git a/drivers/net/phy/mscc/mscc_macsec.h
> b/drivers/net/phy/phy/mscc/mscc_macsec.h
> similarity index 100%
> rename from drivers/net/phy/mscc/mscc_macsec.h
> rename to drivers/net/phy/phy/mscc/mscc_macsec.h
> diff --git a/drivers/net/phy/mscc/mscc_main.c
> b/drivers/net/phy/phy/mscc/mscc_main.c
> similarity index 100%
> rename from drivers/net/phy/mscc/mscc_main.c
> rename to drivers/net/phy/phy/mscc/mscc_main.c
> diff --git a/drivers/net/phy/national.c b/drivers/net/phy/phy/national.c
> similarity index 100%
> rename from drivers/net/phy/national.c
> rename to drivers/net/phy/phy/national.c
> diff --git a/drivers/net/phy/nxp-tja11xx.c b/drivers/net/phy/phy/nxp-
> tja11xx.c
> similarity index 100%
> rename from drivers/net/phy/nxp-tja11xx.c
> rename to drivers/net/phy/phy/nxp-tja11xx.c
> diff --git a/drivers/net/phy/qsemi.c b/drivers/net/phy/phy/qsemi.c
> similarity index 100%
> rename from drivers/net/phy/qsemi.c
> rename to drivers/net/phy/phy/qsemi.c
> diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/phy/realtek.c
> similarity index 100%
> rename from drivers/net/phy/realtek.c
> rename to drivers/net/phy/phy/realtek.c
> diff --git a/drivers/net/phy/rockchip.c b/drivers/net/phy/phy/rockchip.c
> similarity index 100%
> rename from drivers/net/phy/rockchip.c
> rename to drivers/net/phy/phy/rockchip.c
> diff --git a/drivers/net/phy/smsc.c b/drivers/net/phy/phy/smsc.c
> similarity index 100%
> rename from drivers/net/phy/smsc.c
> rename to drivers/net/phy/phy/smsc.c
> diff --git a/drivers/net/phy/ste10Xp.c b/drivers/net/phy/phy/ste10Xp.c
> similarity index 100%
> rename from drivers/net/phy/ste10Xp.c
> rename to drivers/net/phy/phy/ste10Xp.c
> diff --git a/drivers/net/phy/teranetics.c
> b/drivers/net/phy/phy/teranetics.c
> similarity index 100%
> rename from drivers/net/phy/teranetics.c
> rename to drivers/net/phy/phy/teranetics.c
> diff --git a/drivers/net/phy/uPD60620.c b/drivers/net/phy/phy/uPD60620.c
> similarity index 100%
> rename from drivers/net/phy/uPD60620.c
> rename to drivers/net/phy/phy/uPD60620.c
> diff --git a/drivers/net/phy/vitesse.c b/drivers/net/phy/phy/vitesse.c
> similarity index 100%
> rename from drivers/net/phy/vitesse.c
> rename to drivers/net/phy/phy/vitesse.c
> --
> 2.28.0.rc0

Powered by blists - more mailing lists