[PATCH v2 1/2] arm64: dts: qcom: monaco: add lt8713sx bridge with displayport

From: Vishnu Saini

Date: Fri Dec 19 2025 - 06:33:17 EST


Monaco-evk has LT8713sx which act as DP to 3 DP output
converter. Edp PHY from monaco soc is connected to lt8713sx
as input and output of lt8713sx is connected to 3 mini DP ports.

Two ports are available in mainboard and one port
is available on Mezz board.

lt8713sx is connected to soc over i2c0 and with reset gpio
connected to pin6 of ioexpander5.

Enable the edp nodes from monaco and enable lontium lt8713sx
bridge node.

Co-developed-by: Prahlad Valluru <vvalluru@xxxxxxxxxxxxxxxx>
Signed-off-by: Prahlad Valluru <vvalluru@xxxxxxxxxxxxxxxx>
Signed-off-by: Vishnu Saini <vishnu.saini@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/monaco-evk.dts | 94 +++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/qcom/monaco.dtsi | 6 +++
2 files changed, 100 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/monaco-evk.dts b/arch/arm64/boot/dts/qcom/monaco-evk.dts
index bb35893da73d..eb321867f1de 100644
--- a/arch/arm64/boot/dts/qcom/monaco-evk.dts
+++ b/arch/arm64/boot/dts/qcom/monaco-evk.dts
@@ -32,6 +32,30 @@ dmic: audio-codec-0 {
num-channels = <1>;
};

+ dp-connector0 {
+ compatible = "dp-connector";
+ label = "DP";
+ type = "mini";
+
+ port {
+ dp0_connector_in: endpoint {
+ remote-endpoint = <&lt8713sx_dp0_out>;
+ };
+ };
+ };
+
+ dp-connector1 {
+ compatible = "dp-connector";
+ label = "DP";
+ type = "mini";
+
+ port {
+ dp1_connector_in: endpoint {
+ remote-endpoint = <&lt8713sx_dp1_out>;
+ };
+ };
+ };
+
max98357a: audio-codec-1 {
compatible = "maxim,max98357a";
#sound-dai-cells = <0>;
@@ -317,6 +341,45 @@ &gpu_zap_shader {
firmware-name = "qcom/qcs8300/a623_zap.mbn";
};

+&i2c0 {
+ pinctrl-0 = <&qup_i2c0_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+
+ bridge@4f {
+ compatible = "lontium,lt8713sx";
+ reg = <0x4f>;
+ reset-gpios = <&expander5 6 GPIO_ACTIVE_LOW>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ lt8713sx_dp_in: endpoint {
+ remote-endpoint = <&mdss_dp0_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ lt8713sx_dp0_out: endpoint {
+ remote-endpoint = <&dp0_connector_in>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+ lt8713sx_dp1_out: endpoint {
+ remote-endpoint = <&dp1_connector_in>;
+ };
+ };
+ };
+ };
+};
+
&i2c1 {
pinctrl-0 = <&qup_i2c1_default>;
pinctrl-names = "default";
@@ -396,6 +459,30 @@ expander6: gpio@3e {
};
};

+&mdss {
+ status = "okay";
+};
+
+&mdss_dp0 {
+ pinctrl-0 = <&dp_hot_plug_det>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&mdss_dp0_out {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+ remote-endpoint = <&lt8713sx_dp_in>;
+};
+
+&mdss_dp0_phy {
+ vdda-phy-supply = <&vreg_l5a>;
+ vdda-pll-supply = <&vreg_l4a>;
+
+ status = "okay";
+};
+
&iris {
status = "okay";
};
@@ -451,6 +538,13 @@ ethernet0_mdio: ethernet0-mdio-pins {
};
};

+ qup_i2c0_default: qup-i2c0-state {
+ pins = "gpio17", "gpio18";
+ function = "qup0_se0";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
qup_i2c1_default: qup-i2c1-state {
pins = "gpio19", "gpio20";
function = "qup0_se1";
diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index e44fd5c33816..7f6c681fb1b4 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -5117,6 +5117,12 @@ tlmm: pinctrl@f100000 {
#interrupt-cells = <2>;
wakeup-parent = <&pdc>;

+ dp_hot_plug_det: dp-hot-plug-det-state {
+ pins = "gpio94";
+ function = "edp0_hot";
+ bias-disable;
+ };
+
hs0_mi2s_active: hs0-mi2s-active-state {
pins = "gpio106", "gpio107", "gpio108", "gpio109";
function = "hs0_mi2s";

--
2.34.1