[openwrt/openwrt] ath79: Fix glinet ar300m usb not working

LEDE Commits lede-commits at lists.infradead.org
Sat Jan 14 10:15:02 PST 2023


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/b352124cd2115fec648a00956a848660df9477d3

commit b352124cd2115fec648a00956a848660df9477d3
Author: Luo Chongjun <luochongjun at gl-inet.com>
AuthorDate: Thu Dec 15 17:25:15 2022 +0800

    ath79: Fix glinet ar300m usb not working
    
    glinet forum users reported the problem at
    https://forum.gl-inet.com/t/gl-ar300m16-openwrt-22-03-0-rc5-usb-port-power-off-by-default/23199
    
    The current code uses the regulator framework to control the USB power
    supply. Although usb0 described in DTS refers to the regulator by
    vbus-supply, but there is no code related to regulator implemented
    in the USB driver of QCA953X, so the USB of the device cannot work.
    
    Under the regulator framework, adding the regulator-always-on attribute
    fixes this problem, but it means that USB power will not be able to be
    turned off. Since we need to control the USB power supply in user space,
    I didn't find any other better way under the regulator framework of Linux,
    so I directly export gpio.
    
    Signed-off-by: Luo Chongjun <luochongjun at gl-inet.com>
---
 .../linux/ath79/dts/qca9531_glinet_gl-ar300m-lite.dts   |  4 ----
 target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi    | 17 ++++++++---------
 2 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-lite.dts b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-lite.dts
index a34abb1dd2..c712236114 100644
--- a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-lite.dts
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-lite.dts
@@ -7,7 +7,6 @@
 	model = "GL.iNet GL-AR300M-Lite";
 };
 
-/delete-node/ &reg_usb_vbus;
 
 /delete-node/ &nand_flash;
 
@@ -30,6 +29,3 @@
 	label = "green:wlan";
 };
 
-&usb0 {
-	/delete-property/ vbus-supply;
-};
diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi
index 6c89db1b8c..667f779b17 100644
--- a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi
@@ -37,14 +37,14 @@
 		};
 	};
 
-	reg_usb_vbus: reg_usb_vbus {
-		compatible = "regulator-fixed";
-
-		regulator-name = "usb_vbus";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		gpio = <&gpio 2 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
+	gpio-export {
+		compatible = "gpio-export";
+
+		gpio_usb_power {
+			gpio-export,name = "usb_power";
+			gpio-export,output = <1>;
+			gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
+		};
 	};
 
 	leds {
@@ -142,7 +142,6 @@
 };
 
 &usb0 {
-	vbus-supply = <&reg_usb_vbus>;
 	status = "okay";
 };
 




More information about the lede-commits mailing list