diff options
author | Leon M. George <leon@georgemail.eu> | 2019-11-11 14:10:50 +0100 |
---|---|---|
committer | Petr Štetiar <ynezz@true.cz> | 2020-03-28 13:03:02 +0100 |
commit | d59137d1d93991d2ed261c066d4dad836e0dd2bb (patch) | |
tree | 884fbc2d18950b03c7c09ad28b95573d280b1fb4 /target | |
parent | c3178110b5d2912fcd7dfd40443e7be07afbd2af (diff) | |
download | upstream-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')
-rw-r--r-- | target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts | 18 | ||||
-rw-r--r-- | target/linux/ipq40xx/files-5.4/arch/arm/boot/dts/qcom-ipq4028-wpj428.dts | 18 |
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"; |