[PATCH 4/4] arm64: dts: qcom: glymur-crd: Enable HDMI output via PS195

From: Nabige Aala

Date: Thu Nov 12 2026 - 06:05:13 EST


From: Mahadevan P <mahadevan.p@xxxxxxxxxxxxxxxx>

Enable the PS195 HDMI path on Glymur CoB/SiP, Mahua and Kalambo CRDs
through their shared glymur-crd.dtsi.

Describe the bridge, connector, supplies and four-lane DP2 connection
through the USB2 QMP combo PHY. Add the GPIO126 HPD state to glymur.dtsi.

Signed-off-by: Mahadevan P <mahadevan.p@xxxxxxxxxxxxxxxx>
Signed-off-by: Nabige Aala <nabige.aala@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/glymur-crd.dtsi | 142 +++++++++++++++++++++++++++++++
arch/arm64/boot/dts/qcom/glymur.dtsi | 6 ++
2 files changed, 148 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/glymur-crd.dtsi b/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
index 2ec62423ad79..87adeccaffc6 100644
--- a/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
@@ -20,6 +20,35 @@ aliases {
spi0 = &spi18;
};

+ hdmi-bridge {
+ compatible = "parade,ps195";
+
+ vdd09-supply = <&vreg_hdmi_0p95>;
+ vdd12-supply = <&vreg_hdmi_1p2>;
+ vdd33-supply = <&vreg_hdmi_3p3>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ hdmi_bridge_in: endpoint {
+ remote-endpoint = <&usb_2_qmpphy_out_dp>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ hdmi_bridge_out: endpoint {
+ remote-endpoint = <&hdmi_con>;
+ };
+ };
+ };
+ };
+
chosen {
stdout-path = "serial0:115200n8";
};
@@ -63,6 +92,17 @@ switch-lid {
};
};

+ hdmi-connector {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con: endpoint {
+ remote-endpoint = <&hdmi_bridge_out>;
+ };
+ };
+ };
+
pmic-glink {
compatible = "qcom,glymur-pmic-glink",
"qcom,pmic-glink";
@@ -142,6 +182,53 @@ vreg_edp_3p3: regulator-edp-3p3 {
regulator-boot-on;
};

+ vreg_hdmi_0p95: regulator-hdmi-0p95 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_HDMI_0P95";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <950000>;
+
+ gpio = <&tlmm 55 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ startup-delay-us = <1000>;
+
+ pinctrl-0 = <&hdmi_0p95_reg_en>;
+ pinctrl-names = "default";
+ };
+
+ vreg_hdmi_1p2: regulator-hdmi-1p2 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_HDMI_1P2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+
+ vin-supply = <&vreg_l18b0>;
+
+ gpio = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ startup-delay-us = <2000>;
+
+ pinctrl-0 = <&hdmi_1p2_reg_en>;
+ pinctrl-names = "default";
+ };
+
+ vreg_hdmi_3p3: regulator-hdmi-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_HDMI_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 170 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ startup-delay-us = <2000>;
+
+ pinctrl-0 = <&hdmi_3p3_reg_en>;
+ pinctrl-names = "default";
+ };
+
vreg_misc_3p3: regulator-misc-3p3 {
compatible = "regulator-fixed";

@@ -545,6 +632,17 @@ &mdss_dp1_out {
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};

+&mdss_dp2 {
+ pinctrl-0 = <&usb2_dp_hot_plug_detect>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&mdss_dp2_out {
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
&mdss_dp3 {
/delete-property/ #sound-dai-cells;

@@ -826,6 +924,27 @@ ec_int_n_default: ec-int-n-state {
bias-disable;
};

+ hdmi_0p95_reg_en: hdmi-0p95-reg-en-state {
+ pins = "gpio55";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ hdmi_1p2_reg_en: hdmi-1p2-reg-en-state {
+ pins = "gpio54";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ hdmi_3p3_reg_en: hdmi-3p3-reg-en-state {
+ pins = "gpio170";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
kybd_default: kybd-default-state {
pins = "gpio67";
function = "gpio";
@@ -1035,6 +1154,29 @@ &usb_1_qmpphy_out {
remote-endpoint = <&pmic_glink_ss_in1>;
};

+&usb_2_qmpphy {
+ /delete-property/ mode-switch;
+ /delete-property/ orientation-switch;
+
+ status = "okay";
+
+ ports {
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /delete-node/ endpoint;
+
+ usb_2_qmpphy_out_dp: endpoint@0 {
+ reg = <0>;
+
+ data-lanes = <3 2 1 0>;
+ remote-endpoint = <&hdmi_bridge_in>;
+ };
+ };
+ };
+};
+
&usb_hs {
dr_mode = "host";

diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi
index 65a398c0a992..2d3f8fe2cf5d 100644
--- a/arch/arm64/boot/dts/qcom/glymur.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur.dtsi
@@ -6793,6 +6793,12 @@ data-pins {
bias-pull-up;
};
};
+
+ usb2_dp_hot_plug_detect: usb2-dp-hot-plug-detect-state {
+ pins = "gpio126";
+ function = "usb2_dp";
+ bias-disable;
+ };
};

ctcu@10001000 {

--
2.34.1