]> www.infradead.org Git - linux.git/commitdiff
arm64: dts: rockchip: enable USB-C on NanoPC-T6
authorMarcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Thu, 29 Aug 2024 12:26:59 +0000 (14:26 +0200)
committerHeiko Stuebner <heiko@sntech.de>
Thu, 29 Aug 2024 12:57:16 +0000 (14:57 +0200)
Enable the USB-C port on FriendlyELEC NanoPC-T6.

Works one way so far but still better than before.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Link: https://lore.kernel.org/r/20240829-friendlyelec-nanopc-t6-lts-v6-8-edff247e8c02@linaro.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dtsi

index d172a8547a5573842c8a9823a49e9d6493dbad31..1e9a3be23ea9ac8d148d5c91310b7813e28a8e91 100644 (file)
                gpio = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&typec5v_pwren>;
+               regulator-always-on;
+               regulator-boot-on;
                regulator-name = "vbus5v0_typec";
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
                        compatible = "usb-c-connector";
                        data-role = "dual";
                        label = "USB-C";
-                       power-role = "dual";
-                       try-power-role = "sink";
+                       power-role = "source";
                        source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
-                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
-                       op-sink-microwatt = <1000000>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       usbc0_hs: endpoint {
+                                               remote-endpoint = <&usb_host0_xhci_drd_sw>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       usbc0_ss: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_typec_ss>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       usbc0_sbu: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_typec_sbu>;
+                                       };
+                               };
+                       };
                };
        };
 
        status = "okay";
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
 &u2phy2_host {
        status = "okay";
 };
        status = "okay";
 };
 
+&usbdp_phy0 {
+       mode-switch;
+       orientation-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_typec_ss: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_ss>;
+               };
+
+               usbdp_phy0_typec_sbu: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&usbc0_sbu>;
+               };
+       };
+};
+
 &usb_host0_ehci {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_host0_xhci {
+       dr_mode = "host";
+       status = "okay";
+       usb-role-switch;
+
+       port {
+               usb_host0_xhci_drd_sw: endpoint {
+                       remote-endpoint = <&usbc0_hs>;
+               };
+       };
+};
+
 &usb_host1_ehci {
        status = "okay";
 };