]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: rockchip: fix Ethernet PHY not found on PX30 Cobra
authorQuentin Schulz <quentin.schulz@cherry.de>
Tue, 21 Apr 2026 09:45:05 +0000 (11:45 +0200)
committerHeiko Stuebner <heiko@sntech.de>
Mon, 27 Apr 2026 10:33:09 +0000 (12:33 +0200)
When not passing the PHY ID with an ethernet-phy-idX.Y compatible
property, the MDIO bus will attempt to auto-detect the PHY by reading
its registers and then probing the appropriate driver. For this to work,
the PHY needs to be in a working state.

Unfortunately, the net subsystem doesn't control the PHY reset GPIO when
attempting to auto-detect the PHY. This means the PHY needs to be in a
working state when entering the Linux kernel. This historically has been
the case for this device, but only because the bootloader was taking
care of initializing the Ethernet controller even when not using it.
We're attempting to support the removal of the network stack in the
bootloader, which means the Linux kernel will be entered with the PHY
still in reset and now Ethernet doesn't work anymore.

The devices in the field only ever had a TI DP83825, so let's simply
bypass the auto-detection mechanism entirely by passing the appropriate
PHY IDs via the compatible.

Fixes: bb510ddc9d3e ("arm64: dts: rockchip: add px30-cobra base dtsi and board variants")
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Link: https://patch.msgid.link/20260421-px30-eth-phy-v2-1-68c375b120fd@cherry.de
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/px30-cobra.dtsi

index b7e669d8ba4d1452b7cbe8e225fde6601a57cf0f..add917af5de783c8c1827e9965800270dd32a29d 100644 (file)
 
 &mdio {
        dp83825: ethernet-phy@0 {
-               compatible = "ethernet-phy-ieee802.3-c22";
+               compatible = "ethernet-phy-id2000.a140";
                reg = <0x0>;
                pinctrl-names = "default";
                pinctrl-0 = <&phy_rst>;