]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: rockchip: Enable USB-C DP Alt for Indiedroid Nova
authorChris Morgan <macromorgan@hotmail.com>
Fri, 7 Nov 2025 21:47:24 +0000 (15:47 -0600)
committerHeiko Stuebner <heiko@sntech.de>
Thu, 13 Nov 2025 22:48:37 +0000 (23:48 +0100)
Enable the Display Port alt-mode for the USB-C port on the Indiedroid
Nova.

Note that while ROCKCHIP_VOP2_EP_DP0 is defined as 10 we need to
set the address to "a" or else we receive a dtc warning.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Link: https://patch.msgid.link/20251107214724.878955-1-macroalpha82@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts

index b506d820585fd637f0c553cbd7636ba3265b7923..769f4a7adf0a0615d2582c1eef73aa6404bbb85c 100644 (file)
        cpu-supply = <&vdd_cpu_big1_s0>;
 };
 
+&dp0 {
+       status = "okay";
+};
+
+&dp0_in {
+       dp0_in_vp1: endpoint {
+               remote-endpoint = <&vp1_out_dp0>;
+       };
+};
+
+&dp0_out {
+       dp0_out_con: endpoint {
+               remote-endpoint = <&usbdp_phy0_dp_in>;
+       };
+};
+
 /*
  * Add labels for each GPIO pin exposed on the 40 pin header. Note that
  * voltage of each GPIO pin could be either 3.3v or 1.8v (as noted by
                        sink-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
                        op-sink-microwatt = <1000000>;
 
+                       altmodes {
+                               displayport {
+                                       svid = /bits/ 16 <0xff01>;
+                                       vdo = <0xffffffff>;
+                               };
+                       };
+
+
                        ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
                                port@0 {
                                        reg = <0>;
-                                       usbc0_orien_sw: endpoint {
-                                               remote-endpoint = <&usbdp_phy0_orientation_switch>;
+                                       usbc0_hs: endpoint {
+                                               remote-endpoint = <&usb_host0_xhci_hs>;
                                        };
                                };
 
                                port@1 {
                                        reg = <1>;
-                                       usbc0_role_sw: endpoint {
-                                               remote-endpoint = <&dwc3_0_role_switch>;
+                                       usbc0_ss: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_ss_out>;
                                        };
                                };
 
                                port@2 {
                                        reg = <2>;
-                                       dp_altmode_mux: endpoint {
-                                               remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
+                                       usbc0_sbu: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_dp_out>;
                                        };
                                };
                        };
        usb-role-switch;
        status = "okay";
 
-       port {
-               dwc3_0_role_switch: endpoint {
-                       remote-endpoint = <&usbc0_role_sw>;
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       usb_host0_xhci_hs: endpoint {
+                               remote-endpoint = <&usbc0_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       usb_host0_xhci_ss: endpoint {
+                               remote-endpoint = <&usbdp_phy0_ss_in>;
+                       };
                };
        };
 };
                #address-cells = <1>;
                #size-cells = <0>;
 
-               usbdp_phy0_orientation_switch: endpoint@0 {
+               usbdp_phy0_ss_out: endpoint@0 {
                        reg = <0>;
-                       remote-endpoint = <&usbc0_orien_sw>;
+                       remote-endpoint = <&usbc0_ss>;
                };
 
-               usbdp_phy0_dp_altmode_mux: endpoint@1 {
+               usbdp_phy0_ss_in: endpoint@1 {
                        reg = <1>;
-                       remote-endpoint = <&dp_altmode_mux>;
+                       remote-endpoint = <&usb_host0_xhci_ss>;
+               };
+
+               usbdp_phy0_dp_in: endpoint@2 {
+                       reg = <2>;
+                       remote-endpoint = <&dp0_out_con>;
+               };
+
+               usbdp_phy0_dp_out: endpoint@3 {
+                       reg = <3>;
+                       remote-endpoint = <&usbc0_sbu>;
                };
        };
 };
                remote-endpoint = <&hdmi0_in_vp0>;
        };
 };
+
+&vp1 {
+       vp1_out_dp0: endpoint@a {
+               reg = <ROCKCHIP_VOP2_EP_DP0>;
+               remote-endpoint = <&dp0_in_vp1>;
+       };
+};