* [PATCH 0/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V1 and V2
@ 2026-08-13 13:33 Leonardo Costa
2026-08-13 13:33 ` [PATCH 1/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS Leonardo Costa
` (5 more replies)
0 siblings, 6 replies; 12+ messages in thread
From: Leonardo Costa @ 2026-08-13 13:33 UTC (permalink / raw)
To: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
From: Leonardo Costa <leonardo.costa@toradex.com>
This series adds device tree overlays for the Toradex Capacitive Touch
Display 10.1" LVDS V1 and V2 with the Verdin iMX8M Plus SoM.
The display addition covers two interface types:
- Native LCDIF (LVDS)
- DSI-to-LVDS adapter based on the SN65DSI84
This change depends on other patch series, and should be applied after
it:
- https://lore.kernel.org/linux-arm-kernel/20260623195741.495734-1-leoreis.costa@gmail.com/T/#t
Adds the Toradex Capacitive Touch Display 10.1" LVDS V2 overlays for
the Verdin AM62. This series is required because it adds the panel
bindings for the display. It is currently in linux-next.
Leonardo Costa (6):
arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch
Display 10.1" LVDS
arm64: dts: freescale: imx8mp-verdin: Add Toradex DSI to LVDS adapter
with 10.1" display
arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex
Display 10.1" LVDS
arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch
Display 10.1" LVDS V2
arm64: dts: freescale: imx8mp-verdin: Add Toradex DSI to LVDS adapter
with the 10.1" V2 display
arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex
Display 10.1" LVDS V2
arch/arm64/boot/dts/freescale/Makefile | 31 +++++
...zanine-panel-cap-touch-10inch-lvds-v2.dtso | 107 +++++++++++++++
...mezzanine-panel-cap-touch-10inch-lvds.dtso | 71 ++++++++++
...in-dsi-to-lvds-panel-cap-touch-10inch.dtso | 94 +++++++++++++
...dsi-to-lvds-v2-panel-cap-touch-10inch.dtso | 129 ++++++++++++++++++
...verdin-panel-cap-touch-10inch-lvds-v2.dtso | 118 ++++++++++++++++
...mp-verdin-panel-cap-touch-10inch-lvds.dtso | 95 +++++++++++++
7 files changed, 645 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtso
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtso
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dsi-to-lvds-v2-panel-cap-touch-10inch.dtso
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-panel-cap-touch-10inch-lvds-v2.dtso
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-panel-cap-touch-10inch-lvds.dtso
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS
2026-08-13 13:33 [PATCH 0/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V1 and V2 Leonardo Costa
@ 2026-08-13 13:33 ` Leonardo Costa
2026-08-13 13:33 ` [PATCH 2/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex DSI to LVDS adapter with 10.1" display Leonardo Costa
` (4 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Leonardo Costa @ 2026-08-13 13:33 UTC (permalink / raw)
To: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
From: Leonardo Costa <leonardo.costa@toradex.com>
Add a device tree overlay for the Toradex Capacitive Touch Display 10.1"
LVDS connected via Verdin iMX8M Plus LCDIF on carrier boards exposing LVDS
interface (e.g., Mallow). The panel is a LogicTechno LT170410-2WHC 10.1"
WXGA IPS LCD and the touch input is provided by an Atmel MaxTouch
capacitive touch controller.
Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 6 ++
...mp-verdin-panel-cap-touch-10inch-lvds.dtso | 95 +++++++++++++++++++
2 files changed, 101 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-panel-cap-touch-10inch-lvds.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 201460ee5669..d643f85baa7f 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -514,13 +514,19 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-ivy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-zinnia.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-panel-cap-touch-10inch-lvds.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-ivy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-zinnia.dtb
+imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds-dtbs := \
+ imx8mp-verdin-wifi-mallow.dtb \
+ imx8mp-verdin-panel-cap-touch-10inch-lvds.dtbo
+
imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0.dtbo
imx8mp-evk-lvds0-imx-lvds-hdmi-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds0-imx-lvds-hdmi.dtbo
imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-panel-cap-touch-10inch-lvds.dtso b/arch/arm64/boot/dts/freescale/imx8mp-verdin-panel-cap-touch-10inch-lvds.dtso
new file mode 100644
index 000000000000..9079c6284dfa
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-panel-cap-touch-10inch-lvds.dtso
@@ -0,0 +1,95 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * Toradex Capacitive Touch Display 10.1" connected via Verdin iMX8M Plus LCDIF
+ * on carrier boards with a Toradex standard LVDS display connector
+ * (e.g., Mallow).
+ *
+ * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
+ * https://www.toradex.com/accessories/capacitive-touch-display-10.1-inch-lvds
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/imx8mp-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pwm/pwm.h>
+
+#include "imx8mp-pinfunc.h"
+
+&{/} {
+ panel-lvds-native {
+ compatible = "logictechno,lt170410-2whc";
+ backlight = <&backlight>;
+ power-supply = <®_3p3v>;
+
+ port {
+ panel_lvds_native_in: endpoint {
+ remote-endpoint = <&ldb_lvds_ch0>;
+ };
+ };
+ };
+};
+
+&backlight {
+ /* Verdin PWM_2 (SODIMM 16) */
+ pwms = <&pwm2 0 6666667 PWM_POLARITY_INVERTED>;
+
+ status = "okay";
+};
+
+&iomuxc {
+ pinctrl_i2s_2_d_in_gpio: gpio4io30grp {
+ fsl,pins = <MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30 0x1c4>; /* SODIMM 48 */
+ };
+
+ pinctrl_i2s_2_sync_gpio: gpio4io31grp {
+ fsl,pins = <MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31 0x184>; /* SODIMM 44 */
+ };
+};
+
+&atmel_mxt_ts_mezzanine {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2s_2_d_in_gpio>, <&pinctrl_i2s_2_sync_gpio>;
+ /* Verdin I2S_2_SYNC as GPIO (SODIMM 44) */
+ interrupt-parent = <&gpio4>;
+ interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
+ /* Verdin I2S_2_D_IN as GPIO (SODIMM 48) */
+ reset-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>;
+ vdd-supply = <®_3p3v>;
+
+ status = "okay";
+};
+
+&lcdif2 {
+ status = "okay";
+};
+
+&lvds_bridge {
+ assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
+ <&clk IMX8MP_VIDEO_PLL1>;
+ /*
+ * This display uses 71.1 MHz pixel clock, so IMX8MP_VIDEO_PLL1 needs
+ * to be 7 times 71.1MHz, or 497.7 MHz as the internal divider will
+ * always divide the output LVDS clock by 7.
+ */
+ assigned-clock-rates = <0>, <497700000>;
+
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ ldb_lvds_ch0: endpoint {
+ remote-endpoint = <&panel_lvds_native_in>;
+ };
+ };
+ };
+};
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex DSI to LVDS adapter with 10.1" display
2026-08-13 13:33 [PATCH 0/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V1 and V2 Leonardo Costa
2026-08-13 13:33 ` [PATCH 1/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS Leonardo Costa
@ 2026-08-13 13:33 ` Leonardo Costa
2026-08-13 13:33 ` [PATCH 3/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS Leonardo Costa
` (3 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Leonardo Costa @ 2026-08-13 13:33 UTC (permalink / raw)
To: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
From: Leonardo Costa <leonardo.costa@toradex.com>
Add a device tree overlay for the Toradex DSI to LVDS Adapter with the
Toradex Capacitive Touch Display 10.1" LVDS. The adapter connects to the
Verdin DSI_1 interface. It is based on the Texas Instruments SN65DSI84
DSI-to-LVDS bridge and drives a LogicTechno LT170410-2WHC 10.1" WXGA LVDS
panel. Touch input is provided by an Atmel MaxTouch capacitive touch
controller.
Link: https://developer.toradex.com/hardware/accessories/add-ons/dsi-lvds-adapter
Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 5 +
...in-dsi-to-lvds-panel-cap-touch-10inch.dtso | 94 +++++++++++++++++++
2 files changed, 99 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index d643f85baa7f..c55269a0532a 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -508,6 +508,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw73xx-2x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw75xx-2x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw82xx-2x.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-ivy.dtb
@@ -517,12 +518,16 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-zinnia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-panel-cap-touch-10inch-lvds.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-ivy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-zinnia.dtb
+imx8mp-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch-dtbs := \
+ imx8mp-verdin-wifi-dev.dtb \
+ imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtbo
imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds-dtbs := \
imx8mp-verdin-wifi-mallow.dtb \
imx8mp-verdin-panel-cap-touch-10inch-lvds.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtso b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtso
new file mode 100644
index 000000000000..da05a0256889
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtso
@@ -0,0 +1,94 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * Toradex DSI to LVDS Adapter on Verdin DSI_1 with Capacitive Touch Display
+ * 10.1", used on Dahlia (X17) and Development Board (X48) that expose DSI_1
+ * via a Samtec LSS-130 connector.
+ *
+ * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
+ * https://www.toradex.com/accessories/capacitive-touch-display-10.1-inch-lvds
+ * https://developer.toradex.com/hardware/accessories/add-ons/dsi-lvds-adapter
+ * https://www.toradex.com/accessories/verdin-dsi-to-lvds-adapter
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+&{/} {
+ panel-lvds-bridge {
+ compatible = "logictechno,lt170410-2whc";
+ backlight = <&backlight>;
+ power-supply = <®_dsi_lvds>;
+
+ port {
+ panel_lvds_bridge_in: endpoint {
+ remote-endpoint = <&dsi_lvds_bridge_out>;
+ };
+ };
+ };
+
+ reg_dsi_lvds: regulator-dsi-lvds {
+ compatible = "regulator-fixed";
+ /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+ gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-boot-on;
+ regulator-name = "DSI_1_PWR_EN";
+ };
+};
+
+&atmel_mxt_ts {
+ vdd-supply = <®_dsi_lvds>;
+
+ status = "okay";
+};
+
+&backlight {
+ status = "okay";
+};
+
+&lcdif1 {
+ status = "okay";
+};
+
+&lvds_ti_sn65dsi84 {
+ vcc-supply = <®_dsi_lvds>;
+
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ dsi_lvds_bridge_in: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&mipi_dsi_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ dsi_lvds_bridge_out: endpoint {
+ remote-endpoint = <&panel_lvds_bridge_in>;
+ };
+ };
+ };
+};
+
+&mipi_dsi {
+ samsung,esc-clock-frequency = <16000000>;
+
+ status = "okay";
+};
+
+&mipi_dsi_out {
+ remote-endpoint = <&dsi_lvds_bridge_in>;
+};
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS
2026-08-13 13:33 [PATCH 0/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V1 and V2 Leonardo Costa
2026-08-13 13:33 ` [PATCH 1/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS Leonardo Costa
2026-08-13 13:33 ` [PATCH 2/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex DSI to LVDS adapter with 10.1" display Leonardo Costa
@ 2026-08-13 13:33 ` Leonardo Costa
2026-08-13 13:33 ` [PATCH 4/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V2 Leonardo Costa
` (2 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Leonardo Costa @ 2026-08-13 13:33 UTC (permalink / raw)
To: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
From: Leonardo Costa <leonardo.costa@toradex.com>
Add a device tree overlay enabling the Toradex Capacitive Touch Display
10.1" LVDS on the Verdin Development Board with Verdin iMX8M Plus
Mezzanine expansion board. The panel connects via the i.MX8M Plus LCDIF
on the Mezzanine LVDS interface (J10). The panel is a LogicTechno
LT170410-2WHC 10.1" WXGA IPS LCD and the touch input is provided by an
Atmel MaxTouch capacitive touch controller.
Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
Link: https://developer.toradex.com/hardware/verdin-som-family/add-ons/verdin-imx8m-plus-mezzanine
Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 5 ++
...mezzanine-panel-cap-touch-10inch-lvds.dtso | 71 +++++++++++++++++++
2 files changed, 76 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index c55269a0532a..37ae0954d02f 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -508,6 +508,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw73xx-2x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw75xx-2x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw82xx-2x.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dev.dtb
@@ -519,6 +520,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-panel-cap-touch-10inch-lvds.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-ivy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds.dtb
@@ -528,6 +530,9 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-zinnia.dtb
imx8mp-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch-dtbs := \
imx8mp-verdin-wifi-dev.dtb \
imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtbo
+imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds-dtbs := \
+ imx8mp-verdin-wifi-dev.dtb \
+ imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtbo
imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds-dtbs := \
imx8mp-verdin-wifi-mallow.dtb \
imx8mp-verdin-panel-cap-touch-10inch-lvds.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtso b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtso
new file mode 100644
index 000000000000..ce426288081c
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtso
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * Toradex Capacitive Touch Display 10.1" LVDS on the Verdin iMX8M Plus
+ * Mezzanine LVDS interface (J10), used with the Verdin Development Board.
+ *
+ * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
+ * https://www.toradex.com/accessories/capacitive-touch-display-10.1-inch-lvds
+ * https://developer.toradex.com/hardware/verdin-som-family/add-ons/verdin-imx8m-plus-mezzanine
+ * https://www.toradex.com/accessories/verdin-imx8m-plus-mezzanine
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/imx8mp-clock.h>
+
+#include "imx8mp-pinfunc.h"
+
+&{/} {
+ panel-lvds-native {
+ compatible = "logictechno,lt170410-2whc";
+ backlight = <&backlight_mezzanine>;
+ power-supply = <®_3p3v>;
+
+ port {
+ panel_lvds_native_in: endpoint {
+ remote-endpoint = <&ldb_lvds_ch0>;
+ };
+ };
+ };
+};
+
+&atmel_mxt_ts_mezzanine {
+ status = "okay";
+};
+
+&backlight_mezzanine {
+ status = "okay";
+};
+
+&lcdif2 {
+ status = "okay";
+};
+
+&lvds_bridge {
+ assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
+ <&clk IMX8MP_VIDEO_PLL1>;
+ /*
+ * This display uses 71.1 MHz pixel clock, so IMX8MP_VIDEO_PLL1 needs
+ * to be 7 times 71.1MHz, or 497.7 MHz as the internal divider will
+ * always divide the output LVDS clock by 7.
+ */
+ assigned-clock-rates = <0>, <497700000>;
+
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ ldb_lvds_ch0: endpoint {
+ remote-endpoint = <&panel_lvds_native_in>;
+ };
+ };
+ };
+};
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V2
2026-08-13 13:33 [PATCH 0/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V1 and V2 Leonardo Costa
` (2 preceding siblings ...)
2026-08-13 13:33 ` [PATCH 3/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS Leonardo Costa
@ 2026-08-13 13:33 ` Leonardo Costa
2026-08-13 13:33 ` [PATCH 5/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex DSI to LVDS adapter with the 10.1" V2 display Leonardo Costa
2026-08-13 13:33 ` [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2 Leonardo Costa
5 siblings, 0 replies; 12+ messages in thread
From: Leonardo Costa @ 2026-08-13 13:33 UTC (permalink / raw)
To: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
From: Leonardo Costa <leonardo.costa@toradex.com>
Add a device tree overlay for the Toradex Capacitive Touch Display 10.1"
LVDS V2 connected via Verdin iMX8M Plus LCDIF on carrier boards exposing
LVDS interface (e.g., Mallow). The panel is an Opto Logic
SCX1001511GGC49 10.1" WXGA TFT LCD and the touch input is provided by an
ILITEK ILI251x capacitive touch controller.
Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 5 +
...verdin-panel-cap-touch-10inch-lvds-v2.dtso | 118 ++++++++++++++++++
2 files changed, 123 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-panel-cap-touch-10inch-lvds-v2.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 37ae0954d02f..2bfed5ac66ac 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -517,6 +517,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-zinnia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-panel-cap-touch-10inch-lvds.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-panel-cap-touch-10inch-lvds-v2.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch.dtb
@@ -524,6 +525,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inc
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-ivy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds-v2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-zinnia.dtb
@@ -536,6 +538,9 @@ imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds-dtbs := \
imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds-dtbs := \
imx8mp-verdin-wifi-mallow.dtb \
imx8mp-verdin-panel-cap-touch-10inch-lvds.dtbo
+imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds-v2-dtbs := \
+ imx8mp-verdin-wifi-mallow.dtb \
+ imx8mp-verdin-panel-cap-touch-10inch-lvds-v2.dtbo
imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0.dtbo
imx8mp-evk-lvds0-imx-lvds-hdmi-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds0-imx-lvds-hdmi.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-panel-cap-touch-10inch-lvds-v2.dtso b/arch/arm64/boot/dts/freescale/imx8mp-verdin-panel-cap-touch-10inch-lvds-v2.dtso
new file mode 100644
index 000000000000..6b0c1a10ae2a
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-panel-cap-touch-10inch-lvds-v2.dtso
@@ -0,0 +1,118 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * Toradex Capacitive Touch Display 10.1" V2 connected via Verdin iMX8M Plus
+ * LCDIF on carrier boards with a Toradex standard LVDS display connector
+ * (e.g., Mallow).
+ *
+ * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
+ * https://www.toradex.com/accessories/capacitive-touch-display-10.1-inch-lvds
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/imx8mp-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+#include "imx8mp-pinfunc.h"
+
+&{/} {
+ panel-lvds-native {
+ compatible = "optologic,scx1001511ggc49", "panel-lvds";
+ backlight = <&backlight>;
+ data-mapping = "vesa-24";
+ power-supply = <®_3p3v>;
+ height-mm = <136>;
+ width-mm = <217>;
+
+ panel-timing {
+ clock-frequency = <64500000>;
+ hactive = <1280>;
+ hback-porch = <20>;
+ hfront-porch = <20>;
+ hsync-len = <2>;
+ vactive = <800>;
+ vback-porch = <5>;
+ vfront-porch = <5>;
+ vsync-len = <3>;
+ de-active = <1>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ pixelclk-active = <0>;
+ };
+
+ port {
+ panel_lvds_native_in: endpoint {
+ remote-endpoint = <&ldb_lvds_ch0>;
+ };
+ };
+ };
+};
+
+&backlight {
+ /* Verdin PWM_2 (SODIMM 16) */
+ pwms = <&pwm2 0 6666667 0>;
+
+ status = "okay";
+};
+
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen@41 {
+ compatible = "ilitek,ili251x";
+ reg = <0x41>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2s_2_d_in_gpio>,
+ <&pinctrl_i2s_2_sync_gpio>;
+ /* Verdin I2S_2_SYNC as GPIO (SODIMM 44) */
+ interrupt-parent = <&gpio4>;
+ interrupts = <31 IRQ_TYPE_EDGE_RISING>;
+ /* Verdin I2S_2_D_IN as GPIO (SODIMM 48) */
+ reset-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&iomuxc {
+ pinctrl_i2s_2_d_in_gpio: gpio4io30grp {
+ fsl,pins = <MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30 0x1c4>; /* SODIMM 48 */
+ };
+
+ pinctrl_i2s_2_sync_gpio: gpio4io31grp {
+ fsl,pins = <MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31 0x184>; /* SODIMM 44 */
+ };
+};
+
+&lcdif2 {
+ status = "okay";
+};
+
+&lvds_bridge {
+ assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
+ <&clk IMX8MP_VIDEO_PLL1>;
+ /*
+ * This display uses 64.5 MHz pixel clock, so IMX8MP_VIDEO_PLL1 needs
+ * to be 7 times 64.5MHz, or 451.5 MHz as the internal divider will
+ * always divide the output LVDS clock by 7.
+ */
+ assigned-clock-rates = <0>, <451500000>;
+
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ ldb_lvds_ch0: endpoint {
+ remote-endpoint = <&panel_lvds_native_in>;
+ };
+ };
+ };
+};
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 5/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex DSI to LVDS adapter with the 10.1" V2 display
2026-08-13 13:33 [PATCH 0/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V1 and V2 Leonardo Costa
` (3 preceding siblings ...)
2026-08-13 13:33 ` [PATCH 4/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V2 Leonardo Costa
@ 2026-08-13 13:33 ` Leonardo Costa
2026-08-13 13:33 ` [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2 Leonardo Costa
5 siblings, 0 replies; 12+ messages in thread
From: Leonardo Costa @ 2026-08-13 13:33 UTC (permalink / raw)
To: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
From: Leonardo Costa <leonardo.costa@toradex.com>
Add a device tree overlay for the Toradex DSI to LVDS Adapter with the
Toradex Capacitive Touch Display 10.1" LVDS V2. The adapter connects to the
Verdin DSI_1 interface. It is based on the Texas Instruments SN65DSI84
DSI-to-LVDS bridge and drives an Opto Logic SCX1001511GGC49 10.1" WXGA TFT
LCD LVDS panel. Touch input is provided by an ILITEK ILI251x capacitive
touch controller.
Link: https://developer.toradex.com/hardware/accessories/add-ons/dsi-lvds-adapter
Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 5 +
...dsi-to-lvds-v2-panel-cap-touch-10inch.dtso | 129 ++++++++++++++++++
2 files changed, 134 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dsi-to-lvds-v2-panel-cap-touch-10inch.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 2bfed5ac66ac..236bfb6a1e19 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -510,6 +510,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw75xx-2x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw82xx-2x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dsi-to-lvds-v2-panel-cap-touch-10inch.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-ivy.dtb
@@ -521,6 +522,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-panel-cap-touch-10inch-lvds-v2.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-dsi-to-lvds-v2-panel-cap-touch-10inch.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-ivy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb
@@ -532,6 +534,9 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-zinnia.dtb
imx8mp-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch-dtbs := \
imx8mp-verdin-wifi-dev.dtb \
imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtbo
+imx8mp-verdin-wifi-dev-dsi-to-lvds-v2-panel-cap-touch-10inch-dtbs := \
+ imx8mp-verdin-wifi-dev.dtb \
+ imx8mp-verdin-dsi-to-lvds-v2-panel-cap-touch-10inch.dtbo
imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds-dtbs := \
imx8mp-verdin-wifi-dev.dtb \
imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dsi-to-lvds-v2-panel-cap-touch-10inch.dtso b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dsi-to-lvds-v2-panel-cap-touch-10inch.dtso
new file mode 100644
index 000000000000..32828e9bc534
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dsi-to-lvds-v2-panel-cap-touch-10inch.dtso
@@ -0,0 +1,129 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * Toradex DSI to LVDS Adapter on Verdin DSI_1 with Capacitive Touch Display
+ * 10.1" V2, used on Dahlia (X17) and Development Board (X48) that expose DSI_1
+ * via a Samtec LSS-130 connector.
+ *
+ * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
+ * https://www.toradex.com/accessories/capacitive-touch-display-10.1-inch-lvds
+ * https://developer.toradex.com/hardware/accessories/add-ons/dsi-lvds-adapter
+ * https://www.toradex.com/accessories/verdin-dsi-to-lvds-adapter
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+&{/} {
+ panel-lvds-bridge {
+ compatible = "optologic,scx1001511ggc49", "panel-lvds";
+ backlight = <&backlight>;
+ data-mapping = "vesa-24";
+ power-supply = <®_dsi_lvds>;
+ height-mm = <136>;
+ width-mm = <217>;
+
+ panel-timing {
+ clock-frequency = <70000000>;
+ hactive = <1280>;
+ hback-porch = <55>;
+ hfront-porch = <55>;
+ hsync-len = <45>;
+ vactive = <800>;
+ vback-porch = <5>;
+ vfront-porch = <5>;
+ vsync-len = <3>;
+ de-active = <1>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ pixelclk-active = <0>;
+ };
+
+ port {
+ panel_lvds_bridge_in: endpoint {
+ remote-endpoint = <&dsi_lvds_bridge_out>;
+ };
+ };
+ };
+
+ reg_dsi_lvds: regulator-dsi-lvds {
+ compatible = "regulator-fixed";
+ /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+ gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-boot-on;
+ regulator-name = "DSI_1_PWR_EN";
+ };
+};
+
+&backlight {
+ /* Verdin PWM_3_DSI (SODIMM 19) - PWM_3_DSI_LVDS */
+ pwms = <&pwm3 0 6666667 0>;
+
+ status = "okay";
+};
+
+&i2c4 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen@41 {
+ compatible = "ilitek,ili251x";
+ reg = <0x41>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpio_9_dsi>,
+ <&pinctrl_i2s_2_bclk_touch_reset>;
+ /* Verdin GPIO_9_DSI (SODIMM 17) - TOUCH_INT# */
+ /* Rising edge avoids spurious interrupts from the noisy falling edge. */
+ interrupt-parent = <&gpio4>;
+ interrupts = <25 IRQ_TYPE_EDGE_RISING>;
+ /* Verdin I2S_2_BCLK (SODIMM 42) - TOUCH_RESET# */
+ reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&lcdif1 {
+ status = "okay";
+};
+
+&lvds_ti_sn65dsi84 {
+ vcc-supply = <®_dsi_lvds>;
+
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ dsi_lvds_bridge_in: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&mipi_dsi_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ dsi_lvds_bridge_out: endpoint {
+ remote-endpoint = <&panel_lvds_bridge_in>;
+ };
+ };
+ };
+};
+
+&mipi_dsi {
+ samsung,esc-clock-frequency = <16000000>;
+
+ status = "okay";
+};
+
+&mipi_dsi_out {
+ remote-endpoint = <&dsi_lvds_bridge_in>;
+};
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2
2026-08-13 13:33 [PATCH 0/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V1 and V2 Leonardo Costa
` (4 preceding siblings ...)
2026-08-13 13:33 ` [PATCH 5/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex DSI to LVDS adapter with the 10.1" V2 display Leonardo Costa
@ 2026-08-13 13:33 ` Leonardo Costa
2026-08-13 14:58 ` Frank Li
5 siblings, 1 reply; 12+ messages in thread
From: Leonardo Costa @ 2026-08-13 13:33 UTC (permalink / raw)
To: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt
Cc: imx, linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
From: Leonardo Costa <leonardo.costa@toradex.com>
Add a device tree overlay enabling the Toradex Capacitive Touch Display
10.1" LVDS V2 on the Verdin Development Board with Verdin iMX8M Plus
Mezzanine expansion board. The panel connects via the i.MX8M Plus LCDIF
on the Mezzanine LVDS interface (J10). The panel is an Opto Logic
SCX1001511GGC49 10.1" WXGA TFT LCD LVDS and the touch input is provided
by an ILITEK ILI251x capacitive touch controller.
Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
Link: https://developer.toradex.com/hardware/verdin-som-family/add-ons/verdin-imx8m-plus-mezzanine
Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
---
arch/arm64/boot/dts/freescale/Makefile | 5 +
...zanine-panel-cap-touch-10inch-lvds-v2.dtso | 107 ++++++++++++++++++
2 files changed, 112 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 236bfb6a1e19..39c5f0db5203 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -509,6 +509,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw75xx-2x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw82xx-2x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dsi-to-lvds-v2-panel-cap-touch-10inch.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dahlia.dtb
@@ -524,6 +525,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-dsi-to-lvds-v2-panel-cap-touch-10inch.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-ivy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds.dtb
@@ -540,6 +542,9 @@ imx8mp-verdin-wifi-dev-dsi-to-lvds-v2-panel-cap-touch-10inch-dtbs := \
imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds-dtbs := \
imx8mp-verdin-wifi-dev.dtb \
imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtbo
+imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds-v2-dtbs := \
+ imx8mp-verdin-wifi-dev.dtb \
+ imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtbo
imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds-dtbs := \
imx8mp-verdin-wifi-mallow.dtb \
imx8mp-verdin-panel-cap-touch-10inch-lvds.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
new file mode 100644
index 000000000000..b78322907192
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
@@ -0,0 +1,107 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * Toradex Capacitive Touch Display 10.1" LVDS V2 on the Verdin iMX8M Plus
+ * Mezzanine LVDS interface (J10), used with the Verdin Development Board.
+ *
+ * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
+ * https://www.toradex.com/accessories/capacitive-touch-display-10.1-inch-lvds
+ * https://developer.toradex.com/hardware/verdin-som-family/add-ons/verdin-imx8m-plus-mezzanine
+ * https://www.toradex.com/accessories/verdin-imx8m-plus-mezzanine
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/imx8mp-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+#include "imx8mp-pinfunc.h"
+
+&{/} {
+ panel-lvds-native {
+ compatible = "optologic,scx1001511ggc49", "panel-lvds";
+ backlight = <&backlight_mezzanine>;
+ data-mapping = "vesa-24";
+ power-supply = <®_3p3v>;
+ height-mm = <136>;
+ width-mm = <217>;
+
+ panel-timing {
+ clock-frequency = <64500000>;
+ hactive = <1280>;
+ hback-porch = <20>;
+ hfront-porch = <20>;
+ hsync-len = <2>;
+ vactive = <800>;
+ vback-porch = <5>;
+ vfront-porch = <5>;
+ vsync-len = <3>;
+ de-active = <1>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ pixelclk-active = <0>;
+ };
+
+ port {
+ panel_lvds_native_in: endpoint {
+ remote-endpoint = <&ldb_lvds_ch0>;
+ };
+ };
+ };
+};
+
+&backlight_mezzanine {
+ /* Verdin PWM_2 (SODIMM 16) */
+ pwms = <&pwm2 0 6666667 0>;
+
+ status = "okay";
+};
+
+/* Verdin I2C_2_DSI */
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen@41 {
+ compatible = "ilitek,ili251x";
+ reg = <0x41>;
+ /* Verdin GPIO_3 (SODIMM 210) */
+ interrupt-parent = <&gpio1>;
+ interrupts = <5 IRQ_TYPE_EDGE_RISING>;
+ /* Verdin GPIO_2 (SODIMM 208) */
+ reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&lcdif2 {
+ status = "okay";
+};
+
+&lvds_bridge {
+ assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
+ <&clk IMX8MP_VIDEO_PLL1>;
+ /*
+ * This display uses 64.5 MHz pixel clock, so IMX8MP_VIDEO_PLL1 needs
+ * to be 7 times 64.5MHz, or 451.5 MHz as the internal divider will
+ * always divide the output LVDS clock by 7.
+ */
+ assigned-clock-rates = <0>, <451500000>;
+
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ ldb_lvds_ch0: endpoint {
+ remote-endpoint = <&panel_lvds_native_in>;
+ };
+ };
+ };
+};
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2
2026-08-13 13:33 ` [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2 Leonardo Costa
@ 2026-08-13 14:58 ` Frank Li
2026-08-13 15:43 ` Leonardo Costa
0 siblings, 1 reply; 12+ messages in thread
From: Frank Li @ 2026-08-13 14:58 UTC (permalink / raw)
To: Leonardo Costa
Cc: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt, imx,
linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
On Thu, Aug 13, 2026 at 10:33:35AM -0300, Leonardo Costa wrote:
> From: Leonardo Costa <leonardo.costa@toradex.com>
>
> Add a device tree overlay enabling the Toradex Capacitive Touch Display
> 10.1" LVDS V2 on the Verdin Development Board with Verdin iMX8M Plus
> Mezzanine expansion board. The panel connects via the i.MX8M Plus LCDIF
> on the Mezzanine LVDS interface (J10). The panel is an Opto Logic
> SCX1001511GGC49 10.1" WXGA TFT LCD LVDS and the touch input is provided
> by an ILITEK ILI251x capacitive touch controller.
>
> Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
> Link: https://developer.toradex.com/hardware/verdin-som-family/add-ons/verdin-imx8m-plus-mezzanine
> Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
> ---
what's difference with Add Toradex Capacitive Touch Display 10.1" LVDS V2
why not share one dtso?
Frank
> arch/arm64/boot/dts/freescale/Makefile | 5 +
> ...zanine-panel-cap-touch-10inch-lvds-v2.dtso | 107 ++++++++++++++++++
> 2 files changed, 112 insertions(+)
> create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
>
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index 236bfb6a1e19..39c5f0db5203 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -509,6 +509,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw75xx-2x.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw82xx-2x.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtbo
> +dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtbo
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtbo
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-dsi-to-lvds-v2-panel-cap-touch-10inch.dtbo
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dahlia.dtb
> @@ -524,6 +525,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-dsi-to-lvds-panel-cap-touch-10inch.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-dsi-to-lvds-v2-panel-cap-touch-10inch.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-ivy.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds.dtb
> @@ -540,6 +542,9 @@ imx8mp-verdin-wifi-dev-dsi-to-lvds-v2-panel-cap-touch-10inch-dtbs := \
> imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds-dtbs := \
> imx8mp-verdin-wifi-dev.dtb \
> imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds.dtbo
> +imx8mp-verdin-wifi-dev-mezzanine-panel-cap-touch-10inch-lvds-v2-dtbs := \
> + imx8mp-verdin-wifi-dev.dtb \
> + imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtbo
> imx8mp-verdin-wifi-mallow-panel-cap-touch-10inch-lvds-dtbs := \
> imx8mp-verdin-wifi-mallow.dtb \
> imx8mp-verdin-panel-cap-touch-10inch-lvds.dtbo
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
> new file mode 100644
> index 000000000000..b78322907192
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
> @@ -0,0 +1,107 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/*
> + * Copyright (c) Toradex
> + *
> + * Toradex Capacitive Touch Display 10.1" LVDS V2 on the Verdin iMX8M Plus
> + * Mezzanine LVDS interface (J10), used with the Verdin Development Board.
> + *
> + * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
> + * https://www.toradex.com/accessories/capacitive-touch-display-10.1-inch-lvds
> + * https://developer.toradex.com/hardware/verdin-som-family/add-ons/verdin-imx8m-plus-mezzanine
> + * https://www.toradex.com/accessories/verdin-imx8m-plus-mezzanine
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/clock/imx8mp-clock.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +
> +#include "imx8mp-pinfunc.h"
> +
> +&{/} {
> + panel-lvds-native {
> + compatible = "optologic,scx1001511ggc49", "panel-lvds";
> + backlight = <&backlight_mezzanine>;
> + data-mapping = "vesa-24";
> + power-supply = <®_3p3v>;
> + height-mm = <136>;
> + width-mm = <217>;
> +
> + panel-timing {
> + clock-frequency = <64500000>;
> + hactive = <1280>;
> + hback-porch = <20>;
> + hfront-porch = <20>;
> + hsync-len = <2>;
> + vactive = <800>;
> + vback-porch = <5>;
> + vfront-porch = <5>;
> + vsync-len = <3>;
> + de-active = <1>;
> + hsync-active = <0>;
> + vsync-active = <0>;
> + pixelclk-active = <0>;
> + };
> +
> + port {
> + panel_lvds_native_in: endpoint {
> + remote-endpoint = <&ldb_lvds_ch0>;
> + };
> + };
> + };
> +};
> +
> +&backlight_mezzanine {
> + /* Verdin PWM_2 (SODIMM 16) */
> + pwms = <&pwm2 0 6666667 0>;
> +
> + status = "okay";
> +};
> +
> +/* Verdin I2C_2_DSI */
> +&i2c2 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + touchscreen@41 {
> + compatible = "ilitek,ili251x";
> + reg = <0x41>;
> + /* Verdin GPIO_3 (SODIMM 210) */
> + interrupt-parent = <&gpio1>;
> + interrupts = <5 IRQ_TYPE_EDGE_RISING>;
> + /* Verdin GPIO_2 (SODIMM 208) */
> + reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
> + };
> +};
> +
> +&lcdif2 {
> + status = "okay";
> +};
> +
> +&lvds_bridge {
> + assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
> + <&clk IMX8MP_VIDEO_PLL1>;
> + /*
> + * This display uses 64.5 MHz pixel clock, so IMX8MP_VIDEO_PLL1 needs
> + * to be 7 times 64.5MHz, or 451.5 MHz as the internal divider will
> + * always divide the output LVDS clock by 7.
> + */
> + assigned-clock-rates = <0>, <451500000>;
> +
> + status = "okay";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@1 {
> + reg = <1>;
> +
> + ldb_lvds_ch0: endpoint {
> + remote-endpoint = <&panel_lvds_native_in>;
> + };
> + };
> + };
> +};
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2
2026-08-13 14:58 ` Frank Li
@ 2026-08-13 15:43 ` Leonardo Costa
2026-08-13 16:15 ` Frank Li
0 siblings, 1 reply; 12+ messages in thread
From: Leonardo Costa @ 2026-08-13 15:43 UTC (permalink / raw)
To: Frank Li
Cc: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt, imx,
linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
On Thu, Aug 13, 2026 at 09:58:52AM -0500, Frank Li wrote:
> On Thu, Aug 13, 2026 at 10:33:35AM -0300, Leonardo Costa wrote:
> > From: Leonardo Costa <leonardo.costa@toradex.com>
> >
> > Add a device tree overlay enabling the Toradex Capacitive Touch Display
> > 10.1" LVDS V2 on the Verdin Development Board with Verdin iMX8M Plus
> > Mezzanine expansion board. The panel connects via the i.MX8M Plus LCDIF
> > on the Mezzanine LVDS interface (J10). The panel is an Opto Logic
> > SCX1001511GGC49 10.1" WXGA TFT LCD LVDS and the touch input is provided
> > by an ILITEK ILI251x capacitive touch controller.
> >
> > Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
> > Link: https://developer.toradex.com/hardware/verdin-som-family/add-ons/verdin-imx8m-plus-mezzanine
> > Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
> > ---
>
> what's difference with Add Toradex Capacitive Touch Display 10.1" LVDS V2
>
> why not share one dtso?
>
> Frank
Hi Frank,
There are two main differences:
1. The mezzanine one uses different backlight controll pins, so here we
use the 'backlight-mezzanine' node, instead of the 'backlight' one, used
in the one without the mezzanine.
2. The touchscreen GPIO and interrupt pins are also different with the
mezzanine board.
Leonardo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2
2026-08-13 15:43 ` Leonardo Costa
@ 2026-08-13 16:15 ` Frank Li
2026-08-18 18:08 ` Leonardo Costa
0 siblings, 1 reply; 12+ messages in thread
From: Frank Li @ 2026-08-13 16:15 UTC (permalink / raw)
To: Leonardo Costa
Cc: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt, imx,
linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
On Thu, Aug 13, 2026 at 12:43:29PM -0300, Leonardo Costa wrote:
> On Thu, Aug 13, 2026 at 09:58:52AM -0500, Frank Li wrote:
> > On Thu, Aug 13, 2026 at 10:33:35AM -0300, Leonardo Costa wrote:
> > > From: Leonardo Costa <leonardo.costa@toradex.com>
> > >
> > > Add a device tree overlay enabling the Toradex Capacitive Touch Display
> > > 10.1" LVDS V2 on the Verdin Development Board with Verdin iMX8M Plus
> > > Mezzanine expansion board. The panel connects via the i.MX8M Plus LCDIF
> > > on the Mezzanine LVDS interface (J10). The panel is an Opto Logic
> > > SCX1001511GGC49 10.1" WXGA TFT LCD LVDS and the touch input is provided
> > > by an ILITEK ILI251x capacitive touch controller.
> > >
> > > Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
> > > Link: https://developer.toradex.com/hardware/verdin-som-family/add-ons/verdin-imx8m-plus-mezzanine
> > > Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
> > > ---
> >
> > what's difference with Add Toradex Capacitive Touch Display 10.1" LVDS V2
> >
> > why not share one dtso?
> >
> > Frank
>
> Hi Frank,
>
> There are two main differences:
>
> 1. The mezzanine one uses different backlight controll pins, so here we
> use the 'backlight-mezzanine' node, instead of the 'backlight' one, used
> in the one without the mezzanine.
>
> 2. The touchscreen GPIO and interrupt pins are also different with the
> mezzanine board.
And there are for imx8mm
https://lore.kernel.org/imx/20260724-v1-verdin-imx8mm-dtbos-v2-3-9d7988bd76f6@toradex.com/
https://lore.kernel.org/imx/sr26lfvwasgcosfzcf4ydtwxwjjutlio2yqpgxldatpzjo7e4y@77k7gefnjzvl/
Any ways, it is too late for 7.3, we have enough time for 7.4 to discuss
work on optimization solution.
If use nexus connectors, we can share one dtso now if there are not
clock settings.
clock patches is close to pick up
https://lore.kernel.org/all/20260807-schneider-v7-2-rc1-eip201-upstream-v5-1-8785f9531cf0@bootlin.com/
Frank
>
> Leonardo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2
2026-08-13 16:15 ` Frank Li
@ 2026-08-18 18:08 ` Leonardo Costa
2026-08-18 18:53 ` Frank Li
0 siblings, 1 reply; 12+ messages in thread
From: Leonardo Costa @ 2026-08-18 18:08 UTC (permalink / raw)
To: Frank Li
Cc: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt, imx,
linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
On Thu, Aug 13, 2026 at 11:15:04AM -0500, Frank Li wrote:
> On Thu, Aug 13, 2026 at 12:43:29PM -0300, Leonardo Costa wrote:
> > On Thu, Aug 13, 2026 at 09:58:52AM -0500, Frank Li wrote:
> > > On Thu, Aug 13, 2026 at 10:33:35AM -0300, Leonardo Costa wrote:
> > > > From: Leonardo Costa <leonardo.costa@toradex.com>
> > > >
> > > > Add a device tree overlay enabling the Toradex Capacitive Touch Display
> > > > 10.1" LVDS V2 on the Verdin Development Board with Verdin iMX8M Plus
> > > > Mezzanine expansion board. The panel connects via the i.MX8M Plus LCDIF
> > > > on the Mezzanine LVDS interface (J10). The panel is an Opto Logic
> > > > SCX1001511GGC49 10.1" WXGA TFT LCD LVDS and the touch input is provided
> > > > by an ILITEK ILI251x capacitive touch controller.
> > > >
> > > > Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
> > > > Link: https://developer.toradex.com/hardware/verdin-som-family/add-ons/verdin-imx8m-plus-mezzanine
> > > > Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
> > > > ---
> > >
> > > what's difference with Add Toradex Capacitive Touch Display 10.1" LVDS V2
> > >
> > > why not share one dtso?
> > >
> > > Frank
> >
> > Hi Frank,
> >
> > There are two main differences:
> >
> > 1. The mezzanine one uses different backlight controll pins, so here we
> > use the 'backlight-mezzanine' node, instead of the 'backlight' one, used
> > in the one without the mezzanine.
> >
> > 2. The touchscreen GPIO and interrupt pins are also different with the
> > mezzanine board.
>
>
> And there are for imx8mm
> https://lore.kernel.org/imx/20260724-v1-verdin-imx8mm-dtbos-v2-3-9d7988bd76f6@toradex.com/
>
> https://lore.kernel.org/imx/sr26lfvwasgcosfzcf4ydtwxwjjutlio2yqpgxldatpzjo7e4y@77k7gefnjzvl/
>
> Any ways, it is too late for 7.3, we have enough time for 7.4 to discuss
> work on optimization solution.
>
> If use nexus connectors, we can share one dtso now if there are not
> clock settings.
Hi Frank,
I tried implementing the nexus connectors in imx8mp-verdin-wifi-dev.dts, and
modify the Mezzanine overlay for the LVDS V2 display to do an initial test
(diff with the changes at the end of the email). They worked partially, but it
introduced an issue where the drivers come up much later. Before, the drivers
relevant for the display (in this case, LCDIF and the touch controller
specifically) came up at around ~8s. After introducing the nexus connector they
come up at around ~20s, after the board has already booted (complete logs at
https://paste.debian.net/hidden/81acfa7d):
[ 21.008400] input: ILI210x Touchscreen as /devices/platform/soc@0/30800000.bus/30a30000.i2c/i2c-1/1-0041/input/input3
[ 21.014785] [drm] Initialized imx-lcdif 1.0.0 for 32e90000.display-controller on minor 2
[ 21.029634] Console: switching to colour frame buffer device 160x50
[ 21.029823] imx-lcdif 32e90000.display-controller: [drm] fb0: imx-lcdifdrmfb frame buffer device
[ 21.031376] imx8m-blk-ctrl 32ec0000.blk-ctrl: sync_state() pending due to 32e30000.dwe
Was this behavior observed before? It may have not been noticed, since the
drivers do come up at some point, and it may not be an issue for other
interfaces, or they may actually come up earlier in other cases. In our case
this is important though, since visual feedback from the display is expected
early.
It seems that the drivers are being deferred at boot start by the
device_links_check_suppliers() function. It runs through the drivers before
they're initialized and defers them if their suppliers are not available. The
GPIO and PWM drivers are able to follow the gpio-map and pwm-map properties
(through the of_parse_phandle_with_args_map() function), but from what I see,
device_links_check_suppliers() has no such mechanism. It follows the phandle to
the nexus connector node only, and since there's no compatible driver for it,
the function defers the consumer drivers used in the overlay.
I think this is what is happening mainly because setting the
fw_devlink=permissive kernel parameter (which sets the DL_FLAG_SYNC_STATE_ONLY
flag) solved the issue, though I could be misunderstanding something.
int device_links_check_suppliers(struct device *dev)
{
...
list_for_each_entry(link, &dev->links.suppliers, c_node) {
...
if (link->status != DL_STATE_AVAILABLE &&
!device_link_test(link, DL_FLAG_SYNC_STATE_ONLY)) {
...
device_links_missing_supplier(dev);
ret = dev_err_probe(dev, -EPROBE_DEFER,
"supplier %s not ready\n", dev_name(link->supplier));
break;
}
WRITE_ONCE(link->status, DL_STATE_CONSUMER_PROBE);
}
...
}
Has this behavior been observed before? Do you know of any work being done that
addresses this?
See below the changes that I made for this test, relative to my last patch
(only a draft):
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
index b78322907192..4aa1c407af3f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
+++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
@@ -21,9 +21,19 @@
#include "imx8mp-pinfunc.h"
&{/} {
+ backlight_lvds: backlight-lvds {
+ compatible = "pwm-backlight";
+ brightness-levels = <0 45 63 88 119 158 203 255>;
+ default-brightness-level = <4>;
+ /* Verdin GPIO 4 (SODIMM 212) */
+ enable-gpios = <&lvds_native_connector 1 GPIO_ACTIVE_HIGH>;
+ /* Verdin PWM_2 (SODIMM 16) */
+ pwms = <&lvds_native_connector 0 6666667 0>;
+ };
+
panel-lvds-native {
compatible = "optologic,scx1001511ggc49", "panel-lvds";
- backlight = <&backlight_mezzanine>;
+ backlight = <&backlight_lvds>;
data-mapping = "vesa-24";
power-supply = <®_3p3v>;
height-mm = <136>;
@@ -53,13 +63,6 @@ panel_lvds_native_in: endpoint {
};
};
-&backlight_mezzanine {
- /* Verdin PWM_2 (SODIMM 16) */
- pwms = <&pwm2 0 6666667 0>;
-
- status = "okay";
-};
-
/* Verdin I2C_2_DSI */
&i2c2 {
#address-cells = <1>;
@@ -69,10 +72,10 @@ touchscreen@41 {
compatible = "ilitek,ili251x";
reg = <0x41>;
/* Verdin GPIO_3 (SODIMM 210) */
- interrupt-parent = <&gpio1>;
- interrupts = <5 IRQ_TYPE_EDGE_RISING>;
+ interrupt-parent = <&lvds_native_connector>;
+ interrupts = <1>;
/* Verdin GPIO_2 (SODIMM 208) */
- reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+ reset-gpios = <&lvds_native_connector 0 GPIO_ACTIVE_LOW>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
index 72a4f846d694..1103da3d34ba 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
@@ -4,6 +4,28 @@
*/
/ {
+ lvds_native_connector: lvds-mezzanine-connector {
+ // NOTE: Placeholder name, no binding for this yet
+ compatible = "tdx,verdin-lvds-connector";
+
+ #gpio-cells = <2>;
+ gpio-map = <0 0 &gpio1 1 0>, /* Touchscreen reset GPIO */
+ <1 0 &gpio1 6 0>; /* Backlight Enable GPIO */
+ gpio-map-mask = <0xffffffff 0x0>;
+ gpio-map-pass-thru = <0x0 0xffffffff>;
+
+ #pwm-cells = <3>;
+ pwm-map = <0 0 0 &pwm2 0 0 0>; /* Backlight PWM */
+ pwm-map-mask = <0x0 0x0 0x0>;
+ pwm-map-pass-thru = <0x0 0xffffffff 0xffffffff>;
+
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-map = <0 &gpio1 5 IRQ_TYPE_EDGE_FALLING>, /* Touchscreen interrupt */
+ <1 &gpio1 5 IRQ_TYPE_EDGE_RISING>;
+ interrupt-map-mask = <0xffffffff>;
+ };
+
native-hdmi-connector {
compatible = "hdmi-connector";
label = "X37";
Leonardo
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2
2026-08-18 18:08 ` Leonardo Costa
@ 2026-08-18 18:53 ` Frank Li
0 siblings, 0 replies; 12+ messages in thread
From: Frank Li @ 2026-08-18 18:53 UTC (permalink / raw)
To: Leonardo Costa
Cc: Frank.Li, s.hauer, kernel, festevam, robh, krzk+dt, conor+dt, imx,
linux-arm-kernel, devicetree, linux-kernel, Leonardo Costa
On Tue, Aug 18, 2026 at 03:08:33PM -0300, Leonardo Costa wrote:
> On Thu, Aug 13, 2026 at 11:15:04AM -0500, Frank Li wrote:
> > On Thu, Aug 13, 2026 at 12:43:29PM -0300, Leonardo Costa wrote:
> > > On Thu, Aug 13, 2026 at 09:58:52AM -0500, Frank Li wrote:
> > > > On Thu, Aug 13, 2026 at 10:33:35AM -0300, Leonardo Costa wrote:
> > > > > From: Leonardo Costa <leonardo.costa@toradex.com>
> > > > >
> > > > > Add a device tree overlay enabling the Toradex Capacitive Touch Display
> > > > > 10.1" LVDS V2 on the Verdin Development Board with Verdin iMX8M Plus
> > > > > Mezzanine expansion board. The panel connects via the i.MX8M Plus LCDIF
> > > > > on the Mezzanine LVDS interface (J10). The panel is an Opto Logic
> > > > > SCX1001511GGC49 10.1" WXGA TFT LCD LVDS and the touch input is provided
> > > > > by an ILITEK ILI251x capacitive touch controller.
> > > > >
> > > > > Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-lvds
> > > > > Link: https://developer.toradex.com/hardware/verdin-som-family/add-ons/verdin-imx8m-plus-mezzanine
> > > > > Signed-off-by: Leonardo Costa <leonardo.costa@toradex.com>
> > > > > ---
> > > >
> > > > what's difference with Add Toradex Capacitive Touch Display 10.1" LVDS V2
> > > >
> > > > why not share one dtso?
> > > >
> > > > Frank
> > >
> > > Hi Frank,
> > >
> > > There are two main differences:
> > >
> > > 1. The mezzanine one uses different backlight controll pins, so here we
> > > use the 'backlight-mezzanine' node, instead of the 'backlight' one, used
> > > in the one without the mezzanine.
> > >
> > > 2. The touchscreen GPIO and interrupt pins are also different with the
> > > mezzanine board.
> >
> >
> > And there are for imx8mm
> > https://lore.kernel.org/imx/20260724-v1-verdin-imx8mm-dtbos-v2-3-9d7988bd76f6@toradex.com/
> >
> > https://lore.kernel.org/imx/sr26lfvwasgcosfzcf4ydtwxwjjutlio2yqpgxldatpzjo7e4y@77k7gefnjzvl/
> >
> > Any ways, it is too late for 7.3, we have enough time for 7.4 to discuss
> > work on optimization solution.
> >
> > If use nexus connectors, we can share one dtso now if there are not
> > clock settings.
>
> Hi Frank,
>
> I tried implementing the nexus connectors in imx8mp-verdin-wifi-dev.dts, and
> modify the Mezzanine overlay for the LVDS V2 display to do an initial test
> (diff with the changes at the end of the email). They worked partially, but it
> introduced an issue where the drivers come up much later.
Thank you for working on this.
> Before, the drivers
> relevant for the display (in this case, LCDIF and the touch controller
> specifically) came up at around ~8s. After introducing the nexus connector they
> come up at around ~20s, after the board has already booted (complete logs at
> https://paste.debian.net/hidden/81acfa7d):
>
> [ 21.008400] input: ILI210x Touchscreen as /devices/platform/soc@0/30800000.bus/30a30000.i2c/i2c-1/1-0041/input/input3
> [ 21.014785] [drm] Initialized imx-lcdif 1.0.0 for 32e90000.display-controller on minor 2
> [ 21.029634] Console: switching to colour frame buffer device 160x50
> [ 21.029823] imx-lcdif 32e90000.display-controller: [drm] fb0: imx-lcdifdrmfb frame buffer device
> [ 21.031376] imx8m-blk-ctrl 32ec0000.blk-ctrl: sync_state() pending due to 32e30000.dwe
>
> Was this behavior observed before? It may have not been noticed, since the
> drivers do come up at some point, and it may not be an issue for other
> interfaces, or they may actually come up earlier in other cases. In our case
> this is important though, since visual feedback from the display is expected
> early.
Understand, we have not notified this problem before.
>
> It seems that the drivers are being deferred at boot start by the
> device_links_check_suppliers() function. It runs through the drivers before
> they're initialized and defers them if their suppliers are not available. The
> GPIO and PWM drivers are able to follow the gpio-map and pwm-map properties
> (through the of_parse_phandle_with_args_map() function), but from what I see,
> device_links_check_suppliers() has no such mechanism. It follows the phandle to
> the nexus connector node only, and since there's no compatible driver for it,
> the function defers the consumer drivers used in the overlay.
>
> I think this is what is happening mainly because setting the
> fw_devlink=permissive kernel parameter (which sets the DL_FLAG_SYNC_STATE_ONLY
> flag) solved the issue, though I could be misunderstanding something.
>
> int device_links_check_suppliers(struct device *dev)
> {
> ...
> list_for_each_entry(link, &dev->links.suppliers, c_node) {
> ...
>
> if (link->status != DL_STATE_AVAILABLE &&
> !device_link_test(link, DL_FLAG_SYNC_STATE_ONLY)) {
>
> ...
> device_links_missing_supplier(dev);
> ret = dev_err_probe(dev, -EPROBE_DEFER,
> "supplier %s not ready\n", dev_name(link->supplier));
> break;
> }
> WRITE_ONCE(link->status, DL_STATE_CONSUMER_PROBE);
> }
> ...
> }
>
> Has this behavior been observed before? Do you know of any work being done that
> addresses this?
Does a dummy container driver (for debug) to proof your analyer? Let
me to find time to debug it.
Frank
>
> See below the changes that I made for this test, relative to my last patch
> (only a draft):
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
> index b78322907192..4aa1c407af3f 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev-mezzanine-panel-cap-touch-10inch-lvds-v2.dtso
> @@ -21,9 +21,19 @@
> #include "imx8mp-pinfunc.h"
>
> &{/} {
> + backlight_lvds: backlight-lvds {
> + compatible = "pwm-backlight";
> + brightness-levels = <0 45 63 88 119 158 203 255>;
> + default-brightness-level = <4>;
> + /* Verdin GPIO 4 (SODIMM 212) */
> + enable-gpios = <&lvds_native_connector 1 GPIO_ACTIVE_HIGH>;
> + /* Verdin PWM_2 (SODIMM 16) */
> + pwms = <&lvds_native_connector 0 6666667 0>;
> + };
> +
> panel-lvds-native {
> compatible = "optologic,scx1001511ggc49", "panel-lvds";
> - backlight = <&backlight_mezzanine>;
> + backlight = <&backlight_lvds>;
> data-mapping = "vesa-24";
> power-supply = <®_3p3v>;
> height-mm = <136>;
> @@ -53,13 +63,6 @@ panel_lvds_native_in: endpoint {
> };
> };
>
> -&backlight_mezzanine {
> - /* Verdin PWM_2 (SODIMM 16) */
> - pwms = <&pwm2 0 6666667 0>;
> -
> - status = "okay";
> -};
> -
> /* Verdin I2C_2_DSI */
> &i2c2 {
> #address-cells = <1>;
> @@ -69,10 +72,10 @@ touchscreen@41 {
> compatible = "ilitek,ili251x";
> reg = <0x41>;
> /* Verdin GPIO_3 (SODIMM 210) */
> - interrupt-parent = <&gpio1>;
> - interrupts = <5 IRQ_TYPE_EDGE_RISING>;
> + interrupt-parent = <&lvds_native_connector>;
> + interrupts = <1>;
> /* Verdin GPIO_2 (SODIMM 208) */
> - reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
> + reset-gpios = <&lvds_native_connector 0 GPIO_ACTIVE_LOW>;
> };
> };
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
> index 72a4f846d694..1103da3d34ba 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
> @@ -4,6 +4,28 @@
> */
>
> / {
> + lvds_native_connector: lvds-mezzanine-connector {
> + // NOTE: Placeholder name, no binding for this yet
> + compatible = "tdx,verdin-lvds-connector";
> +
> + #gpio-cells = <2>;
> + gpio-map = <0 0 &gpio1 1 0>, /* Touchscreen reset GPIO */
> + <1 0 &gpio1 6 0>; /* Backlight Enable GPIO */
> + gpio-map-mask = <0xffffffff 0x0>;
> + gpio-map-pass-thru = <0x0 0xffffffff>;
> +
> + #pwm-cells = <3>;
> + pwm-map = <0 0 0 &pwm2 0 0 0>; /* Backlight PWM */
> + pwm-map-mask = <0x0 0x0 0x0>;
> + pwm-map-pass-thru = <0x0 0xffffffff 0xffffffff>;
> +
> + #address-cells = <0>;
> + #interrupt-cells = <1>;
> + interrupt-map = <0 &gpio1 5 IRQ_TYPE_EDGE_FALLING>, /* Touchscreen interrupt */
> + <1 &gpio1 5 IRQ_TYPE_EDGE_RISING>;
> + interrupt-map-mask = <0xffffffff>;
> + };
> +
> native-hdmi-connector {
> compatible = "hdmi-connector";
> label = "X37";
>
> Leonardo
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-08-18 18:53 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-13 13:33 [PATCH 0/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V1 and V2 Leonardo Costa
2026-08-13 13:33 ` [PATCH 1/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS Leonardo Costa
2026-08-13 13:33 ` [PATCH 2/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex DSI to LVDS adapter with 10.1" display Leonardo Costa
2026-08-13 13:33 ` [PATCH 3/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS Leonardo Costa
2026-08-13 13:33 ` [PATCH 4/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex Capacitive Touch Display 10.1" LVDS V2 Leonardo Costa
2026-08-13 13:33 ` [PATCH 5/6] arm64: dts: freescale: imx8mp-verdin: Add Toradex DSI to LVDS adapter with the 10.1" V2 display Leonardo Costa
2026-08-13 13:33 ` [PATCH 6/6] arm64: dts: freescale: imx8mp-verdin: Add Mezzanine with Toradex Display 10.1" LVDS V2 Leonardo Costa
2026-08-13 14:58 ` Frank Li
2026-08-13 15:43 ` Leonardo Costa
2026-08-13 16:15 ` Frank Li
2026-08-18 18:08 ` Leonardo Costa
2026-08-18 18:53 ` Frank Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox