On 2020/4/27 下午2:52, Chen-Yu Tsai wrote:
From: Chen-Yu Tsai <w...@csie.org>

If the VBUS regulator is always-on, XHCI will fail to detect USB 3.0
devices; USB 2.0 devices will work however.

Make the VBUS regulator controllable and tie it to only the XHCI. This
makes all three USB ports usable.

Signed-off-by: Chen-Yu Tsai <w...@csie.org>

Reviewed-by: Kever Yang <kever.y...@rock-chips.com>

Thanks,
- Kever
---
Changes since v2:
   - new patch
---
  arch/arm/dts/rk3328-rock64-u-boot.dtsi | 11 +++++++++++
  1 file changed, 11 insertions(+)

diff --git a/arch/arm/dts/rk3328-rock64-u-boot.dtsi 
b/arch/arm/dts/rk3328-rock64-u-boot.dtsi
index e5946d2d2dc7..8318bf4e6030 100644
--- a/arch/arm/dts/rk3328-rock64-u-boot.dtsi
+++ b/arch/arm/dts/rk3328-rock64-u-boot.dtsi
@@ -12,5 +12,16 @@
  };
&usb_host0_xhci {
+       vbus-supply = <&vcc_host_5v>;
        status = "okay";
  };
+
+/*
+ * This makes XHCI responsible for toggling VBUS. This is needed to work
+ * around an issue where either XHCI only works with USB 2.0 or OTG doesn't
+ * work, depending on how VBUS is configured. Having USB 3.0 seems better.
+ */
+&vcc_host_5v {
+       /delete-property/ regulator-always-on;
+       /delete-property/ regulator-boot-on;
+};


Reply via email to