* [PATCH v2 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay
2026-08-13 17:33 [PATCH v2 0/3] arm64: dts: qcom: Add LVDS display overlays for lemans, monaco and rb3gen2 Vishnu Saini
@ 2026-08-13 17:33 ` Vishnu Saini
2026-08-13 17:44 ` sashiko-bot
2026-08-13 17:33 ` [PATCH v2 2/3] arm64: dts: qcom: monaco-evk: " Vishnu Saini
2026-08-13 17:33 ` [PATCH v2 3/3] arm64: dts: qcom: qcs6490-rb3gen2: " Vishnu Saini
2 siblings, 1 reply; 7+ messages in thread
From: Vishnu Saini @ 2026-08-13 17:33 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 for the boe,dv215fhm-r01 panel (matched against the
panel-simple-lvds-dual-ports binding, which supplies the panel's size
and timing internally), 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 | 116 +++++++++++++++++++++
2 files changed, 120 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..82b6eeddbb8b
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/lemans-evk-lvds-boe,dv215fhm-r01.dtso
@@ -0,0 +1,116 @@
+// 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 LVDS";
+
+ panel_lvds: panel-lvds {
+ compatible = "boe,dv215fhm-r01";
+ power-supply = <&lcd_disp_bias>;
+
+ status = "okay";
+
+ 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>;
+ };
+ };
+ };
+ };
+
+ 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 = <<9211c_in>;
+};
+
+&mdss0_dsi0_phy {
+ vdds-supply = <&vreg_l4a>;
+
+ status = "okay";
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH v2 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay
2026-08-13 17:33 ` [PATCH v2 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay Vishnu Saini
@ 2026-08-13 17:44 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-08-13 17:44 UTC (permalink / raw)
To: Vishnu Saini; +Cc: conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Missing driver support for compatible strings 'boe,dv215fhm-r01' and 'lontium,lt9211c'.
--
--- Patch [1]: [PATCH v2 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay ---
commit 982b78f0ee343a881d363b06b3c257a529f0e73b
Author: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
arm64: dts: qcom: lemans-evk: Add LVDS display overlay
This commit adds a device tree overlay for the Lemans EVK IFP mezzanine to
support LVDS display output. It wires up the Lontium LT9211C DSI-to-LVDS
bridge and a BOE dv215fhm-r01 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..82b6eeddbb8b0
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk-lvds-boe,dv215fhm-r01.dtso
[ ... ]
> +&{/} {
> + model = "Qualcomm Technologies, Inc. Lemans EVK LVDS";
> +
> + panel_lvds: panel-lvds {
> + compatible = "boe,dv215fhm-r01";
[Severity: Medium]
Will this panel successfully probe? It looks like the compatible string
"boe,dv215fhm-r01" does not exist in the kernel tree's match tables (e.g.,
in panel-simple.c), and there is no generic fallback compatible string
provided here.
Does the panel driver need to be updated upstream first, or should this node
include a fallback like "panel-lvds" along with explicit DT timings so the
generic driver can bind to it?
> + power-supply = <&lcd_disp_bias>;
> +
> + status = "okay";
[ ... ]
> +&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: Medium]
Is the "lontium,lt9211c" compatible string currently supported by the bridge
driver? It appears the lontium bridge driver might only match against
"lontium,lt9211", which would prevent the driver core from binding to this
bridge node.
Could this use a fallback compatible string (e.g., "lontium,lt9211") if the
devices are sufficiently compatible, or is a driver update missing from this
series?
> + reg = <0x2d>;
> + reset-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
> + vccio-supply = <&vreg_s4a>;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260813-lvds-support-v2-0-6b11035e8ab0@oss.qualcomm.com?part=1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 2/3] arm64: dts: qcom: monaco-evk: Add LVDS display overlay
2026-08-13 17:33 [PATCH v2 0/3] arm64: dts: qcom: Add LVDS display overlays for lemans, monaco and rb3gen2 Vishnu Saini
2026-08-13 17:33 ` [PATCH v2 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay Vishnu Saini
@ 2026-08-13 17:33 ` Vishnu Saini
2026-08-13 17:41 ` sashiko-bot
2026-08-13 17:33 ` [PATCH v2 3/3] arm64: dts: qcom: qcs6490-rb3gen2: " Vishnu Saini
2 siblings, 1 reply; 7+ messages in thread
From: Vishnu Saini @ 2026-08-13 17:33 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 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 for the boe,dv215fhm-r01 panel (matched against the
panel-simple-lvds-dual-ports binding, which supplies the panel's size
and timing internally), and an LCD display bias regulator supplied
through the GPIO expander. DSI power is provided by vreg_l5a.
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 | 117 +++++++++++++++++++++
2 files changed, 121 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..96a53a294863
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/monaco-evk-lvds-boe,dv215fhm-r01.dtso
@@ -0,0 +1,117 @@
+// 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 LVDS";
+
+ panel_lvds: panel-lvds {
+ compatible = "boe,dv215fhm-r01";
+ power-supply = <&lcd_disp_bias>;
+
+ status = "okay";
+
+ 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>;
+ };
+ };
+ };
+ };
+
+ 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 = <<9211c_in>;
+};
+
+&mdss_dsi0_phy {
+ vdds-supply = <&vreg_l4a>;
+
+ status = "okay";
+};
+
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH v2 2/3] arm64: dts: qcom: monaco-evk: Add LVDS display overlay
2026-08-13 17:33 ` [PATCH v2 2/3] arm64: dts: qcom: monaco-evk: " Vishnu Saini
@ 2026-08-13 17:41 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-08-13 17:41 UTC (permalink / raw)
To: Vishnu Saini; +Cc: conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] Missing driver support for lontium,lt9211c compatible string
- [Medium] Missing driver support for boe,dv215fhm-r01 panel compatible string
--
--- Patch [2]: [PATCH v2 2/3] arm64: dts: qcom: monaco-evk: Add LVDS display overlay ---
commit 11e343dd5f10984f8afa017886ae2c19711c5c47
Author: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
arm64: dts: qcom: monaco-evk: Add LVDS display overlay
The commit adds a DTBO overlay for the Monaco-EVK mezzanine that supports
LVDS display output using a Lontium LT9211C bridge and a BOE DV215FHM-R01
panel.
> 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..96a53a294863b
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/monaco-evk-lvds-boe,dv215fhm-r01.dtso
[ ... ]
> +&{/} {
> + model = "Qualcomm Technologies, Inc. Monaco EVK LVDS";
> +
> + panel_lvds: panel-lvds {
> + compatible = "boe,dv215fhm-r01";
[Severity: Medium]
Will this compatible string fail to bind?
The commit message claims this panel is matched against the
panel-simple-lvds-dual-ports binding, which supplies size and timing
internally, but "boe,dv215fhm-r01" appears to be missing from the
panel-simple.c driver.
Since there is no generic fallback (like "panel-lvds") with inline timings
provided here, won't this leave the display unconfigured?
> + power-supply = <&lcd_disp_bias>;
> +
> + status = "okay";
[ ... ]
> +&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";
[Severity: Medium]
Is "lontium,lt9211c" supported by any existing driver?
It looks like this compatible string is absent from any driver's OF match
table, and there is no fallback provided (such as "lontium,lt9211").
Does this cause the I2C device instantiation for the bridge to fail?
> + reg = <0x2d>;
> + reset-gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>;
> + vccio-supply = <&vreg_l5a>;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260813-lvds-support-v2-0-6b11035e8ab0@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 3/3] arm64: dts: qcom: qcs6490-rb3gen2: Add LVDS display overlay
2026-08-13 17:33 [PATCH v2 0/3] arm64: dts: qcom: Add LVDS display overlays for lemans, monaco and rb3gen2 Vishnu Saini
2026-08-13 17:33 ` [PATCH v2 1/3] arm64: dts: qcom: lemans-evk: Add LVDS display overlay Vishnu Saini
2026-08-13 17:33 ` [PATCH v2 2/3] arm64: dts: qcom: monaco-evk: " Vishnu Saini
@ 2026-08-13 17:33 ` Vishnu Saini
2026-08-13 17:58 ` sashiko-bot
2 siblings, 1 reply; 7+ messages in thread
From: Vishnu Saini @ 2026-08-13 17:33 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 the boe,dv215fhm-r01 panel, matched
against the panel-simple-lvds-dual-ports binding which supplies the
panel's size and timing internally.
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 | 6 ++
...industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso | 105 +++++++++++++++++++++
2 files changed, 111 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 85ee28d8f109..8b147cbc0e1e 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -189,6 +189,12 @@ 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..8e60b8631169
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso
@@ -0,0 +1,105 @@
+// 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. Industrial RB3gen2 LVDS";
+
+ hdmi-connector {
+ status = "disabled";
+ };
+
+ panel_lvds: panel-lvds {
+ compatible = "boe,dv215fhm-r01";
+ power-supply = <&lcd_disp_bias>;
+
+ status = "okay";
+
+ 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>;
+ };
+ };
+ };
+ };
+
+ lcd_disp_bias: regulator-lcd-disp-bias {
+ compatible = "regulator-fixed";
+ regulator-name = "lcd_disp_bias";
+ regulator-min-microvolt = <5500000>;
+ regulator-max-microvolt = <5500000>;
+ vin-supply = <&vreg_l18b_1p8>;
+ };
+};
+
+&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_l18b_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>;
+ };
+ };
+ };
+ };
+};
+
+<9611_codec {
+ status = "disabled";
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <<9211c_in>;
+};
+
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH v2 3/3] arm64: dts: qcom: qcs6490-rb3gen2: Add LVDS display overlay
2026-08-13 17:33 ` [PATCH v2 3/3] arm64: dts: qcom: qcs6490-rb3gen2: " Vishnu Saini
@ 2026-08-13 17:58 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-08-13 17:58 UTC (permalink / raw)
To: Vishnu Saini; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Medium] The introduced 'lontium,lt9211c' compatible string is unsupported by the driver and dt-bindings, and lacks a fallback.
- [Medium] The introduced 'boe,dv215fhm-r01' compatible string is unsupported and lacks a fallback.
- [Medium] The reset GPIO for the LT9211C bridge lacks a pinctrl configuration.
--
--- Patch [3]: [PATCH v2 3/3] arm64: dts: qcom: qcs6490-rb3gen2: Add LVDS display overlay ---
commit f8ec082b3378414f04ce77574b9aa99cf0a7904b
Author: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
arm64: dts: qcom: qcs6490-rb3gen2: Add LVDS display overlay
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.
> 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..8e60b8631169a
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-industrial-mezzanine-lvds-boe,dv215fhm-r01.dtso
> @@ -0,0 +1,105 @@
[ ... ]
> +&{/} {
> + model = "Qualcomm Technologies, Inc. Industrial RB3gen2 LVDS";
> +
> + hdmi-connector {
> + status = "disabled";
> + };
> +
> + panel_lvds: panel-lvds {
> + compatible = "boe,dv215fhm-r01";
[Severity: Medium]
Is this compatible string supported by the panel-simple driver?
Without a generic fallback or an explicit panel-timing node in the DT, will
the DRM panel driver fail to attach and leave the display non-functional?
> + power-supply = <&lcd_disp_bias>;
> +
> + status = "okay";
[ ... ]
> +&i2c1 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + status = "okay";
> +
> + lvds_bridge: lvds-bridge@29 {
> + compatible = "lontium,lt9211c";
[Severity: Medium]
Does the upstream lontium-lt9211 driver support the "c" suffix in this
compatible string?
If not, would it be better to provide a fallback like "lontium,lt9211" so
device matching does not fail and the display pipeline can initialize?
> + reg = <0x29>;
> + reset-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
[Severity: Medium]
Does this reset GPIO need a corresponding pinctrl configuration (pinctrl-names,
pinctrl-0)?
On Qualcomm platforms, if the bootloader leaves the pin in an alternate
function, asserting the reset GPIO might not propagate to the physical pad,
causing the bridge to silently fail to come out of reset.
> + vccio-supply = <&vreg_l18b_1p8>;
> +
> + status = "okay";
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260813-lvds-support-v2-0-6b11035e8ab0@oss.qualcomm.com?part=3
^ permalink raw reply [flat|nested] 7+ messages in thread