Below is the routing diagram of dsi lanes from qcs6490 soc to
mezzanine.
DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
|
--> SW2700.1 --> dsi connector
|
--> LT9211c --> LVDS connector
Disable hdmi connector for industrial mezzanine and enable
LT9211c bridge and lvds panel node.
LT9211c is powered by default with reset gpio connected to 117.
Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>
Co-developed-by: Yi Zhang <zhanyi@qti.qualcomm.com>
Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
---
.../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
1 file changed, 106 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
index 619a42b5ef48..cc8ee1643167 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
@@ -8,6 +8,112 @@
#include <dt-bindings/clock/qcom,gcc-sc7280.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+/ {
+
+ hdmi-connector {
+ status = "disabled";
+ };
+
+ panel_lvds: panel-lvds@0 {
+ compatible = "panel-lvds";
+ data-mapping = "vesa-24";
+ width-mm = <476>;
+ height-mm = <268>;
+
+ status = "okay";
+
+ panel-timing {
+ clock-frequency = <148500000>;
+ hactive = <1920>;
+ vactive = <1080>;
+ hfront-porch = <88>;
+ hback-porch = <148>;
+ hsync-len = <44>;
+ vfront-porch = <4>;
+ vback-porch = <36>;
+ vsync-len = <5>;
+ de-active = <1>;
+ };
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ dual-lvds-odd-pixels;
+ panel_in_lvds_odd: endpoint {
+ remote-endpoint = <<9211c_out_odd>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ dual-lvds-even-pixels;
+ panel_in_lvds_even: endpoint {
+ remote-endpoint = <<9211c_out_even>;
+ };
+
+ };
+ };
+ };
+
+};
+
+&i2c1 {
+ status = "okay";
+
+ lvds_bridge: lvds-bridge@29 {
+ compatible = "lontium,lt9211c";
+ reg = <0x29>;
+ reset-gpios = <&tlmm 117 1>;
+
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ lt9211c_in: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ lt9211c_out_odd: endpoint {
+ remote-endpoint = <&panel_in_lvds_odd>;
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+
+ lt9211c_out_even: endpoint {
+ remote-endpoint = <&panel_in_lvds_even>;
+ };
+ };
+ };
+ };
+
+
+};
+
+<9611_codec {
+ status = "disabled";
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <<9211c_in>;
+};
+
&spi11 {
#address-cells = <1>;
#size-cells = <0>;
--
2.34.1
On 1/30/26 11:27 AM, Gopi Botlagunta wrote:
> Below is the routing diagram of dsi lanes from qcs6490 soc to
> mezzanine.
>
> DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
> |
> --> SW2700.1 --> dsi connector
> |
> --> LT9211c --> LVDS connector
>
> Disable hdmi connector for industrial mezzanine and enable
> LT9211c bridge and lvds panel node.
> LT9211c is powered by default with reset gpio connected to 117.
>
> Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>
> Co-developed-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> ---
> .../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
> 1 file changed, 106 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> index 619a42b5ef48..cc8ee1643167 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> @@ -8,6 +8,112 @@
> #include <dt-bindings/clock/qcom,gcc-sc7280.h>
> #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
>
> +/ {
> +
> + hdmi-connector {
Please add a label to this node in the base dts and reference it &as_such,
the current approach is very error-prone
Konrad
On Fri, Jan 30, 2026 at 03:57:25PM +0530, Gopi Botlagunta wrote:
> Below is the routing diagram of dsi lanes from qcs6490 soc to
> mezzanine.
>
> DSI0 --> SW1403.4 --> LT9611uxc --> hdmi port
> |
> --> SW2700.1 --> dsi connector
> |
> --> LT9211c --> LVDS connector
>
> Disable hdmi connector for industrial mezzanine and enable
> LT9211c bridge and lvds panel node.
> LT9211c is powered by default with reset gpio connected to 117.
>
> Signed-off-by: Gopi Botlagunta <venkata.botlagunta@oss.qualcomm.com>
Your SoB should be the last one.
> Co-developed-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> Signed-off-by: Yi Zhang <zhanyi@qti.qualcomm.com>
> ---
> .../qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso | 106 +++++++++++++++++++++
> 1 file changed, 106 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> index 619a42b5ef48..cc8ee1643167 100644
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine.dtso
> @@ -8,6 +8,112 @@
> #include <dt-bindings/clock/qcom,gcc-sc7280.h>
> #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
>
> +/ {
> +
> + hdmi-connector {
> + status = "disabled";
> + };
> +
> + panel_lvds: panel-lvds@0 {
> + compatible = "panel-lvds";
This doesn't match bindings. I think it was pointed out for the previous
revision.
> + data-mapping = "vesa-24";
> + width-mm = <476>;
> + height-mm = <268>;
> +
> + status = "okay";
> +
> + panel-timing {
> + clock-frequency = <148500000>;
> + hactive = <1920>;
> + vactive = <1080>;
> + hfront-porch = <88>;
> + hback-porch = <148>;
> + hsync-len = <44>;
> + vfront-porch = <4>;
> + vback-porch = <36>;
> + vsync-len = <5>;
> + de-active = <1>;
> + };
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + dual-lvds-odd-pixels;
> + panel_in_lvds_odd: endpoint {
> + remote-endpoint = <<9211c_out_odd>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + dual-lvds-even-pixels;
> + panel_in_lvds_even: endpoint {
> + remote-endpoint = <<9211c_out_even>;
> + };
> +
> + };
> + };
> + };
> +
> +};
> +
> +&i2c1 {
> + status = "okay";
> +
> + lvds_bridge: lvds-bridge@29 {
> + compatible = "lontium,lt9211c";
> + reg = <0x29>;
> + reset-gpios = <&tlmm 117 1>;
GPIO_ACTIVE_LOW
pinctrl?
> +
> + status = "okay";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + lt9211c_in: endpoint {
> + data-lanes = <0 1 2 3>;
> + remote-endpoint = <&mdss_dsi0_out>;
> + };
> + };
> +
> + port@2 {
> + reg = <2>;
> +
> + lt9211c_out_odd: endpoint {
> + remote-endpoint = <&panel_in_lvds_odd>;
> + };
> + };
> +
> + port@3 {
> + reg = <3>;
> +
> + lt9211c_out_even: endpoint {
> + remote-endpoint = <&panel_in_lvds_even>;
> + };
> + };
> + };
> + };
> +
> +
> +};
> +
> +<9611_codec {
> + status = "disabled";
> +};
Can't industrial mezz be used without the LVDS panel?
You need to create overlay for this one, adding the panel (properly
described, read the bindings) and disabling HDMI / lt9611uxc.
> +
> +&mdss_dsi0_out {
> + remote-endpoint = <<9211c_in>;
> +};
> +
> &spi11 {
> #address-cells = <1>;
> #size-cells = <0>;
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
© 2016 - 2026 Red Hat, Inc.