diff mbox series

[18.06,2/2] bcm63xx: VH4032N: fix non working LEDs and GPIOs

Message ID 11743114.t3shAEcxbS@tool
State Rejected
Headers show
Series None | expand

Commit Message

Daniel González Cabanelas Jan. 21, 2021, 9:06 p.m. UTC
The GPIO hog feature is broken for bcm63xx in the 18.06 release. As a 
result of this, the whole GPIO infrastructure will fail, causing a non
working LEDs problem and empty GPIOs when a hog is requested at boot time.

[0.537448] requesting hog GPIO usb-hub-reset-gpio (chip bcm63xx-gpio.0,
           offset 27) failed, -517
[0.546564] gpiochip_add_data: GPIOs 480..511 (bcm63xx-gpio.0) failed
           to register

The GPIO hog is used in this device to pull out of reset the USB hub.

There is a kernel fix for the 19.07 release, 6d6127e537 commit. But to
avoid unexpected behavior on other devices, we'll use a simple workaround
to enable the USB hub. A fake LED is used instead.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
---
 target/linux/brcm63xx/dts/vh4032n.dts | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)
diff mbox series

Patch

diff --git a/target/linux/brcm63xx/dts/vh4032n.dts b/target/linux/brcm63xx/dts/vh4032n.dts
index a17db77..0eb935a 100644
--- a/target/linux/brcm63xx/dts/vh4032n.dts
+++ b/target/linux/brcm63xx/dts/vh4032n.dts
@@ -68,6 +68,12 @@ 
 			label = "VH4032N:red:voice";
 			gpios = <&pinctrl 26 1>;
 		};
+		/* Workaround: enable the USB hub using a fake LED */
+		usb-hub-reset {
+			label = "usb-hub-reset-gpio";
+			gpios = <&pinctrl 27 0>;
+			default-state = "on";
+		};
 	};
 };
 
@@ -76,12 +82,16 @@ 
        pinctrl-0 = <&pinctrl_pci &pinctrl_ephy0_led &pinctrl_ephy1_led
 		    &pinctrl_ephy2_led &pinctrl_ephy3_led>;
 
-	usb_hub_reset {
-		gpio-hog;
-		gpios = <27 0>;
-		output-high;
-		line-name = "usb-hub-reset-gpio";
-	};
+	/*
+	 * GPIO hog is broken in 18.06, disable this node and use a fake
+	 * LED instead. (Fixed in 19.07, commit 6d6127e537)
+	 * usb_hub_reset {
+	 *	gpio-hog;
+	 *	gpios = <27 0>;
+	 *	output-high;
+	 *	line-name = "usb-hub-reset-gpio";
+	 * };
+	 */
 };
 
 &pflash {