OSDN Git Service

arm64: dts: amlogic: Used onboard usb hub reset on odroid c4
authorAnand Moon <linux.amoon@gmail.com>
Wed, 18 Jan 2023 04:44:15 +0000 (04:44 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jan 2023 13:13:28 +0000 (14:13 +0100)
On Odroid c4 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.

USB hub is combination of USB 2.0 and USB 3.0 root hub so
use peer-hub node to link then.

Signed-off-by: Anand Moon <linux.amoon@gmail.com>
Link: https://lore.kernel.org/r/20230118044418.875-8-linux.amoon@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts

index 8c30ce6..d04768a 100644 (file)
        sound {
                model = "ODROID-C4";
        };
-};
 
-&gpio {
-       /*
-        * WARNING: The USB Hub on the Odroid-C4 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.
-        */
-       hog-0 {
-               gpio-hog;
-               gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
-               output-high;
-               line-name = "usb-hub-reset";
+       /* 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 = "usb2109,2817";
+                       reg = <1>;
+                       peer-hub = <&hub_3_0>;
+                       reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
+                       vdd-supply = <&vcc_5v>;
+               };
+
+               /* 3.1 hub on port 4 */
+               hub_3_0: hub@2 {
+                       compatible = "usb2109,817";
+                       reg = <2>;
+                       peer-hub = <&hub_2_0>;
+                       reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
+                       vdd-supply = <&vcc_5v>;
+               };
        };
 };