From: Heiko Stuebner <heiko.stueb...@cherry.de>

Apart from the host-only usb3 controller (host2) the rk3588 also provides
two dual-role controllers. On the Tiger-Haikou combination these are
connected to the lower usb3-host port in host-only mode and the micro-usb3
port for dual-role operation.

Add the necessary controllers, phys to the Tiger-Haikou board and enable
the usb-id extcon.

Signed-off-by: Heiko Stuebner <heiko.stueb...@cherry.de>
Reviewed-by: Quentin Schulz <quentin.sch...@theobroma-systems.com>
Link: https://lore.kernel.org/r/20240422163951.2604273-4-he...@sntech.de
Signed-off-by: Heiko Stuebner <he...@sntech.de>

[ upstream commit: d7b83921d098bd76623381f75f5cd2296f1315cc ]

(cherry picked from commit 193d3b2a0a98f2dcd8c43bcbf8a766098a9fa75d)
---
 .../src/arm64/rockchip/rk3588-tiger-haikou.dts     | 58 ++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/dts/upstream/src/arm64/rockchip/rk3588-tiger-haikou.dts 
b/dts/upstream/src/arm64/rockchip/rk3588-tiger-haikou.dts
index 2aa43e7430e..e4b7a0a4444 100644
--- a/dts/upstream/src/arm64/rockchip/rk3588-tiger-haikou.dts
+++ b/dts/upstream/src/arm64/rockchip/rk3588-tiger-haikou.dts
@@ -113,6 +113,16 @@
                vin-supply = <&dc_12v>;
        };
 
+       vcc5v0_otg: vcc5v0-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&otg_vbus_drv>;
+               regulator-name = "vcc5v0_otg";
+               regulator-always-on;
+       };
+
        vcc5v0_usb: vcc5v0-usb-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vcc5v0_usb";
@@ -137,6 +147,10 @@
        status = "okay";
 };
 
+&extcon_usb3 {
+       status = "okay";
+};
+
 &gmac0 {
        status = "okay";
 };
@@ -199,6 +213,13 @@
                                <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
                };
        };
+
+       usb2 {
+               otg_vbus_drv: otg-vbus-drv {
+                       rockchip,pins =
+                         <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
 };
 
 &sdmmc {
@@ -214,6 +235,23 @@
        status = "okay";
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       phy-supply = <&vcc5v0_otg>;
+       status = "okay";
+};
+
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
@@ -236,6 +274,13 @@
 
 &uart5 {
        rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
+};
+
+&usbdp_phy0 {
+       status = "okay";
+};
+
+&usbdp_phy1 {
        status = "okay";
 };
 
@@ -249,6 +294,13 @@
        status = "okay";
 };
 
+/* host0_xhci on Q7_USB_P1, usb3-otg port */
+&usb_host0_xhci {
+       dr_mode = "otg";
+       extcon = <&extcon_usb3>;
+       status = "okay";
+};
+
 /* host1 on Q7_USB_P3, usb2 port */
 &usb_host1_ehci {
        status = "okay";
@@ -259,6 +311,12 @@
        status = "okay";
 };
 
+/* host1_xhci on Q7_USB_P0, lower usb3 port */
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
 /* host2 on Q7_USB_P2, upper usb3 port */
 &usb_host2_xhci {
        status = "okay";

-- 
2.45.2

Reply via email to