Currently, the GPIO Reset Device Tree properties of the
PHY node are ignored when the PHY is probed via mdio-uclass driver [1].

To resolve this, for each child of the MDIO bus node, bind and probe
the generic Ethernet PHY driver if CONFIG_DM_ETH_PHY is enabled.

This should now show the generic_phy_driver in "dm tree"
and also apply the GPIO reset before the MDIO bus driver scans the bus
for the PHYs.

 ethernet      0  [ + ]   am65_cpsw_nuss_port       |   |-- 
ethernet@8000000port@1
 bootdev       3  [   ]   eth_bootdev               |   |   `-- port@1.bootdev
 mdio          0  [ + ]   cpsw_mdio                 |   `-- mdio@f00
 eth_phy_ge    0  [ + ]   eth_phy_generic_drv       |       |-- ethernet-phy@0
 eth_phy_ge    1  [ + ]   eth_phy_generic_drv       |       `-- ethernet-phy@1

To test this on Beagleplay, the following series is required

[1] Switch am65-cpsw to DM MDIO
 
https://lore.kernel.org/all/20240228-for-2024-07-am65-cpsw-mdio-v2-0-f74f972ea...@kernel.org/

The last 3 patches are marked [not-for-merge]. They are to show how the
whole solution can work to fix Ethernet on Beagleplay, which has been broken
so far. Those DT patches will be sent once the device tree changes are merged
into Linux tree.

Signed-off-by: Roger Quadros <rog...@kernel.org>
---
Roger Quadros (5):
      net: mdio-uclass: Bind and probe generic Ethernet PHY driver
      configs/am62x_beagleplay_a53_defconfig: enable DM_ETH_PHY
      [not-for-merge] arm: dts: k3-am62*: sync with linux-next-20240229
      [not-for-merge] k3-am625-beagleplay-u-boot: get CPSW Ethernet to work
      [not-for-merge] arm: dts: k3-am625-beagleplay: Fix Ethernet PHY reset GPIO

 arch/arm/dts/k3-am62-main.dtsi               | 126 ++++++++++++++---
 arch/arm/dts/k3-am62-mcu.dtsi                |   4 +-
 arch/arm/dts/k3-am62-phycore-som.dtsi        |   5 +-
 arch/arm/dts/k3-am62-thermal.dtsi            |   5 +-
 arch/arm/dts/k3-am62-verdin-dev.dtsi         |   4 +-
 arch/arm/dts/k3-am62-verdin-wifi.dtsi        |   1 -
 arch/arm/dts/k3-am62-verdin.dtsi             |  76 +++++++---
 arch/arm/dts/k3-am62-wakeup.dtsi             |  38 +++--
 arch/arm/dts/k3-am62.dtsi                    |   4 +-
 arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi |  63 +++++++++
 arch/arm/dts/k3-am625-beagleplay.dts         |  66 ++++-----
 arch/arm/dts/k3-am625-phyboard-lyra-rdk.dts  | 104 +++++++++++++-
 arch/arm/dts/k3-am625-sk.dts                 |   4 +-
 arch/arm/dts/k3-am625.dtsi                   |   4 +-
 arch/arm/dts/k3-am62a-main.dtsi              | 201 +++++++++++++++++++++++++--
 arch/arm/dts/k3-am62a-mcu.dtsi               |   4 +-
 arch/arm/dts/k3-am62a-thermal.dtsi           |   5 +-
 arch/arm/dts/k3-am62a-wakeup.dtsi            |   4 +-
 arch/arm/dts/k3-am62a.dtsi                   |   4 +-
 arch/arm/dts/k3-am62a7-sk.dts                | 162 ++++++++++++++++++++-
 arch/arm/dts/k3-am62a7.dtsi                  |   4 +-
 arch/arm/dts/k3-am62x-sk-common.dtsi         |  24 +++-
 configs/am62x_beagleplay_a53_defconfig       |   2 +-
 net/mdio-uclass.c                            |  41 ++++++
 24 files changed, 825 insertions(+), 130 deletions(-)
---
base-commit: 84f5bb0be0ec9fbf98f8f3317b578dfc114cf44e
change-id: 20240305-for-2024-07-beagleplay-eth-f82a51197937

Best regards,
-- 
Roger Quadros <rog...@kernel.org>

Reply via email to