[PATCH v2 3/3] ARM: dts: imx6q-apalis: Add VGA overlay
From: Leonardo Costa
Date: Mon Oct 19 2026 - 06:28:56 EST
From: Leonardo Costa <leonardo.costa@xxxxxxxxxxx>
Add a device tree overlay for the VGA output available on the Apalis
Evaluation Board, which is driven from a parallel RGB interface passing
through a non-programmable video DAC to a VGA connector, without VESA
DDC I2C signals.
The non-programmable video DAC consists of a simple resistor ladder that
converts the digital 16-bit RGB signal to VGA. The VGA output is gated by
an active-low data-enable signal.
The overlay is also combined with the various Apalis Evaluation Board
device trees to provide ready-to-use DTBs.
Signed-off-by: Leonardo Costa <leonardo.costa@xxxxxxxxxxx>
---
arch/arm/boot/dts/nxp/imx/Makefile | 21 ++++++
.../boot/dts/nxp/imx/imx6q-apalis-eval-vga.dtso | 80 ++++++++++++++++++++++
2 files changed, 101 insertions(+)
diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile
index b5fad2ba764c..9c218260fdcb 100644
--- a/arch/arm/boot/dts/nxp/imx/Makefile
+++ b/arch/arm/boot/dts/nxp/imx/Makefile
@@ -60,6 +60,22 @@ dtb-$(CONFIG_SOC_IMX53) += \
imx53-qsb-hdmi-dtbs := imx53-qsb.dtb imx53-qsb-hdmi.dtbo
imx53-qsrb-hdmi-dtbs := imx53-qsrb.dtb imx53-qsb-hdmi.dtbo
+imx6q-apalis-eval-v1.2-vga-dtbs := \
+ imx6q-apalis-eval-v1.2.dtb \
+ imx6q-apalis-eval-vga.dtbo
+
+imx6q-apalis-eval-vga-dtbs := \
+ imx6q-apalis-eval.dtb \
+ imx6q-apalis-eval-vga.dtbo
+
+imx6q-apalis-v1.2-eval-v1.2-vga-dtbs := \
+ imx6q-apalis-v1.2-eval-v1.2.dtb \
+ imx6q-apalis-eval-vga.dtbo
+
+imx6q-apalis-v1.2-eval-vga-dtbs := \
+ imx6q-apalis-v1.2-eval.dtb \
+ imx6q-apalis-eval-vga.dtbo
+
imx6qdl-dhcom-pdk2-overlay-497-200-x12-dtbs := \
imx6q-dhcom-pdk2.dtb \
imx6qdl-dhcom-pdk2-overlay-497-200-x12.dtbo
@@ -186,11 +202,16 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
imx6dl-yapp4-ursa.dtb \
imx6q-apalis-eval.dtb \
imx6q-apalis-eval-v1.2.dtb \
+ imx6q-apalis-eval-v1.2-vga.dtb \
+ imx6q-apalis-eval-vga.dtb \
+ imx6q-apalis-eval-vga.dtbo \
imx6q-apalis-ixora.dtb \
imx6q-apalis-ixora-v1.1.dtb \
imx6q-apalis-ixora-v1.2.dtb \
imx6q-apalis-v1.2-eval.dtb \
imx6q-apalis-v1.2-eval-v1.2.dtb \
+ imx6q-apalis-v1.2-eval-v1.2-vga.dtb \
+ imx6q-apalis-v1.2-eval-vga.dtb \
imx6q-apalis-v1.2-ixora.dtb \
imx6q-apalis-v1.2-ixora-v1.1.dtb \
imx6q-apalis-v1.2-ixora-v1.2.dtb \
diff --git a/arch/arm/boot/dts/nxp/imx/imx6q-apalis-eval-vga.dtso b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-eval-vga.dtso
new file mode 100644
index 000000000000..991c2b7c2777
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-eval-vga.dtso
@@ -0,0 +1,80 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * VGA output connected to a parallel RGB LCD interface through a
+ * non-programmable video DAC with a VGA connector.
+ *
+ * The VGA output is available on the Apalis Evaluation Board without VESA DDC
+ * I2C signals.
+ */
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+ disp1 {
+ compatible = "fsl,imx-parallel-display";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ipu2_vdac>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ interface-pix-fmt = "rgb565";
+
+ port@0 {
+ reg = <0>;
+
+ vga_display_in: endpoint {
+ remote-endpoint = <&ipu2_di0_disp0>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ vga_display_out: endpoint {
+ remote-endpoint = <&vga_enc_in>;
+ };
+ };
+ };
+
+ vga-encoder {
+ compatible = "dumb-vga-dac";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ vga_enc_in: endpoint {
+ data-enable-active = <0>;
+ remote-endpoint = <&vga_display_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ vga_enc_out: endpoint {
+ remote-endpoint = <&vga_connector_in>;
+ };
+ };
+ };
+ };
+
+ vga-connector {
+ compatible = "vga-connector";
+
+ port {
+ vga_connector_in: endpoint {
+ remote-endpoint = <&vga_enc_out>;
+ };
+ };
+ };
+};
+
+&ipu2_di0_disp0 {
+ remote-endpoint = <&vga_display_in>;
+};
--
2.43.0