Skip to content

Commit

Permalink
ARM: dts: imx6dl-yapp4: Move the internal switch PHYs under the switc…
Browse files Browse the repository at this point in the history
…h node

[ Upstream commit 79978bff2e4b8e05ebdf5fc3ee6b794002393484 ]

We identified that the PHYs actually do not work since commit 7da7b84
("ARM: dts: imx6dl-yapp4: Move phy reset into switch node") as
a coincidence of several circumstances.

The reset signal is kept asserted by a pull-down resistor on the board
unless it is deasserted by GPIO from the SoC. This is to keep the switch
dead until it is configured properly by the kernel and user space.

Prior to the referenced commit the switch was reset by the FEC driver
and the reset GPIO was actively deasserted. The mdio-bus was scanned
and the attached switch and its PHYs were found and configured.

With the referenced commit the switch is reset by the qca8k driver.
Because of another bug in the qca8k driver, functionality of the reset
pin depends on its pre-kernel configuration. See commit c44fc98
("net: dsa: qca8k: fix illegal usage of GPIO")

The problem did not appear until we removed support for the switch
and configuration of its reset pin from the bootloader.

To fix that, properly describe the internal mdio-bus configuration of
the qca8334 switch. The PHYs are internal to the switch and sit on its
internal mdio-bus.

Fixes: 7da7b84 ("ARM: dts: imx6dl-yapp4: Move phy reset into switch node")
Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
zandar authored and Sasha Levin committed Mar 26, 2024
1 parent 79870d6 commit f3f9dc3
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions arch/arm/boot/dts/nxp/imx/imx6dl-yapp4-common.dtsi
Expand Up @@ -117,14 +117,6 @@
#address-cells = <1>;
#size-cells = <0>;

phy_port2: phy@1 {
reg = <1>;
};

phy_port3: phy@2 {
reg = <2>;
};

switch@10 {
compatible = "qca,qca8334";
reg = <0x10>;
Expand All @@ -149,15 +141,30 @@
eth2: port@2 {
reg = <2>;
label = "eth2";
phy-mode = "internal";
phy-handle = <&phy_port2>;
};

eth1: port@3 {
reg = <3>;
label = "eth1";
phy-mode = "internal";
phy-handle = <&phy_port3>;
};
};

mdio {
#address-cells = <1>;
#size-cells = <0>;

phy_port2: ethernet-phy@1 {
reg = <1>;
};

phy_port3: ethernet-phy@2 {
reg = <2>;
};
};
};
};
};
Expand Down

0 comments on commit f3f9dc3

Please sign in to comment.