aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorLeon M. George <leon@georgemail.eu>2019-11-11 14:10:50 +0100
committerPetr Štetiar <ynezz@true.cz>2020-03-28 13:03:02 +0100
commitd59137d1d93991d2ed261c066d4dad836e0dd2bb (patch)
tree884fbc2d18950b03c7c09ad28b95573d280b1fb4 /target/linux
parentc3178110b5d2912fcd7dfd40443e7be07afbd2af (diff)
downloadupstream-d59137d1d93991d2ed261c066d4dad836e0dd2bb.tar.gz
upstream-d59137d1d93991d2ed261c066d4dad836e0dd2bb.tar.bz2
upstream-d59137d1d93991d2ed261c066d4dad836e0dd2bb.zip
ipq40xx: wpj428: fix missing MDIO GPIO reset and pinmux
The bootloader does not always initialize the MDIO pins before booting Linux. E.g. on version "U-Boot 2012.07 [Chaos Calmer 15.05.1,r35193] (Jul 25 2017 - 11:36:26)" this is the case when booting automatically without activating the U-Boot console. Without this change, the kernel boot will complain about missing PHYs: libphy: ipq40xx_mdio: probed ar40xx c000000.ess-switch: Probe failed - Missing PHYs! libphy: Fixed MDIO Bus: probed With this change it will work as expected: libphy: ipq40xx_mdio: probed ESS reset ok! ESS reset ok! libphy: Fixed MDIO Bus: probed Ref: GH-2835 Tested-by: Fredrik Olofsson <fredrik.olofsson@anyfinetworks.com> Signed-off-by: Leon M. George <leon@georgemail.eu> [commit description from Fredrik, subject facelift] Signed-off-by: Petr Štetiar <ynezz@true.cz>
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts18
-rw-r--r--target/linux/ipq40xx/files-5.4/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts18
2 files changed, 36 insertions, 0 deletions
diff --git a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts
index cf8540c101..1bcf5e80bf 100644
--- a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts
+++ b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts
@@ -32,6 +32,10 @@
mdio@90000 {
status = "okay";
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+ reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>;
+ reset-delay-us = <2000>;
};
ess-psgmii@98000 {
@@ -129,6 +133,20 @@
};
&tlmm {
+ mdio_pins: mdio_pinmux {
+ mux_1 {
+ pins = "gpio53";
+ function = "mdio";
+ bias-pull-up;
+ };
+
+ mux_2 {
+ pins = "gpio52";
+ function = "mdc";
+ bias-pull-up;
+ };
+ };
+
serial_pins: serial_pinmux {
mux {
pins = "gpio60", "gpio61";
diff --git a/target/linux/ipq40xx/files-5.4/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts b/target/linux/ipq40xx/files-5.4/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts
index cf8540c101..1bcf5e80bf 100644
--- a/target/linux/ipq40xx/files-5.4/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts
+++ b/target/linux/ipq40xx/files-5.4/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts
@@ -32,6 +32,10 @@
mdio@90000 {
status = "okay";
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+ reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>;
+ reset-delay-us = <2000>;
};
ess-psgmii@98000 {
@@ -129,6 +133,20 @@
};
&tlmm {
+ mdio_pins: mdio_pinmux {
+ mux_1 {
+ pins = "gpio53";
+ function = "mdio";
+ bias-pull-up;
+ };
+
+ mux_2 {
+ pins = "gpio52";
+ function = "mdc";
+ bias-pull-up;
+ };
+ };
+
serial_pins: serial_pinmux {
mux {
pins = "gpio60", "gpio61";