Devicetree
 help / color / mirror / Atom feed
* [PATCH 0/3] arm64: dts: qcom: Add LVDS display overlays for lemans, monaco and rb3gen2
@ 2026-07-19 18:05 Vishnu Saini
  2026-07-19 18:05 ` [PATCH 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay Vishnu Saini
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Vishnu Saini @ 2026-07-19 18:05 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Vishnu Saini,
	venkata.valluru, Jessica Zhang

This series adds LVDS display support via device tree overlays for three
Qualcomm platforms: SA8775P Lemans EVK, SA8295P/QCS8300 Monaco EVK, and
QCS6490 RB3 Gen2 industrial mezzanine.

All three platforms use the Lontium LT9211C DSI-to-LVDS bridge chip, which
converts DSI output to dual-channel LVDS for driving 1920x1080 panels.
The overlays follow the established composite-DTB pattern already in use
on these platforms (IFP mezzanine, camera, el2) and are structured to be
applied on top of the existing IFP mezzanine overlay.

Each overlay:
  - Wires the LT9211C bridge to the DSI output via an I2C node
  - Defines a generic dual-channel panel-lvds node with VESA-24 mapping
    targeting a 1920x1080 (476x268mm) panel at 148.5 MHz pixel clock
  - Provides an LCD bias regulator through the GPIO expander

This series depends on:
  [PATCH v6 0/2] This series adds LT9211C bridge driver by extending LT9211
  https://lore.kernel.org/all/20260719-add-lt9211c-bridge-v6-0-e56d22152586@oss.qualcomm.com/

which adds lontium,lt9211c compatible support to the lontium-lt9211 driver
and extends the binding YAML accordingly, and:

  [PATCH] dt-bindings: display: panel-lvds: Add boe,dv215fhm-r01
  https://lore.kernel.org/all/20260719-b4-lvds-panel-doc-v1-1-6a18c213c2f6@oss.qualcomm.com/

which documents the boe,dv215fhm-r01 panel compatible used by these overlays.

Signed-off-by: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
---
Vishnu Saini (3):
      arm64: dts: qcom: lemans-evk: Add LVDS display overlay
      arm64: dts: qcom: monaco-evk: Add LVDS display overlay
      arm64: dts: qcom: qcs6490-rb3gen2: Add LVDS display overlay

 arch/arm64/boot/dts/qcom/Makefile                  |  12 ++
 .../dts/qcom/lemans-evk-lvds-boe,dv215fhm-r01.dtso | 127 ++++++++++++++++++++
 .../dts/qcom/monaco-evk-lvds-boe,dv215fhm-r01.dtso | 131 +++++++++++++++++++++
 ...industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso | 110 +++++++++++++++++
 4 files changed, 380 insertions(+)
---
base-commit: f86573e68e56a7df7d54eb58101ac413ba731996
change-id: 20260708-lvds-support-2d40d60654f1
prerequisite-message-id: <20260719-add-lt9211c-bridge-v6-0-e56d22152586@oss.qualcomm.com>
prerequisite-patch-id: dbba64d1ace696df388c5df3d1cb05a0701df194
prerequisite-patch-id: 7729b9c67a7c274b25fea08635dfede3fc604ae9
prerequisite-message-id: <20260719-b4-lvds-panel-doc-v1-1-6a18c213c2f6@oss.qualcomm.com>
prerequisite-patch-id: 4e67c4a837c7fe490e7c5d34a243543c76685eb5

Best regards,
-- 
Vishnu Saini <vishnu.saini@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay
  2026-07-19 18:05 [PATCH 0/3] arm64: dts: qcom: Add LVDS display overlays for lemans, monaco and rb3gen2 Vishnu Saini
@ 2026-07-19 18:05 ` Vishnu Saini
  2026-07-19 18:17   ` sashiko-bot
  2026-07-19 18:05 ` [PATCH 2/3] arm64: dts: qcom: monaco-evk: " Vishnu Saini
  2026-07-19 18:05 ` [PATCH 3/3] arm64: dts: qcom: qcs6490-rb3gen2: " Vishnu Saini
  2 siblings, 1 reply; 7+ messages in thread
From: Vishnu Saini @ 2026-07-19 18:05 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Vishnu Saini,
	venkata.valluru, Jessica Zhang

The Lemans EVK IFP mezzanine supports LVDS display output using the
Lontium LT9211C DSI-to-LVDS bridge. The bridge is connected to the
DSI0 output and drives a dual-channel 1920x1080 LVDS panel in
VESA-24 mapping.

Add a DTBO overlay, lemans-evk-lvds-boe,dv215fhm-r01.dtso, that wires
up the LT9211C bridge on I2C1 (address 0x2d) with reset on GPIO37,
a panel-lvds node describing the 476x268mm 1080p panel timing, and
an LCD display bias regulator supplied through the GPIO expander.
DSI power is provided by vreg_s4a.

The overlay is built as a composite DTB combining the base
lemans-evk.dtb, the IFP mezzanine overlay, and this LVDS overlay.

Signed-off-by: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/Makefile                  |   4 +
 .../dts/qcom/lemans-evk-lvds-boe,dv215fhm-r01.dtso | 127 +++++++++++++++++++++
 2 files changed, 131 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 5a1c56cf98f6..2c4e7a891717 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -55,6 +55,10 @@ lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
 dtb-$(CONFIG_ARCH_QCOM)	+= lemans-evk-el2.dtb
 lemans-evk-ifp-mezzanine-dtbs	:= lemans-evk.dtb lemans-evk-ifp-mezzanine.dtbo
 dtb-$(CONFIG_ARCH_QCOM)	+= lemans-evk-ifp-mezzanine.dtb
+
+lemans-evk-lvds-boe,dv215fhm-r01-dtbs := lemans-evk.dtb lemans-evk-ifp-mezzanine.dtbo lemans-evk-lvds-boe,dv215fhm-r01.dtbo
+dtb-$(CONFIG_ARCH_QCOM)	+= lemans-evk-lvds-boe,dv215fhm-r01.dtb
+
 dtb-$(CONFIG_ARCH_QCOM)	+= mahua-crd.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= milos-fairphone-fp6.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= milos-nothing-asteroids.dtb
diff --git a/arch/arm64/boot/dts/qcom/lemans-evk-lvds-boe,dv215fhm-r01.dtso b/arch/arm64/boot/dts/qcom/lemans-evk-lvds-boe,dv215fhm-r01.dtso
new file mode 100644
index 000000000000..17c20e86e950
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/lemans-evk-lvds-boe,dv215fhm-r01.dtso
@@ -0,0 +1,127 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+	model = "Qualcomm Technologies, Inc. Lemans-evk Mezzanine Lvds";
+
+	panel_lvds: panel-lvds {
+		compatible = "boe,dv215fhm-r01", "panel-lvds";
+		data-mapping = "vesa-24";
+		width-mm = <476>;
+		height-mm = <268>;
+		power-supply = <&lcd_disp_bias>;
+		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 = <&lt9211c_out_odd>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+				dual-lvds-even-pixels;
+				panel_in_lvds_even: endpoint {
+					remote-endpoint = <&lt9211c_out_even>;
+				};
+			};
+		};
+	};
+
+	lcd_disp_bias: regulator-lcd-disp-bias {
+		compatible = "regulator-fixed";
+		regulator-name = "lcd_disp_bias";
+		regulator-min-microvolt = <5500000>;
+		regulator-max-microvolt = <5500000>;
+		gpio = <&expander3 1 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+};
+
+&i2c1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&qup_i2c1_default>;
+	status = "okay";
+
+	lt9211c_codec: lvds-bridge@2d {
+		compatible = "lontium,lt9211c";
+		reg = <0x2d>;
+		reset-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
+		vccio-supply = <&vreg_s4a>;
+		status = "okay";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+				lt9211c_in: endpoint {
+					data-lanes = <1 2 3 4>;
+					remote-endpoint = <&mdss0_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>;
+				};
+			};
+		};
+	};
+};
+
+&mdss0 {
+	status = "okay";
+};
+
+&mdss0_dsi0 {
+	vdda-supply = <&vreg_l1c>;
+	status = "okay";
+};
+
+&mdss0_dsi0_out {
+	data-lanes = <0 1 2 3>;
+	remote-endpoint = <&lt9211c_in>;
+};
+
+&mdss0_dsi0_phy {
+	vdds-supply = <&vreg_l4a>;
+	status = "okay";
+};

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/3] arm64: dts: qcom: monaco-evk: Add LVDS display overlay
  2026-07-19 18:05 [PATCH 0/3] arm64: dts: qcom: Add LVDS display overlays for lemans, monaco and rb3gen2 Vishnu Saini
  2026-07-19 18:05 ` [PATCH 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay Vishnu Saini
@ 2026-07-19 18:05 ` Vishnu Saini
  2026-07-19 18:15   ` sashiko-bot
  2026-07-19 18:05 ` [PATCH 3/3] arm64: dts: qcom: qcs6490-rb3gen2: " Vishnu Saini
  2 siblings, 1 reply; 7+ messages in thread
From: Vishnu Saini @ 2026-07-19 18:05 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Vishnu Saini,
	venkata.valluru, Jessica Zhang

The Monaco EVK IFP mezzanine supports LVDS display output using the
Lontium LT9211C DSI-to-LVDS bridge. The bridge is connected to the
DSI0 output and drives a dual-channel 1920x1080 LVDS panel in
VESA-24 mapping.

Add a DTBO overlay, monaco-evk-lvds-boe,dv215fhm-r01.dtso, that wires up
the LT9211C bridge on I2C8 (address 0x2d) with reset on GPIO66, a
panel-lvds node describing the 476x268mm 1080p panel timing, and an LCD
display bias regulator supplied through the GPIO expander. DSI power is
provided by vreg_l5a with PHY supply from vreg_l4a.

The overlay is built as a composite DTB combining the base
monaco-evk.dtb, the IFP mezzanine overlay, and this LVDS overlay.

Signed-off-by: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/Makefile                  |   4 +
 .../dts/qcom/monaco-evk-lvds-boe,dv215fhm-r01.dtso | 131 +++++++++++++++++++++
 2 files changed, 135 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 2c4e7a891717..85ee28d8f109 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -73,6 +73,10 @@ monaco-evk-el2-dtbs := monaco-evk.dtb monaco-el2.dtbo
 dtb-$(CONFIG_ARCH_QCOM)	+= monaco-evk-el2.dtb
 monaco-evk-ifp-mezzanine-dtbs	:= monaco-evk.dtb monaco-evk-ifp-mezzanine.dtbo
 dtb-$(CONFIG_ARCH_QCOM)	+= monaco-evk-ifp-mezzanine.dtb
+
+monaco-evk-lvds-boe,dv215fhm-r01-dtbs := monaco-evk.dtb monaco-evk-ifp-mezzanine.dtbo monaco-evk-lvds-boe,dv215fhm-r01.dtbo
+dtb-$(CONFIG_ARCH_QCOM)	+= monaco-evk-lvds-boe,dv215fhm-r01.dtb
+
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8216-samsung-fortuna3g.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-acer-a1-724.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8916-alcatel-idol347.dtb
diff --git a/arch/arm64/boot/dts/qcom/monaco-evk-lvds-boe,dv215fhm-r01.dtso b/arch/arm64/boot/dts/qcom/monaco-evk-lvds-boe,dv215fhm-r01.dtso
new file mode 100644
index 000000000000..d62f6baeca85
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/monaco-evk-lvds-boe,dv215fhm-r01.dtso
@@ -0,0 +1,131 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+	model = "Qualcomm Technologies, Inc. Monaco-EVK Mezzanine Lvds";
+
+	panel_lvds: panel-lvds {
+		compatible = "boe,dv215fhm-r01", "panel-lvds";
+		data-mapping = "vesa-24";
+		width-mm = <476>;
+		height-mm = <268>;
+		power-supply = <&lcd_disp_bias>;
+
+		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 = <&lt9211c_out_odd>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+				dual-lvds-even-pixels;
+				panel_in_lvds_even: endpoint {
+					remote-endpoint = <&lt9211c_out_even>;
+				};
+			};
+		};
+	};
+
+	lcd_disp_bias: regulator-lcd-disp-bias {
+		compatible = "regulator-fixed";
+		regulator-name = "lcd_disp_bias";
+		regulator-min-microvolt = <5500000>;
+		regulator-max-microvolt = <5500000>;
+		gpio = <&expander3 1 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+};
+
+&i2c8 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&qup_i2c8_data_clk>;
+
+	status = "okay";
+
+	lt9211c_codec: lvds-bridge@2d {
+		compatible = "lontium,lt9211c";
+		reg = <0x2d>;
+		reset-gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>;
+		vccio-supply = <&vreg_l5a>;
+
+		status = "okay";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+				lt9211c_in: endpoint {
+					data-lanes = <1 2 3 4>;
+					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>;
+				};
+			};
+		};
+	};
+};
+
+&mdss {
+	status = "okay";
+};
+
+&mdss_dsi0 {
+	vdda-supply = <&vreg_l5a>;
+	status = "okay";
+};
+
+&mdss_dsi0_out {
+	data-lanes = <0 1 2 3>;
+	remote-endpoint = <&lt9211c_in>;
+};
+
+&mdss_dsi0_phy {
+	vdds-supply = <&vreg_l4a>;
+	status = "okay";
+};
+

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/3] arm64: dts: qcom: qcs6490-rb3gen2: Add LVDS display overlay
  2026-07-19 18:05 [PATCH 0/3] arm64: dts: qcom: Add LVDS display overlays for lemans, monaco and rb3gen2 Vishnu Saini
  2026-07-19 18:05 ` [PATCH 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay Vishnu Saini
  2026-07-19 18:05 ` [PATCH 2/3] arm64: dts: qcom: monaco-evk: " Vishnu Saini
@ 2026-07-19 18:05 ` Vishnu Saini
  2026-07-19 18:17   ` sashiko-bot
  2 siblings, 1 reply; 7+ messages in thread
From: Vishnu Saini @ 2026-07-19 18:05 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Vishnu Saini,
	venkata.valluru, Jessica Zhang

The QCS6490 RB3 Gen2 industrial mezzanine supports LVDS display output
using the Lontium LT9211C DSI-to-LVDS bridge as an alternative to the
default HDMI output via the LT9611UXC bridge.

Add a DTBO overlay,
qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso, that
disables HDMI (hdmi-connector and lt9611_codec) and wires up the LT9211C
bridge on I2C1 (address 0x29) with reset on GPIO117. The overlay adds a
dual-channel panel-lvds node for a 1920x1080 panel with VESA-24 mapping and
148.5 MHz pixel clock.

The overlay is built as a composite DTB combining the base
qcs6490-rb3gen2.dtb, the industrial mezzanine overlay, and this LVDS
overlay.

Signed-off-by: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/Makefile                  |   4 +
 ...industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso | 110 +++++++++++++++++++++
 2 files changed, 114 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 85ee28d8f109..bd8db14c5acf 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -189,6 +189,10 @@ qcs6490-rb3gen2-vision-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-vis
 qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-industrial-mezzanine.dtbo
 
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-industrial-mezzanine.dtb
+
+qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-industrial-mezzanine.dtbo qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtbo
+dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtb
+
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-vision-mezzanine.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-thundercomm-minipc-g1iot.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-thundercomm-rubikpi3.dtb
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso
new file mode 100644
index 000000000000..65af68850342
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso
@@ -0,0 +1,110 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+	model = "Qualcomm Technologies, Inc. rb3gen2 industrial mezzanine lvds";
+
+	hdmi-connector {
+		status = "disabled";
+	};
+
+	panel_lvds: panel-lvds {
+		compatible = "boe,dv215fhm-r01", "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 = <&lt9211c_out_odd>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+				dual-lvds-even-pixels;
+				panel_in_lvds_even: endpoint {
+					remote-endpoint = <&lt9211c_out_even>;
+				};
+			};
+		};
+	};
+};
+
+&i2c1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	status = "okay";
+
+	lvds_bridge: lvds-bridge@29 {
+		compatible = "lontium,lt9211c";
+		reg = <0x29>;
+		reset-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+		vccio-supply = <&vreg_l1c_1p8>;
+		status = "okay";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+				lt9211c_in: endpoint {
+					data-lanes = <1 2 3 4>;
+					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>;
+				};
+			};
+		};
+	};
+};
+
+&lt9611_codec {
+	status = "disabled";
+};
+
+&mdss_dsi0_out {
+	remote-endpoint = <&lt9211c_in>;
+};
+

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/3] arm64: dts: qcom: monaco-evk: Add LVDS display overlay
  2026-07-19 18:05 ` [PATCH 2/3] arm64: dts: qcom: monaco-evk: " Vishnu Saini
@ 2026-07-19 18:15   ` sashiko-bot
  0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-07-19 18:15 UTC (permalink / raw)
  To: Vishnu Saini; +Cc: devicetree, robh, conor+dt

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The device tree overlay specifies an unsupported compatible string `lontium,lt9211c` for the LVDS bridge without a valid fallback, preventing the bridge from probing.
- [Low] The `panel-lvds` node defines a dual-port LVDS panel using the `ports` construct, which violates the strict `panel-lvds` generic schema requirements.
--

--- Patch [2]: [PATCH 2/3] arm64: dts: qcom: monaco-evk: Add LVDS display overlay ---
commit c66e770010c2090d7d3ca762b7283b36aac9f68f
Author: Vishnu Saini <vishnu.saini@oss.qualcomm.com>

arm64: dts: qcom: monaco-evk: Add LVDS display overlay

This commit adds a device tree overlay for the Monaco EVK IFP mezzanine to
support an LVDS display using the Lontium LT9211C bridge. It includes the
bridge node, panel timings, and necessary power routing.

> diff --git a/arch/arm64/boot/dts/qcom/monaco-evk-lvds-boe,dv215fhm-r01.dtso b/arch/arm64/boot/dts/qcom/monaco-evk-lvds-boe,dv215fhm-r01.dtso
> new file mode 100644
> index 0000000000000..d62f6baeca858
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/monaco-evk-lvds-boe,dv215fhm-r01.dtso
> @@ -0,0 +1,131 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +
> +&{/} {
> +	model = "Qualcomm Technologies, Inc. Monaco-EVK Mezzanine Lvds";
> +
> +	panel_lvds: panel-lvds {
> +		compatible = "boe,dv215fhm-r01", "panel-lvds";
> +		data-mapping = "vesa-24";
> +		width-mm = <476>;
> +		height-mm = <268>;
> +		power-supply = <&lcd_disp_bias>;
> +
> +		status = "okay";
> +
> +		panel-timing {

[ ... ]

> +		};
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;

[Severity: Low]
Will this ports construct fail device tree schema validation?

The panel-lvds.yaml schema generally mandates unevaluatedProperties: false
and only accepts a single port node, rejecting the ports container used for
dual-link mapping. Does this pass make dtbs_check?

> +				dual-lvds-odd-pixels;
> +				panel_in_lvds_odd: endpoint {
> +					remote-endpoint = <&lt9211c_out_odd>;
> +				};
> +			};

[ ... ]

> +&i2c8 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&qup_i2c8_data_clk>;
> +
> +	status = "okay";
> +
> +	lt9211c_codec: lvds-bridge@2d {
> +		compatible = "lontium,lt9211c";
> +		reg = <0x2d>;

[Severity: High]
Will this bridge actually probe with this compatible string?

The string "lontium,lt9211c" appears to be unhandled by the kernel, lacking
a fallback (such as "lontium,lt9211"). Could this prevent the device from
binding to the driver and leave the display pipeline non-functional?

> +		reset-gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>;
> +		vccio-supply = <&vreg_l5a>;

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260719-lvds-support-v1-0-1f1aca3213ba@oss.qualcomm.com?part=2

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/3] arm64: dts: qcom: qcs6490-rb3gen2: Add LVDS display overlay
  2026-07-19 18:05 ` [PATCH 3/3] arm64: dts: qcom: qcs6490-rb3gen2: " Vishnu Saini
@ 2026-07-19 18:17   ` sashiko-bot
  0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-07-19 18:17 UTC (permalink / raw)
  To: Vishnu Saini; +Cc: devicetree, conor+dt, robh

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] The LVDS bridge device tree node uses an unsupported `compatible` string (`"lontium,lt9211c"`), which will prevent the driver from matching and probing, and lacks a fallback compatible string.
- [Low] The compatible strings `"lontium,lt9211c"` and `"boe,dv215fhm-r01"` are used but not documented in any device tree bindings schema.
- [Low] The `panel-lvds` node defines multiple ports inside a `ports` container, violating the `panel-lvds` DT binding schema.
--

--- Patch [3]: [PATCH 3/3] arm64: dts: qcom: qcs6490-rb3gen2: Add LVDS display overlay ---
commit 8bcbc23969051c16954909a078c84444cd4362af
Author: Vishnu Saini <vishnu.saini@oss.qualcomm.com>

arm64: dts: qcom: qcs6490-rb3gen2: Add LVDS display overlay

This commit adds a DTBO overlay for the QCS6490 RB3 Gen2 industrial mezzanine
to support LVDS display output via the Lontium LT9211C DSI-to-LVDS bridge.
It wires up the LT9211C bridge on I2C1 and adds a dual-channel panel-lvds node.

> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso
> new file mode 100644
> index 0000000000000..65af688503429
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso
> @@ -0,0 +1,110 @@
[ ... ]
> +	hdmi-connector {
> +		status = "disabled";
> +	};
> +
> +	panel_lvds: panel-lvds {
> +		compatible = "boe,dv215fhm-r01", "panel-lvds";

[Severity: Low]
Are these compatible strings documented in the device tree bindings?

A search of the tree reveals no schema definitions for boe,dv215fhm-r01
in the panel bindings. This will cause make dtbs_check validation to fail.

> +		data-mapping = "vesa-24";
> +		width-mm = <476>;
> +		height-mm = <268>;
> +
> +		status = "okay";
[ ... ]
> +		panel-timing {
> +			clock-frequency = <148500000>;
[ ... ]
> +			de-active = <1>;
> +		};
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;

[Severity: Low]
Will this ports container cause a device tree validation failure?

This overlay matches the generic panel-lvds binding, which strictly requires
and only allows a single port property. Panels requiring dual LVDS ports
typically use dedicated schemas that explicitly support a ports container
instead of falling back to the strictly single-port panel-lvds.

> +
> +			port@0 {
> +				reg = <0>;
[ ... ]
> +&i2c1 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	status = "okay";
> +
> +	lvds_bridge: lvds-bridge@29 {
> +		compatible = "lontium,lt9211c";

[Severity: High]
Will the display bridge driver successfully probe with this compatible string?

The upstream Lontium LT9211 driver and its match tables only support and match
the lontium,lt9211 compatible string. Because the overlay specifies
lontium,lt9211c without providing a supported fallback like:

    compatible = "lontium,lt9211c", "lontium,lt9211";

the I2C subsystem might fail to bind the driver to the device,
resulting in a dead display output.

[Severity: Low]
Additionally, is the lontium,lt9211c compatible string documented?

It does not appear to be present in the lontium,lt9211.yaml schema,
which will also trigger dtbs_check warnings during device tree validation.

> +		reg = <0x29>;
> +		reset-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260719-lvds-support-v1-0-1f1aca3213ba@oss.qualcomm.com?part=3

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay
  2026-07-19 18:05 ` [PATCH 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay Vishnu Saini
@ 2026-07-19 18:17   ` sashiko-bot
  0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-07-19 18:17 UTC (permalink / raw)
  To: Vishnu Saini; +Cc: robh, devicetree, conor+dt

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The `lontium,lt9211c` compatible string has no matching driver or fallback, preventing the bridge from probing.
- [Low] The `panel-lvds` node violates the `panel-lvds.yaml` DT schema bindings regarding the compatible string and the use of the `ports` node.
--

--- Patch [1]: [PATCH 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay ---
commit 2607cce8051c05162f525ecd61797d0bdba55e07
Author: Vishnu Saini <vishnu.saini@oss.qualcomm.com>

arm64: dts: qcom: lemans-evk: Add LVDS display overlay

This patch adds a DTBO overlay for the Lemans EVK IFP mezzanine to support
LVDS display output. It wires up a Lontium LT9211C DSI-to-LVDS bridge and a
BOE 1080p LVDS panel.

> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk-lvds-boe,dv215fhm-r01.dtso b/arch/arm64/boot/dts/qcom/lemans-evk-lvds-boe,dv215fhm-r01.dtso
> new file mode 100644
> index 0000000000000..17c20e86e950b
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk-lvds-boe,dv215fhm-r01.dtso
[ ... ]
> +	panel_lvds: panel-lvds {
> +		compatible = "boe,dv215fhm-r01", "panel-lvds";

[Severity: Low]
Will this cause dtbs_check validation failures? The panel-lvds.yaml schema
does not currently document the "boe,dv215fhm-r01" compatible string.

> +		data-mapping = "vesa-24";
> +		width-mm = <476>;
> +		height-mm = <268>;
> +		power-supply = <&lcd_disp_bias>;
> +		status = "okay";
> +
> +		panel-timing {
[ ... ]
> +		};
> +
> +		ports {

[Severity: Low]
Additionally, while the Linux DRM driver successfully parses the ports node
for dual-link LVDS at runtime, the panel-lvds.yaml schema restricts the
node to a strict single port. Will this trigger unevaluatedProperties warnings
during schema compilation?

> +			#address-cells = <1>;
> +			#size-cells = <0>;
[ ... ]
> +&i2c1 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&qup_i2c1_default>;
> +	status = "okay";
> +
> +	lt9211c_codec: lvds-bridge@2d {
> +		compatible = "lontium,lt9211c";

[Severity: High]
Is there a matching driver or fallback for this compatible string? 

The existing driver in drivers/gpu/drm/bridge/lontium-lt9211.c only binds to
"lontium,lt9211". Without a valid fallback here, will the bridge fail to
probe and leave the LVDS display dead?

> +		reg = <0x2d>;
> +		reset-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260719-lvds-support-v1-0-1f1aca3213ba@oss.qualcomm.com?part=1

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-07-19 18:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-19 18:05 [PATCH 0/3] arm64: dts: qcom: Add LVDS display overlays for lemans, monaco and rb3gen2 Vishnu Saini
2026-07-19 18:05 ` [PATCH 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay Vishnu Saini
2026-07-19 18:17   ` sashiko-bot
2026-07-19 18:05 ` [PATCH 2/3] arm64: dts: qcom: monaco-evk: " Vishnu Saini
2026-07-19 18:15   ` sashiko-bot
2026-07-19 18:05 ` [PATCH 3/3] arm64: dts: qcom: qcs6490-rb3gen2: " Vishnu Saini
2026-07-19 18:17   ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox