summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJens Glathe <jens.glathe@oldschoolsolutions.biz>2026-01-03 12:00:24 +0300
committerBjorn Andersson <andersson@kernel.org>2026-01-03 17:44:07 +0300
commit67ce203eee94946768397a6fa16c43ee5292f31a (patch)
tree6a8839424ccb044e820e6b2fa0f12afa6e94132c /arch
parent3802966a9c489708228b98b7265d8db87d8f6db3 (diff)
downloadlinux-67ce203eee94946768397a6fa16c43ee5292f31a.tar.xz
arm64: dts: qcom: x1p42100-lenovo-thinkbook-16: add hdmi bridge with enable pin
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm64/boot/dts/qcom/x1p42100-lenovo-thinkbook-16.dts88
1 files changed, 88 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/qcom/x1p42100-lenovo-thinkbook-16.dts b/arch/arm64/boot/dts/qcom/x1p42100-lenovo-thinkbook-16.dts
index b4a40904f0a0..1e5eb8c5dc98 100644
--- a/arch/arm64/boot/dts/qcom/x1p42100-lenovo-thinkbook-16.dts
+++ b/arch/arm64/boot/dts/qcom/x1p42100-lenovo-thinkbook-16.dts
@@ -78,6 +78,47 @@
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";
@@ -1038,6 +1079,14 @@
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;
@@ -1327,6 +1376,19 @@
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";
@@ -1573,6 +1635,32 @@
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";
};