[PATCH v3 4/4] ARM: dts: vf: add Iris carrier board support for Colibri VF50 and VF61
Mehmet Fide
mehmet.fide at gmail.com
Thu Aug 13 07:06:00 PDT 2026
From: Mehmet Fide <mehmet.fide at screeningeagle.com>
The Iris is a small off-the-shelf carrier board for the Colibri
family. Describe what the board itself provides: Ethernet, one USB
host and one OTG port, the pin header UARTs, i2c with the carrier
RTC on it, PWM, SPI and the microSD slot. The host port gets its
VBUS through a regulator on SODIMM 129, and the two GPIOs that turn
the RS232 transceivers on, SODIMM 102 and 104, are hogged. The
touchscreen is an add-on rather than part of the board, so it is
left out.
This describes an Iris V1.1. A V2.0 carries the same signals on the
same pins; what it adds, and what this does not describe, is the
regulator on SODIMM 100 that can cut power to the uSD slot.
Tested on a Colibri VF50 on an Iris V1.1 running 6.18: Ethernet at
100Mbps/Full, a USB dongle enumerating once the VBUS regulator is in
place, the RTC read back over i2c0, all three UARTs, the SPI
controller registering, the microSD slot, and both hogs holding
their pins.
Signed-off-by: Mehmet Fide <mehmet.fide at screeningeagle.com>
---
arch/arm/boot/dts/nxp/vf/Makefile | 2 +
arch/arm/boot/dts/nxp/vf/vf-colibri-iris.dtsi | 117 ++++++++++++++++++
.../boot/dts/nxp/vf/vf500-colibri-iris.dts | 14 +++
.../boot/dts/nxp/vf/vf610-colibri-iris.dts | 14 +++
4 files changed, 147 insertions(+)
create mode 100644 arch/arm/boot/dts/nxp/vf/vf-colibri-iris.dtsi
create mode 100644 arch/arm/boot/dts/nxp/vf/vf500-colibri-iris.dts
create mode 100644 arch/arm/boot/dts/nxp/vf/vf610-colibri-iris.dts
diff --git a/arch/arm/boot/dts/nxp/vf/Makefile b/arch/arm/boot/dts/nxp/vf/Makefile
index 0a4a7f9dd43e..47be8bc318e2 100644
--- a/arch/arm/boot/dts/nxp/vf/Makefile
+++ b/arch/arm/boot/dts/nxp/vf/Makefile
@@ -1,8 +1,10 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_SOC_VF610) += \
vf500-colibri-eval-v3.dtb \
+ vf500-colibri-iris.dtb \
vf610-bk4.dtb \
vf610-colibri-eval-v3.dtb \
+ vf610-colibri-iris.dtb \
vf610m4-colibri.dtb \
vf610-cosmic.dtb \
vf610m4-cosmic.dtb \
diff --git a/arch/arm/boot/dts/nxp/vf/vf-colibri-iris.dtsi b/arch/arm/boot/dts/nxp/vf/vf-colibri-iris.dtsi
new file mode 100644
index 000000000000..bbd0dd76c33c
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/vf/vf-colibri-iris.dtsi
@@ -0,0 +1,117 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2026 Mehmet Fide
+ *
+ * Toradex Iris carrier board V1.1, common part for Colibri VF50 and VF61.
+ *
+ * The Colibri modules are pin compatible, so the carrier signals sit on the
+ * same SODIMM pins as they do for the i.MX modules, whose Iris device trees
+ * are already upstream. The two SODIMM pins below are taken from the Colibri
+ * VFxx datasheet (102 -> PTA12 -> PORT0[5], 104 -> PTD28 -> PORT2[2]).
+ *
+ * An Iris V2.0 carries the same signals on the same pins, so everything here
+ * works on it as well. What it adds is a regulator on SODIMM 100 that can cut
+ * power to the uSD slot, which this file does not describe.
+ */
+
+/ {
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ reg_usbh_vbus: regulator-usbh-vbus {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usbh1_reg>;
+ regulator-name = "VCC_USB[1-4]";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio2 19 GPIO_ACTIVE_LOW>; /* SODIMM 129, USBH_PEN */
+ };
+};
+
+&gpio0 {
+ /*
+ * The RS232 transceivers on the carrier are switched on by these two
+ * lines. Delete the hog to turn a transceiver off from userspace.
+ * The pin group belongs to the gpio controller rather than to iomuxc,
+ * which would depend on its own child and log a dependency cycle.
+ */
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_iris_uart1_tx_on>;
+
+ uart1-tx-on-hog {
+ gpio-hog;
+ gpios = <5 GPIO_ACTIVE_HIGH>; /* SODIMM 102 */
+ output-high;
+ };
+};
+
+&gpio2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_iris_uart25_tx_on>;
+
+ uart25-tx-on-hog {
+ gpio-hog;
+ gpios = <2 GPIO_ACTIVE_HIGH>; /* SODIMM 104 */
+ output-high;
+ };
+};
+
+&iomuxc {
+ pinctrl_iris_uart1_tx_on: irisuart1txongrp {
+ fsl,pins = <
+ VF610_PAD_PTA12__GPIO_5 0x22ef
+ >;
+ };
+
+ pinctrl_iris_uart25_tx_on: irisuart25txongrp {
+ fsl,pins = <
+ VF610_PAD_PTD28__GPIO_66 0x22ef
+ >;
+ };
+};
+
+/* Colibri SSP, on the extension connector */
+&dspi1 {
+ status = "okay";
+};
+
+&esdhc1 {
+ status = "okay";
+};
+
+&fec1 {
+ status = "okay";
+};
+
+&i2c0 {
+ status = "okay";
+
+ /* M41T0M6 real time clock on the carrier */
+ rtc at 68 {
+ compatible = "st,m41t0";
+ reg = <0x68>;
+ };
+};
+
+&uart0 {
+ status = "okay";
+};
+
+&uart1 {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&usbdev0 {
+ status = "okay";
+};
+
+&usbh1 {
+ vbus-supply = <®_usbh_vbus>;
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/nxp/vf/vf500-colibri-iris.dts b/arch/arm/boot/dts/nxp/vf/vf500-colibri-iris.dts
new file mode 100644
index 000000000000..aa91537cab37
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/vf/vf500-colibri-iris.dts
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2026 Mehmet Fide
+ */
+
+/dts-v1/;
+#include "vf500-colibri.dtsi"
+#include "vf-colibri-iris.dtsi"
+
+/ {
+ model = "Toradex Colibri VF50 on Iris Carrier Board";
+ compatible = "toradex,vf500-colibri-vf50-on-iris", "toradex,vf500-colibri_vf50",
+ "fsl,vf500";
+};
diff --git a/arch/arm/boot/dts/nxp/vf/vf610-colibri-iris.dts b/arch/arm/boot/dts/nxp/vf/vf610-colibri-iris.dts
new file mode 100644
index 000000000000..7db5aa490966
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/vf/vf610-colibri-iris.dts
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2026 Mehmet Fide
+ */
+
+/dts-v1/;
+#include "vf610-colibri.dtsi"
+#include "vf-colibri-iris.dtsi"
+
+/ {
+ model = "Toradex Colibri VF61 on Iris Carrier Board";
+ compatible = "toradex,vf610-colibri-vf61-on-iris", "toradex,vf610-colibri_vf61",
+ "fsl,vf610";
+};
--
2.54.0
More information about the linux-arm-kernel
mailing list