From 0f6b944c923537b9bc08da23f363b409d1e564b3 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Alexander=20W=C3=B6rdekemper?= <alexwoerde@web.de>
Date: Thu, 16 May 2019 16:24:43 +0200
Subject: [PATCH] ath79: glinet_gl-ar750s: Add USB power & microSD
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

The GL.iNet AR750S USB and microSD port is currently not working out of
the box.  GPIO 7 is used to control the power of the USB port. Add GPIO
7 as a fixed-regulator for the port.  Also add &usb1 to DTS to get the
microSD port to work.

Signed-off-by: Alexander Wördekemper <alexwoerde@web.de>
---
 .../ath79/dts/qca9563_glinet_gl-ar750s.dts    | 29 ++++++++++++++-----
 target/linux/ath79/image/generic.mk           |  2 +-
 2 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dts b/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dts
index 378de5de90..0145a24fba 100644
--- a/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dts
+++ b/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dts
@@ -62,6 +62,19 @@
 			linux,default-trigger = "phy0tpt";
 		};
 	};
+
+	usb_vbus: regulator-usb-vbus {
+		compatible = "regulator-fixed";
+
+		regulator-name = "USB_VBUS";
+
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-always-on;
+
+		gpio = <&gpio 7 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
 };
 
 &spi {
@@ -113,20 +126,22 @@
 };
 
 &usb0 {
-	#address-cells = <1>;
-	#size-cells = <0>;
 	status = "okay";
-
-	hub_port: port@1 {
-		reg = <1>;
-		#trigger-source-cells = <0>;
-	};
+	vbus-supply = <&usb_vbus>;
 };
 
 &usb_phy0 {
 	status = "okay";
 };
 
+&usb1 {
+	status = "okay";
+};
+
+&usb_phy1 {
+	status = "okay";
+};
+
 &mdio0 {
 	status = "okay";
 	phy-mask = <0>;
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index dd5843d436..b8558a59f0 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -383,7 +383,7 @@ TARGET_DEVICES += glinet_gl-ar300m-nor
 define Device/glinet_gl-ar750s
   ATH_SOC := qca9563
   DEVICE_TITLE := GL.iNet GL-AR750S
-  DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct
+  DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct block-mount
   IMAGE_SIZE := 16000k
   SUPPORTED_DEVICES += gl-ar750s
 endef
-- 
2.30.2