[PATCH v1 7/7] ARM: dts: imx6ull-colibri-emmc: Add VGA overlay

From: Francesco Dolcini

Date: Thu Oct 01 2026 - 13:51:33 EST


From: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx>

Add a device tree overlay for the VGA output on the Colibri iMX6ULL eMMC
parallel RGB LCD interface. The VGA output is driven through a
non-programmable video DAC without VESA DDC I2C signals to a DVI
connector. The DAC power-save input is driven by the BL_ON signal on
SODIMM 71, like on the Colibri iMX7.

The overlay content is identical to the Colibri iMX7 eMMC one, only the
GPIO driving the DAC power-save input is SoC specific. To avoid
duplicating it, rework the Colibri iMX7 eMMC overlay moving the common
part to a new dtsi shared between the two modules, and include it from
both overlays.

The overlay is also combined with the Aster, Evaluation Board v3, Iris
and Iris v2 carrier board device trees to provide ready-to-use DTBs.

Signed-off-by: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx>
---
arch/arm/boot/dts/nxp/imx/Makefile | 21 +++++++
.../dts/nxp/imx/imx6ull-colibri-emmc-vga.dtso | 24 ++++++++
.../dts/nxp/imx/imx6ull-imx7-colibri-vga.dtsi | 61 +++++++++++++++++++
.../dts/nxp/imx/imx7d-colibri-emmc-vga.dtso | 52 ++--------------
4 files changed, 112 insertions(+), 46 deletions(-)
create mode 100644 arch/arm/boot/dts/nxp/imx/imx6ull-colibri-emmc-vga.dtso
create mode 100644 arch/arm/boot/dts/nxp/imx/imx6ull-imx7-colibri-vga.dtsi

diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile
index 83f65b031e55..fa2a6dd82385 100644
--- a/arch/arm/boot/dts/nxp/imx/Makefile
+++ b/arch/arm/boot/dts/nxp/imx/Makefile
@@ -369,6 +369,22 @@ imx6ull-colibri-emmc-eval-v3-panel-res-touch-7inch-parallel-dtbs := \
imx6ull-colibri-emmc-eval-v3.dtb \
imx6ull-colibri-emmc-panel-res-touch-7inch-parallel.dtbo

