diff options
4 files changed, 149 insertions, 0 deletions
diff --git a/queue-5.10/arm-dts-am335x-bone-common-add-gpio-phy-reset-on-revision-c3-board.patch b/queue-5.10/arm-dts-am335x-bone-common-add-gpio-phy-reset-on-revision-c3-board.patch new file mode 100644 index 0000000000..e1f51b24c3 --- /dev/null +++ b/queue-5.10/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) + >; + }; + +@@ -374,6 +378,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.10/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch b/queue-5.10/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch new file mode 100644 index 0000000000..55822bfd5a --- /dev/null +++ b/queue-5.10/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 +@@ -381,7 +381,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.10/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch b/queue-5.10/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch new file mode 100644 index 0000000000..bcbd37a9ba --- /dev/null +++ b/queue-5.10/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 +@@ -381,7 +381,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.10/series b/queue-5.10/series index 04bb42f392..b5aa454529 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -316,3 +316,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 |