aboutsummaryrefslogtreecommitdiffstats
diff options
-rw-r--r--queue-5.4/arm-dts-am335x-bone-common-add-gpio-phy-reset-on-revision-c3-board.patch59
-rw-r--r--queue-5.4/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch47
-rw-r--r--queue-5.4/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch40
-rw-r--r--queue-5.4/series3
4 files changed, 149 insertions, 0 deletions
diff --git a/queue-5.4/arm-dts-am335x-bone-common-add-gpio-phy-reset-on-revision-c3-board.patch b/queue-5.4/arm-dts-am335x-bone-common-add-gpio-phy-reset-on-revision-c3-board.patch
new file mode 100644
index 0000000000..3552850a8f
--- /dev/null
+++ b/queue-5.4/arm-dts-am335x-bone-common-add-gpio-phy-reset-on-revision-c3-board.patch
@@ -0,0 +1,59 @@
+From 623cef652768860bd5f205fb7b741be278585fba Mon Sep 17 00:00:00 2001
+From: Shengyu Qu <wiagn233@outlook.com>
+Date: Sun, 6 Aug 2023 16:50:44 +0800
+Subject: ARM: dts: am335x-bone-common: Add GPIO PHY reset on revision C3 board
+
+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-lts-on-bbg/19948
+[2] https://forum.beagleboard.org/t/recognizing-a-beaglebone-black-rev-c3-board/31249/
+
+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>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/boot/dts/am335x-bone-common.dtsi | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- 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)
+ >;
+ };
+
+@@ -396,6 +400,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>;
+ };
+ };
+
diff --git a/queue-5.4/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch b/queue-5.4/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch
new file mode 100644
index 0000000000..2edb1f60e5
--- /dev/null
+++ b/queue-5.4/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch
@@ -0,0 +1,47 @@
+From 929d8490f8790164f5f63671c1c58d6c50411cb2 Mon Sep 17 00:00:00 2001
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+Date: Thu, 31 Oct 2024 10:29:51 +0100
+Subject: ARM: dts: am335x-bone-common: Increase MDIO reset deassert delay to 50ms
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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.1730366936.git.geert+renesas@glider.be
+Signed-off-by: Kevin Hilman <khilman@baylibre.com>
+Signed-off-by: Nobuhiro Iwamatsu (CIP) <nobuhiro1.iwamatsu@toshiba.co.jp>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/boot/dts/am335x-bone-common.dtsi | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
++++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
+@@ -403,7 +403,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>;
+ };
+ };
+
diff --git a/queue-5.4/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch b/queue-5.4/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch
new file mode 100644
index 0000000000..967c28bd2a
--- /dev/null
+++ b/queue-5.4/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch
@@ -0,0 +1,40 @@
+From b9bf5612610aa7e38d58fee16f489814db251c01 Mon Sep 17 00:00:00 2001
+From: Colin Foster <colin.foster@in-advantage.com>
+Date: Fri, 31 May 2024 13:38:17 -0500
+Subject: ARM: dts: am335x-bone-common: Increase MDIO reset deassert time
+
+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.com
+Signed-off-by: Kevin Hilman <khilman@baylibre.com>
+Signed-off-by: Nobuhiro Iwamatsu (CIP) <nobuhiro1.iwamatsu@toshiba.co.jp>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/boot/dts/am335x-bone-common.dtsi | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
++++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
+@@ -403,7 +403,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>;
+ };
+ };
+
diff --git a/queue-5.4/series b/queue-5.4/series
index e0d73b572c..e28c56ec3c 100644
--- a/queue-5.4/series
+++ b/queue-5.4/series
@@ -209,3 +209,6 @@ tipc-fix-null-ptr-deref-when-acquiring-remote-ip-of-.patch
calipso-fix-null-ptr-deref-in-calipso_req_-set-del-a.patch
net-atm-add-lec_mutex.patch
net-atm-fix-proc-net-atm-lec-handling.patch
+arm-dts-am335x-bone-common-add-gpio-phy-reset-on-revision-c3-board.patch
+arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch
+arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch