Thread (10 messages) flat view 10 messages, 4 authors, 2025-09-03

Re: [PATCH] ARM: dts: imx6ul-tx6ul: Switch away from deprecated `phy-reset-gpios`

From: Csókás Bence <hidden>
Date: 2025-09-03 07:51:20
Also in: imx, linux-devicetree, lkml

Hi,

On 2025. 09. 03. 9:28, Ahmad Fatoum wrote:
Hello,

On 15.08.25 17:17, Bence Csókás wrote:
quoted
The Ethernet PHY's reset GPIO should be specified in the node of the PHY
itself, instead of the MAC (`fec`). The latter is deprecated, and was an
i.MX-specific extension, incompatible with the new reset controller
subsystem.
One reason to do it this way is that the PHY is in reset when the OS starts
and the external phy-reset-gpios allows MAC probe to get the PHY out of
reset, so it can be probed after reading its vendor/device IDs.

Does switching to this new binding address this scenario? If so, it should
be noted in the commit message.
Yes, but after it has been reset, if the platform supports Power 
Management, the PHY's clock will be turned off, which some PHYs (in our 
case the LAN8710) don't tolerate. This has been reported many times, 
just search LKML for "lan8710 reset".

So we want a more general solution [1] where the PHY subsystem resets 
them before enumerating. However, if the MAC driver claims the GPIO, 
then it can't be used by the PHY.

I will clarify the commit msg with this in mind.

[1] 
https://lore.kernel.org/lkml/20250709133222.48802-4-buday.csaba@prolan.hu/ (local)
quoted
Co-developed-by: Csaba Buday <redacted>
Signed-off-by: Csaba Buday <redacted>lan8710 reset
Signed-off-by: Bence Csókás <redacted>
---
  arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi | 8 +++++++-
  1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi
index f053358bc9317f8447d65013a18670cb470106b2..0a5e90704ea481b0716d6ff6bc6d2110914d4f31 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi
+++ b/arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi
@@ -246,7 +246,6 @@ &fec1 {
  	pinctrl-names = "default";
  	pinctrl-0 = <&pinctrl_enet1 &pinctrl_enet1_mdio &pinctrl_etnphy0_rst>;
  	phy-mode = "rmii";
-	phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_LOW>;
  	phy-supply = <&reg_3v3_etn>;
  	phy-handle = <&etnphy0>;
  	status = "okay";
@@ -262,6 +261,13 @@ etnphy0: ethernet-phy@0 {
  			pinctrl-0 = <&pinctrl_etnphy0_int>;
  			interrupt-parent = <&gpio5>;
  			interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+			/* Reset SHOULD be a PHY property */
Comment belongs into commit message.
Agreed.
quoted
+			reset-names = "phy";
+			reset-gpios = <&gpio5 6 GPIO_ACTIVE_LOW>;
+			reset-assert-us = <100>;
+			reset-deassert-us = <25000>;
+			/* Energy detect sometimes causes link failures */
+			smsc,disable-energy-detect;
Unrelated change not described in the commit message.
Oh, this has accidentally made it into here from our DT. Thanks for 
spotting it!
Cheers,
Ahmad
quoted
  			status = "okay";
  		};
  

---
base-commit: 0cc53520e68bea7fb80fdc6bdf8d226d1b6a98d9
change-id: 20250815-b4-tx6ul-dt-phy-rst-7afc190a6907

Best regards,
Bence

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help