]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
authorNeil Armstrong <neil.armstrong@linaro.org>
Wed, 19 Nov 2025 08:45:42 +0000 (09:45 +0100)
committerBjorn Andersson <andersson@kernel.org>
Fri, 16 Jan 2026 14:10:08 +0000 (08:10 -0600)
The Thinkpad T14s embeds a transparent 4lanes DP->HDMI transceiver
connected to the third QMP Combo PHY 4 lanes.

Add all the data routing, disable mode switching and specify the
QMP Combo PHY should be in DP-Only mode to route the 4 lanes to
the underlying DP phy.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20251119-topic-x1e80100-hdmi-v7-3-2bee0e66cc1b@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi

index b45e377a22c6248502a6e503b908af5a951c6ad2..4d7fd51f370b706abdd49133f6f4c41efd56e111 100644 (file)
                };
        };
 
+       hdmi-bridge {
+               compatible = "realtek,rtd2171";
+
+               pinctrl-0 = <&hdmi_hpd_default>;
+               pinctrl-names = "default";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               hdmi_bridge_dp_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               hdmi_bridge_tmds_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&hdmi_bridge_tmds_out>;
+                       };
+               };
+       };
+
        pmic-glink {
                compatible = "qcom,x1e80100-pmic-glink",
                             "qcom,sm8550-pmic-glink",
        link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
 };
 
+&mdss_dp2 {
+       status = "okay";
+};
+
+&mdss_dp2_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
 &mdss_dp3 {
        /delete-property/ #sound-dai-cells;
 
                output-low;
        };
 
+       hdmi_hpd_default: hdmi-hpd-default-state {
+               pins = "gpio126";
+               function = "usb2_dp";
+               bias-disable;
+       };
+
        tpad_default: tpad-default-state {
                pins = "gpio3";
                function = "gpio";
        remote-endpoint = <&retimer_ss1_ss_in>;
 };
 
+&usb_1_ss2_qmpphy {
+       vdda-phy-supply = <&vreg_l2j_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
+       /delete-property/ mode-switch;
+       /delete-property/ orientation-switch;
+
+       status = "okay";
+
+       ports {
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /delete-node/ endpoint;
+
+                       usb_1_ss2_qmpphy_out_dp: endpoint@0 {
+                               reg = <0>;
+
+                               data-lanes = <3 2 1 0>;
+                               remote-endpoint = <&hdmi_bridge_dp_in>;
+                       };
+
+                       /* No USB3 lanes connected */
+               };
+       };
+};
+
 &usb_2 {
        status = "okay";
 };