]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
arm64: dts: qcom: qcm6490-fairphone-fp5: Hook up DisplayPort over USB-C
authorLuca Weiss <luca.weiss@fairphone.com>
Fri, 25 Apr 2025 07:08:15 +0000 (09:08 +0200)
committerBjorn Andersson <andersson@kernel.org>
Sat, 10 May 2025 16:56:12 +0000 (11:56 -0500)
Extend the USB graph to connect the OCP96011 switch, the PTN36502
redriver, the USB controllers and the MDSS, so that DisplayPort over
USB-C is working.

Connect some parts of the graph directly in the SoC dtsi since those
parts are wired up like this in the SoC directly.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250425-fp5-pmic-glink-dp-v3-4-cc9c2aeb42fb@fairphone.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
arch/arm64/boot/dts/qcom/sc7280.dtsi

index e0470be9142caa4bac4285a191725bbd60e706fa..9e8f9fb57c4723a24704a8239a86c6081910916b 100644 (file)
                                        reg = <1>;
 
                                        pmic_glink_ss_in: endpoint {
-                                               remote-endpoint = <&usb_1_dwc3_ss>;
+                                               remote-endpoint = <&redriver_ss_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_sbu: endpoint {
+                                               remote-endpoint = <&ocp96011_sbu_mux>;
                                        };
                                };
                        };
 
                mode-switch;
                orientation-switch;
+
+               port {
+                       ocp96011_sbu_mux: endpoint {
+                               remote-endpoint = <&pmic_glink_sbu>;
+                               data-lanes = <1 0>;
+                       };
+               };
        };
 
        /* AW86927FCR haptics @ 5a */
 
                retimer-switch;
                orientation-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               redriver_ss_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               redriver_ss_in: endpoint {
+                                       remote-endpoint = <&usb_dp_qmpphy_out>;
+                               };
+                       };
+               };
        };
 };
 
        status = "okay";
 };
 
+&mdss_dp {
+       status = "okay";
+};
+
+&mdss_dp_out {
+       data-lanes = <0 1>;
+};
+
 &mdss_dsi {
        vdda-supply = <&vreg_l6b>;
        status = "okay";
        remote-endpoint = <&pmic_glink_hs_in>;
 };
 
-&usb_1_dwc3_ss {
-       remote-endpoint = <&pmic_glink_ss_in>;
-};
-
 &usb_1_hsphy {
        vdda-pll-supply = <&vreg_l10c>;
        vdda18-supply = <&vreg_l1c>;
        status = "okay";
 };
 
+&usb_dp_qmpphy_out {
+       remote-endpoint = <&redriver_ss_in>;
+};
+
 &venus {
        firmware-name = "qcom/qcm6490/fairphone5/venus.mbn";
        status = "okay";
index 7388cabeded37c1714506a64c1f6ef4aac10ccb2..d9f422da942be4cbbe7b72d9739aa83c3c97591f 100644 (file)
                        #clock-cells = <1>;
                        #phy-cells = <1>;
 
+                       orientation-switch;
+
                        ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                        reg = <1>;
 
                                        usb_dp_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss>;
                                        };
                                };
 
                                        reg = <2>;
 
                                        usb_dp_qmpphy_dp_in: endpoint {
+                                               remote-endpoint = <&mdss_dp_out>;
                                        };
                                };
                        };
                                                reg = <1>;
 
                                                usb_1_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
                                                };
                                        };
                                };
 
                                        port@1 {
                                                reg = <1>;
-                                               mdss_dp_out: endpoint { };
+                                               mdss_dp_out: endpoint {
+                                                       remote-endpoint = <&usb_dp_qmpphy_dp_in>;
+                                               };
                                        };
                                };