From: Shengyu Qu wiagn233@outlook.com
commit 623cef652768860bd5f205fb7b741be278585fba upstream.
This patch adds ethernet PHY reset GPIO config for Beaglebone Black series boards with revision C3. This fixes a random phy startup failure bug discussed at [1]. The GPIO pin used for reset is not used on older revisions, so it is ok to apply to all board revisions. The reset timing was discussed and tested at [2].
[1] https://forum.digikey.com/t/ethernet-device-is-not-detecting-on-ubuntu-20-04... [2] https://forum.beagleboard.org/t/recognizing-a-beaglebone-black-rev-c3-board/...
Signed-off-by: Robert Nelson robertcnelson@gmail.com Signed-off-by: Shengyu Qu wiagn233@outlook.com Message-ID: TY3P286MB26113797A3B2EC7E0348BBB2980FA@TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM Signed-off-by: Tony Lindgren tony@atomide.com Signed-off-by: Nobuhiro Iwamatsu (CIP) nobuhiro1.iwamatsu@toshiba.co.jp --- arch/arm/boot/dts/am335x-bone-common.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index 02e04a12a270..e2efc4256bcb 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -145,6 +145,8 @@ /* MDIO */ AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLUP | SLEWCTRL_FAST, MUX_MODE0) AM33XX_PADCONF(AM335X_PIN_MDC, PIN_OUTPUT_PULLUP, MUX_MODE0) + /* Added to support GPIO controlled PHY reset */ + AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_OUTPUT_PULLUP, MUX_MODE7) >; };
@@ -153,6 +155,8 @@ /* MDIO reset value */ AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLDOWN, MUX_MODE7) AM33XX_PADCONF(AM335X_PIN_MDC, PIN_INPUT_PULLDOWN, MUX_MODE7) + /* Added to support GPIO controlled PHY reset */ + AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_INPUT_PULLDOWN, MUX_MODE7) >; };
@@ -377,6 +381,10 @@
ethphy0: ethernet-phy@0 { reg = <0>; + /* Support GPIO reset on revision C3 boards */ + reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; + reset-assert-us = <300>; + reset-deassert-us = <6500>; }; };
From: Colin Foster colin.foster@in-advantage.com
commit b9bf5612610aa7e38d58fee16f489814db251c01 upstream.
Prior to commit df16c1c51d81 ("net: phy: mdio_device: Reset device only when necessary") MDIO reset deasserts were performed twice during boot. Now that the second deassert is no longer performed, device probe failures happen due to the change in timing with the following error message:
SMSC LAN8710/LAN8720: probe of 4a101000.mdio:00 failed with error -5
Restore the original effective timing, which resolves the probe failures.
Signed-off-by: Colin Foster colin.foster@in-advantage.com Link: https://lore.kernel.org/r/20240531183817.2698445-1-colin.foster@in-advantage... Signed-off-by: Kevin Hilman khilman@baylibre.com Signed-off-by: Nobuhiro Iwamatsu (CIP) nobuhiro1.iwamatsu@toshiba.co.jp --- arch/arm/boot/dts/am335x-bone-common.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index e2efc4256bcb..b58b8b76724b 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -384,7 +384,7 @@ /* Support GPIO reset on revision C3 boards */ reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; reset-assert-us = <300>; - reset-deassert-us = <6500>; + reset-deassert-us = <13000>; }; };
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected. No action required from the submitter.
The upstream commit SHA1 provided is correct: b9bf5612610aa7e38d58fee16f489814db251c01
WARNING: Author mismatch between patch and upstream commit: Backport author: Nobuhiro Iwamatsunobuhiro1.iwamatsu@toshiba.co.jp Commit author: Colin Fostercolin.foster@in-advantage.com
Status in newer kernel trees: 6.15.y | Present (exact SHA1) 6.12.y | Present (exact SHA1) 6.6.y | Not found 6.1.y | Not found 5.15.y | Not found 5.10.y | Not found
Note: The patch differs from the upstream commit: --- 1: b9bf5612610aa ! 1: 7fd9ee5fc5ba5 ARM: dts: am335x-bone-common: Increase MDIO reset deassert time @@ Metadata ## Commit message ## ARM: dts: am335x-bone-common: Increase MDIO reset deassert time
+ commit b9bf5612610aa7e38d58fee16f489814db251c01 upstream. + Prior to commit df16c1c51d81 ("net: phy: mdio_device: Reset device only when necessary") MDIO reset deasserts were performed twice during boot. Now that the second deassert is no longer performed, device probe @@ Commit message Signed-off-by: Colin Foster colin.foster@in-advantage.com Link: https://lore.kernel.org/r/20240531183817.2698445-1-colin.foster@in-advantage... Signed-off-by: Kevin Hilman khilman@baylibre.com + Signed-off-by: Nobuhiro Iwamatsu (CIP) nobuhiro1.iwamatsu@toshiba.co.jp
- ## arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi ## + ## arch/arm/boot/dts/am335x-bone-common.dtsi ## @@ /* Support GPIO reset on revision C3 boards */ reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; ---
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.10.y | Success | Success |
From: Geert Uytterhoeven geert+renesas@glider.be
commit 929d8490f8790164f5f63671c1c58d6c50411cb2 upstream.
Commit b9bf5612610aa7e3 ("ARM: dts: am335x-bone-common: Increase MDIO reset deassert time") already increased the MDIO reset deassert delay from 6.5 to 13 ms, but this may still cause Ethernet PHY probe failures:
SMSC LAN8710/LAN8720 4a101000.mdio:00: probe with driver SMSC LAN8710/LAN8720 failed with error -5
On BeagleBone Black Rev. C3, ETH_RESETn is controlled by an open-drain AND gate. It is pulled high by a 10K resistor, and has a 4.7µF capacitor to ground, giving an RC time constant of 47ms. As it takes 0.7RC to charge the capacitor above the threshold voltage of a CMOS input (VDD/2), the delay should be at least 33ms. Considering the typical tolerance of 20% on capacitors, 40ms would be safer. Add an additional safety margin and settle for 50ms.
Signed-off-by: Geert Uytterhoeven geert+renesas@glider.be Reviewed-by: Roger Quadros rogerq@kernel.org Link: https://lore.kernel.org/r/9002a58daa1b2983f39815b748ee9d2f8dcc4829.173036693... Signed-off-by: Kevin Hilman khilman@baylibre.com Signed-off-by: Nobuhiro Iwamatsu (CIP) nobuhiro1.iwamatsu@toshiba.co.jp --- arch/arm/boot/dts/am335x-bone-common.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index b58b8b76724b..bfd26ebd7b9e 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -384,7 +384,7 @@ /* Support GPIO reset on revision C3 boards */ reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; reset-assert-us = <300>; - reset-deassert-us = <13000>; + reset-deassert-us = <50000>; }; };
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected. No action required from the submitter.
The upstream commit SHA1 provided is correct: 929d8490f8790164f5f63671c1c58d6c50411cb2
WARNING: Author mismatch between patch and upstream commit: Backport author: Nobuhiro Iwamatsunobuhiro1.iwamatsu@toshiba.co.jp Commit author: Geert Uytterhoevengeert+renesas@glider.be
Status in newer kernel trees: 6.15.y | Present (exact SHA1) 6.12.y | Not found 6.6.y | Not found 6.1.y | Not found 5.15.y | Not found 5.10.y | Not found
Note: The patch differs from the upstream commit: --- 1: 929d8490f8790 ! 1: 2eb5c6492555c ARM: dts: am335x-bone-common: Increase MDIO reset deassert delay to 50ms @@ Metadata ## Commit message ## ARM: dts: am335x-bone-common: Increase MDIO reset deassert delay to 50ms
+ commit 929d8490f8790164f5f63671c1c58d6c50411cb2 upstream. + Commit b9bf5612610aa7e3 ("ARM: dts: am335x-bone-common: Increase MDIO reset deassert time") already increased the MDIO reset deassert delay from 6.5 to 13 ms, but this may still cause Ethernet PHY probe failures: @@ Commit message Reviewed-by: Roger Quadros rogerq@kernel.org Link: https://lore.kernel.org/r/9002a58daa1b2983f39815b748ee9d2f8dcc4829.173036693... Signed-off-by: Kevin Hilman khilman@baylibre.com + Signed-off-by: Nobuhiro Iwamatsu (CIP) nobuhiro1.iwamatsu@toshiba.co.jp
- ## arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi ## + ## arch/arm/boot/dts/am335x-bone-common.dtsi ## @@ /* Support GPIO reset on revision C3 boards */ reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; ---
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.10.y | Success | Success |
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected. No action required from the submitter.
The upstream commit SHA1 provided is correct: 623cef652768860bd5f205fb7b741be278585fba
WARNING: Author mismatch between patch and upstream commit: Backport author: Nobuhiro Iwamatsunobuhiro1.iwamatsu@toshiba.co.jp Commit author: Shengyu Quwiagn233@outlook.com
Status in newer kernel trees: 6.15.y | Present (exact SHA1) 6.12.y | Present (exact SHA1) 6.6.y | Present (exact SHA1) 6.1.y | Not found 5.15.y | Not found 5.10.y | Not found
Note: The patch differs from the upstream commit: --- 1: 623cef6527688 ! 1: 01338e4054b9b ARM: dts: am335x-bone-common: Add GPIO PHY reset on revision C3 board @@ Metadata ## Commit message ## ARM: dts: am335x-bone-common: Add GPIO PHY reset on revision C3 board
+ commit 623cef652768860bd5f205fb7b741be278585fba upstream. + This patch adds ethernet PHY reset GPIO config for Beaglebone Black series boards with revision C3. This fixes a random phy startup failure bug discussed at [1]. The GPIO pin used for reset is not used on older @@ Commit message Signed-off-by: Shengyu Qu wiagn233@outlook.com Message-ID: TY3P286MB26113797A3B2EC7E0348BBB2980FA@TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM Signed-off-by: Tony Lindgren tony@atomide.com + Signed-off-by: Nobuhiro Iwamatsu (CIP) nobuhiro1.iwamatsu@toshiba.co.jp
- ## arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi ## + ## arch/arm/boot/dts/am335x-bone-common.dtsi ## @@ /* MDIO */ AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLUP | SLEWCTRL_FAST, MUX_MODE0) ---
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-6.1.y | Success | Success |
linux-stable-mirror@lists.linaro.org