+imx6ull-colibri-emmc-aster-vga-dtbs := \
+ imx6ull-colibri-emmc-aster.dtb \
+ imx6ull-colibri-emmc-vga.dtbo
+
+imx6ull-colibri-emmc-eval-v3-vga-dtbs := \
+ imx6ull-colibri-emmc-eval-v3.dtb \
+ imx6ull-colibri-emmc-vga.dtbo
+
+imx6ull-colibri-emmc-iris-vga-dtbs := \
+ imx6ull-colibri-emmc-iris.dtb \
+ imx6ull-colibri-emmc-vga.dtbo
+
+imx6ull-colibri-emmc-iris-v2-vga-dtbs := \
+ imx6ull-colibri-emmc-iris-v2.dtb \
+ imx6ull-colibri-emmc-vga.dtbo
+
dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ul-14x14-evk.dtb \
imx6ul-ccimx6ulsbcexpress.dtb \
@@ -398,15 +414,20 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ull-colibri-aster.dtb \
imx6ull-colibri-emmc-aster.dtb \
imx6ull-colibri-emmc-aster-panel-cap-touch-7inch-parallel.dtb \
+ imx6ull-colibri-emmc-aster-vga.dtb \
imx6ull-colibri-emmc-eval-v3.dtb \
imx6ull-colibri-emmc-eval-v3-panel-cap-touch-7inch-parallel-touch-adapter.dtb \
imx6ull-colibri-emmc-eval-v3-panel-res-touch-7inch-parallel.dtb \
+ imx6ull-colibri-emmc-eval-v3-vga.dtb \
imx6ull-colibri-emmc-iris.dtb \
+ imx6ull-colibri-emmc-iris-vga.dtb \
imx6ull-colibri-emmc-iris-v2.dtb \
imx6ull-colibri-emmc-iris-v2-panel-cap-touch-7inch-parallel.dtb \
+ imx6ull-colibri-emmc-iris-v2-vga.dtb \
imx6ull-colibri-emmc-panel-cap-touch-7inch-parallel.dtbo \
imx6ull-colibri-emmc-panel-cap-touch-7inch-parallel-touch-adapter.dtbo \
imx6ull-colibri-emmc-panel-res-touch-7inch-parallel.dtbo \
+ imx6ull-colibri-emmc-vga.dtbo \
imx6ull-colibri-eval-v3.dtb \
imx6ull-colibri-iris.dtb \
imx6ull-colibri-iris-v2.dtb \
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ull-colibri-emmc-vga.dtso b/arch/arm/boot/dts/nxp/imx/imx6ull-colibri-emmc-vga.dtso
new file mode 100644
index 000000000000..4ecf221de27e
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/imx/imx6ull-colibri-emmc-vga.dtso
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * VGA output connected to the Colibri parallel RGB LCD interface through a
+ * non-programmable video DAC with a DVI connector.
+ *
+ * The VGA output is available on multiple carrier boards (including Iris,
+ * Eval, Aster) without VESA DDC I2C signals.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "imx6ull-imx7-colibri-vga.dtsi"
+
+&vga_encoder {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpio_bl_on>;
+ /* SODIMM 71 / BL_ON */
+ enable-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ull-imx7-colibri-vga.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ull-imx7-colibri-vga.dtsi
new file mode 100644
index 000000000000..7e323698f338
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/imx/imx6ull-imx7-colibri-vga.dtsi
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * VGA output connected to the Colibri parallel RGB LCD interface through a
+ * non-programmable video DAC with a DVI connector, shared by the Colibri
+ * iMX6ULL eMMC and Colibri iMX7 eMMC overlays.
+ *
+ * The VGA output is available on multiple carrier boards (including Iris,
+ * Eval, Aster) without VESA DDC I2C signals.
+ *
+ * The DAC power-save input is driven by the BL_ON signal on SODIMM 71, the
+ * SoC specific pinctrl and GPIO are described by the overlay including this
+ * file.
+ */
+
+&{/} {
+ vga_encoder: vga-encoder {
+ compatible = "dumb-vga-dac";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ vga_enc_in: endpoint {
+ remote-endpoint = <&lcdif_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ vga_enc_out: endpoint {
+ remote-endpoint = <&dvi_connector_in>;
+ };
+ };
+ };
+ };
+
+ dvi-connector {
+ compatible = "dvi-connector";
+ analog;
+
+ port {
+ dvi_connector_in: endpoint {
+ remote-endpoint = <&vga_enc_out>;
+ };
+ };
+ };
+};
+
+&lcdif {
+ status = "okay";
+};
+
+&lcdif_out {
+ remote-endpoint = <&vga_enc_in>;
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-colibri-emmc-vga.dtso b/arch/arm/boot/dts/nxp/imx/imx7d-colibri-emmc-vga.dtso
index 363c0c2cc43e..ae3d8da02e67 100644
--- a/arch/arm/boot/dts/nxp/imx/imx7d-colibri-emmc-vga.dtso
+++ b/arch/arm/boot/dts/nxp/imx/imx7d-colibri-emmc-vga.dtso
@@ -14,51 +14,11 @@

#include <dt-bindings/gpio/gpio.h>

-&{/} {
- vga-encoder {
- compatible = "dumb-vga-dac";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_gpio_bl_on>;
- enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+#include "imx6ull-imx7-colibri-vga.dtsi"

- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
-
- vga_enc_in: endpoint {
- remote-endpoint = <&lcdif_out>;
- };
- };
-
- port@1 {
- reg = <1>;
-
- vga_enc_out: endpoint {
- remote-endpoint = <&dvi_connector_in>;
- };
- };
- };
- };
-
- dvi-connector {
- compatible = "dvi-connector";
- analog;
-
- port {
- dvi_connector_in: endpoint {
- remote-endpoint = <&vga_enc_out>;
- };
- };
- };
-};
-
-&lcdif {
- status = "okay";
-};
-
-&lcdif_out {
- remote-endpoint = <&vga_enc_in>;
+&vga_encoder {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpio_bl_on>;
+ /* SODIMM 71 / BL_ON */
+ enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
};
--
2.47.3