ARM: dts: imx6dl-colibri: Add support for Toradex Iris carrier boards
authorMax Krummenacher <max.krummenacher@toradex.com>
Mon, 11 Apr 2022 15:22:32 +0000 (17:22 +0200)
committerShawn Guo <shawnguo@kernel.org>
Tue, 19 Apr 2022 00:43:08 +0000 (08:43 +0800)
Add support for Toradex Iris, small form-factor Pico-ITX Colibri Arm
Computer Module family Carrier Board.

Additional details available at
https://www.toradex.com/products/carrier-board/iris-carrier-board

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-colibri-iris.dts [new file with mode: 0644]

index ae3cac8..cb4cf54 100644 (file)
@@ -459,6 +459,8 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6dl-aristainetos2_4.dtb \
        imx6dl-aristainetos2_7.dtb \
        imx6dl-colibri-eval-v3.dtb \
+       imx6dl-colibri-iris.dtb \
+       imx6dl-colibri-iris-v2.dtb \
        imx6dl-cubox-i.dtb \
        imx6dl-cubox-i-emmc-som-v15.dtb \
        imx6dl-cubox-i-som-v15.dtb \
diff --git a/arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts b/arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts
new file mode 100644 (file)
index 0000000..3a6d388
--- /dev/null
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6dl-colibri-iris.dts"
+
+/ {
+       model = "Toradex Colibri iMX6DL/S on Colibri Iris V2 Board";
+       compatible = "toradex,colibri_imx6dl-iris-v2", "toradex,colibri_imx6dl",
+                    "fsl,imx6dl";
+
+       reg_3v3_vmmc: regulator-3v3-vmmc {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_enable_3v3_vmmc>;
+               regulator-name = "3v3_vmmc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <100>;
+               enable-active-high;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_iris &pinctrl_usbh_oc_1 &pinctrl_usbc_id_1>;
+
+       pinctrl_enable_3v3_vmmc: enable3v3vmmcgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x1b0b0
+               >;
+       };
+};
+
+/* Colibri MMC */
+&usdhc1 {
+       cap-power-off-card;
+       /* uncomment the following to enable SD card UHS mode if you have a V1.1 module */
+       /* /delete-property/ no-1-8-v; */
+       vmmc-supply = <&reg_3v3_vmmc>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6dl-colibri-iris.dts b/arch/arm/boot/dts/imx6dl-colibri-iris.dts
new file mode 100644 (file)
index 0000000..cf77d89
--- /dev/null
@@ -0,0 +1,152 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "imx6dl.dtsi"
+#include "imx6qdl-colibri.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6DL/S on Colibri Iris Board";
+       compatible = "toradex,colibri_imx6dl-iris", "toradex,colibri_imx6dl",
+                    "fsl,imx6dl";
+
+       aliases {
+               i2c0 = &i2c2;
+               i2c1 = &i2c3;
+       };
+
+       aliases {
+               rtc0 = &rtc_i2c;
+               rtc1 = &snvs_rtc;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+/* Colibri SSP */
+&ecspi4 {
+       status = "okay";
+};
+
+&gpio2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_forceoff &pinctrl_uart23_forceoff>;
+
+       /*
+        * uart-a-on-x13-enable turns the UART transceiver for UART_A on. If one
+        * wants to turn the transceiver off, that property has to be deleted
+        * and the gpio handled in userspace.
+        * The same applies to uart-b-c-on-x14-enable where the UART_B and
+        * UART_C transceiver is turned on.
+        */
+       uart-a-on-x13-enable-hog {
+               gpio-hog;
+               gpios = <4 GPIO_ACTIVE_HIGH>; /* SODIMM 102 */
+               output-high;
+       };
+
+       uart-b-c-on-x14-enable-hog {
+               gpio-hog;
+               gpios = <8 GPIO_ACTIVE_HIGH>; /* SODIMM 104 */
+               output-high;
+       };
+};
+
+/*
+ * Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board)
+ */
+&i2c3 {
+       status = "okay";
+
+       rtc_i2c: rtc@68 {
+               compatible = "st,m41t0";
+               reg = <0x68>;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+               &pinctrl_gpio_iris
+               &pinctrl_usbh_oc_1
+               &pinctrl_usbc_id_1
+       >;
+
+       pinctrl_gpio_iris: gpioirisgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_A17__GPIO2_IO21  0x1b0b0
+                       MX6QDL_PAD_EIM_A18__GPIO2_IO20  0x1b0b0
+                       MX6QDL_PAD_EIM_A19__GPIO2_IO19  0x1b0b0
+                       MX6QDL_PAD_EIM_A20__GPIO2_IO18  0x1b0b0
+                       MX6QDL_PAD_EIM_A23__GPIO6_IO06  0x1b0b0
+                       MX6QDL_PAD_EIM_D27__GPIO3_IO27  0x1b0b0
+                       MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
+                       MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x1b0b0
+               >;
+       };
+
+       pinctrl_uart1_forceoff: uart1forceoffgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x1b0b0
+               >;
+       };
+
+       pinctrl_uart23_forceoff: uart23forceoffgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x1b0b0
+               >;
+       };
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&pwm3 {
+       status = "okay";
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&reg_usb_host_vbus {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_host_vbus>;
+       status = "okay";
+};
+
+&usbotg {
+       status = "okay";
+};
+
+/* Colibri MMC */
+&usdhc1 {
+       status = "okay";
+};