]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: qcom: x1p42100-lenovo-thinkbook-16: add hdmi bridge with enable pin
authorJens Glathe <jens.glathe@oldschoolsolutions.biz>
Sat, 3 Jan 2026 09:00:24 +0000 (10:00 +0100)
committerBjorn Andersson <andersson@kernel.org>
Sat, 3 Jan 2026 14:44:07 +0000 (08:44 -0600)
Add TLMM 120 for hdmi bridge enable.
In general this is the same setup as on the T14s. Since its using simple-bridge
and also is Lenovo, we also use the same realtek,rtd2171 compatible.
The real chip identity is not known yet. The bridge is wired with un-swapped
lanes, though.

Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Link: https://lore.kernel.org/r/20260103-tb16-hdmi-v2-2-92b0930fa82e@oldschoolsolutions.biz
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/x1p42100-lenovo-thinkbook-16.dts

index b4a40904f0a01b36ff2fc72e801a5fe7d6971e2a..1e5eb8c5dc988c3c4655f0019e53fc19e0884e4e 100644 (file)
                vdd-supply = <&vreg_cam_5p0>;
        };
 
+       hdmi-bridge {
+               compatible = "realtek,rtd2171";
+
+               enable-gpios = <&tlmm 120 GPIO_ACTIVE_HIGH>;
+
+               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>;
+                       };
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
        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;
 
                bias-disable;
        };
 
+       hdmi_bridge_en: hdmi-bridge-en-state {
+               pins = "gpio120";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-pull-down;
+       };
+
+       hdmi_hpd_default: hdmi-hpd-default-state {
+               pins = "gpio126";
+               function = "usb2_dp";
+               bias-disable;
+       };
+
        kybd_default: kybd-default-state {
                pins = "gpio67";
                function = "gpio";
        status = "okay";
 };
 
+&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 = <0 1 2 3>;
+                               remote-endpoint = <&hdmi_bridge_dp_in>;
+                       };
+               };
+       };
+};
+
 &usb_2 {
        status = "okay";
 };