Skip to contentSkip to conversation

arm64: dts: amlogic: Used onboard usb hub reset on odroid n2

PATCH In review Anand Moon 2 participants 3 messages Oct 10, 2023

Subsystems (2)
lore
Share & tools
lore

Anand Moon

author
#0 lore raw

PATCH 1/1 arm64: dts: amlogic: Used onboard usb hub reset on odroid n2

On Odroid n2/n2+ previously use gpio-hog to reset the usb hub, switch to used on-board usb hub reset to enable the usb hub and enable power to hub.

---
 .../dts/amlogic/meson-g12b-odroid-n2.dtsi     | 36 ++++++++++++-------
 1 file changed, 24 insertions(+), 12 deletions(-)
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +24 -12
index 91c9769fda20..9e671444eca6 100644
@@ -31,6 +31,30 @@ hub_5v: regulator-hub_5v {
 		enable-active-high;
 	};
 
+	/* USB hub supports both USB 2.0 and USB 3.0 root hub */
+	usb-hub {
+		dr_mode = "host";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 2.0 hub on port 1 */
+		hub_2_0: hub@1 {
+			compatible = "usb5e3,610";
+			reg = <1>;
+			peer-hub = <&hub_3_0>;
+			vdd-supply = <&usb_pwr_en>;
+		};
+
+		/* 3.0 hub on port 4 */
+		hub_3_0: hub@2 {
+			compatible = "usb5e3,620";
+			reg = <2>;
+			peer-hub = <&hub_2_0>;
+			reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
+			vdd-supply = <&vcc_5v>;
+		};
+	};
+
 	sound {
 		compatible = "amlogic,axg-sound-card";
 		model = "ODROID-N2";
@@ -234,18 +258,6 @@ &gpio {
 		"PIN_3",  /* GPIOX_17 */
 		"PIN_5",  /* GPIOX_18 */
 		"PIN_36"; /* GPIOX_19 */
-	/*
-	 * WARNING: The USB Hub on the Odroid-N2 needs a reset signal
-	 * to be turned high in order to be detected by the USB Controller
-	 * This signal should be handled by a USB specific power sequence
-	 * in order to reset the Hub when USB bus is powered down.
-	 */
-	usb-hub-hog {
-		gpio-hog;
-		gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
-		output-high;
-		line-name = "usb-hub-reset";
-	};
 };
 
 &i2c3 {
Signature · 1 line
2.42.0
maintainer
#1 lore raw

Hi,

Quoted 18 lines · Anand Moon

On Odroid n2/n2+ previously use gpio-hog to reset the usb hub, switch to used on-board usb hub reset to enable the usb hub and enable power to hub.

---
  .../dts/amlogic/meson-g12b-odroid-n2.dtsi     | 36 ++++++++++++-------
  1 file changed, 24 insertions(+), 12 deletions(-)
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +1 -0
index 91c9769fda20..9e671444eca6 100644
@@ -31,6 +31,30 @@ hub_5v: regulator-hub_5v {
  		enable-active-high;
  	};
 
+	/* USB hub supports both USB 2.0 and USB 3.0 root hub */

arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi hub_5v: regulator-hub_5v { · line 44

Quoted 10 lines
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +10 -0
+	usb-hub {
+		dr_mode = "host";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 2.0 hub on port 1 */
+		hub_2_0: hub@1 {
+			compatible = "usb5e3,610";
+			reg = <1>;
+			peer-hub = <&hub_3_0>;

It seems peer-hub is missing from Documentation/devicetree/bindings/usb/genesys,gl850g.yaml, could you add it ?

Thanks,
Neil

Quoted 35 lines
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +13 -12
+			vdd-supply = <&usb_pwr_en>;
+		};
+
+		/* 3.0 hub on port 4 */
+		hub_3_0: hub@2 {
+			compatible = "usb5e3,620";
+			reg = <2>;
+			peer-hub = <&hub_2_0>;
+			reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
+			vdd-supply = <&vcc_5v>;
+		};
+	};
+
  	sound {
  		compatible = "amlogic,axg-sound-card";
  		model = "ODROID-N2";
@@ -234,18 +258,6 @@ &gpio {
  		"PIN_3",  /* GPIOX_17 */
  		"PIN_5",  /* GPIOX_18 */
  		"PIN_36"; /* GPIOX_19 */
-	/*
-	 * WARNING: The USB Hub on the Odroid-N2 needs a reset signal
-	 * to be turned high in order to be detected by the USB Controller
-	 * This signal should be handled by a USB specific power sequence
-	 * in order to reset the Hub when USB bus is powered down.
-	 */
-	usb-hub-hog {
-		gpio-hog;
-		gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
-		output-high;
-		line-name = "usb-hub-reset";
-	};
  };
 
  &i2c3 {
author
#2 lore raw

Hi Neil,

Quoted 21 lines · Neil Armstrong

Hi,

Quoted 17 lines · Anand Moon

On Odroid n2/n2+ previously use gpio-hog to reset the usb hub, switch to used on-board usb hub reset to enable the usb hub and enable power to hub.

---
  .../dts/amlogic/meson-g12b-odroid-n2.dtsi     | 36 ++++++++++++-------
  1 file changed, 24 insertions(+), 12 deletions(-)
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +0 -0
index 91c9769fda20..9e671444eca6 100644
@@ -31,6 +31,30 @@ hub_5v: regulator-hub_5v {
              enable-active-high;
      };
 
Quoted 14 lines

arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi hub_5v: regulator-hub_5v { · line 44

Quoted 11 lines
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +11 -0
+     /* USB hub supports both USB 2.0 and USB 3.0 root hub */
+     usb-hub {
+             dr_mode = "host";
+             #address-cells = <1>;
+             #size-cells = <0>;
+
+             /* 2.0 hub on port 1 */
+             hub_2_0: hub@1 {
+                     compatible = "usb5e3,610";
+                     reg = <1>;
+                     peer-hub = <&hub_3_0>;

It seems peer-hub is missing from Documentation/devicetree/bindings/usb/genesys,gl850g.yaml, could you add it ?

Yes, will add an example in genesys,gl850g.yaml file.

Quoted 2 lines

Thanks,
Neil

Thanks
-Anand