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>