ARM: dts: imx7-colibri: add support for Toradex Iris carrier boards

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: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
This commit is contained in:
Marcel Ziswiler 2022-05-16 16:13:13 +02:00 committed by Shawn Guo
parent f78ad74062
commit a180e4f09d
9 changed files with 536 additions and 0 deletions

View File

@ -741,8 +741,12 @@ dtb-$(CONFIG_SOC_IMX7D) += \
imx7d-cl-som-imx7.dtb \
imx7d-colibri-aster.dtb \
imx7d-colibri-emmc-aster.dtb \
imx7d-colibri-emmc-iris.dtb \
imx7d-colibri-emmc-iris-v2.dtb \
imx7d-colibri-emmc-eval-v3.dtb \
imx7d-colibri-eval-v3.dtb \
imx7d-colibri-iris.dtb \
imx7d-colibri-iris-v2.dtb \
imx7d-flex-concentrator.dtb \
imx7d-flex-concentrator-mfg.dtb \
imx7d-mba7.dtb \
@ -762,6 +766,8 @@ dtb-$(CONFIG_SOC_IMX7D) += \
imx7d-zii-rpu2.dtb \
imx7s-colibri-aster.dtb \
imx7s-colibri-eval-v3.dtb \
imx7s-colibri-iris.dtb \
imx7s-colibri-iris-v2.dtb \
imx7s-mba7.dtb \
imx7s-warp.dtb
dtb-$(CONFIG_SOC_IMX7ULP) += \

View File

@ -0,0 +1,112 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2022 Toradex
*/
/ {
reg_3v3_vmmc: regulator-3v3-vmmc {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio5 16 GPIO_ACTIVE_HIGH>; /* SODIMM 100 */
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "3v3_vmmc";
startup-delay-us = <100>;
};
};
/* Colibri AD0 to AD3 */
&adc1 {
status = "okay";
};
/* Colibri SSP */
&ecspi3 {
status = "okay";
};
/* Colibri Fast Ethernet */
&fec1 {
status = "okay";
};
&gpio2 {
/*
* uart_b_c_on_x14_enable turns the UART transceiver for UART2 and 5 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_a_on_x13_enable where the UART_A transceiver is turned on.
*/
uart-b-c-on-x14-enable-hog {
gpio-hog;
gpios = <27 GPIO_ACTIVE_HIGH>; /* SODIMM 104 */
output-high;
};
};
&gpio5 {
uart-a-on-x13-enable-hog {
gpio-hog;
gpios = <17 GPIO_ACTIVE_HIGH>; /* SODIMM 102 */
output-high;
};
};
/* Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 */
&i2c4 {
status = "okay";
};
/* Colibri PWM<A> */
&pwm1 {
status = "okay";
};
/* Colibri PWM<B> */
&pwm2 {
status = "okay";
};
/* Colibri PWM<C> */
&pwm3 {
status = "okay";
};
/* Colibri PWM<D> */
&pwm4 {
status = "okay";
};
/* M41T0M6 real time clock */
&rtc {
status = "okay";
};
/* Colibri UART_A */
&uart1 {
status = "okay";
};
/* Colibri UART_B */
&uart2 {
status = "okay";
};
/* Colibri UART_C */
&uart3 {
status = "okay";
};
/* Colibri USBC */
&usbotg1 {
status = "okay";
};
/* Colibri MMC/SD, UHS-I capable uSD slot */
&usdhc1 {
cap-power-off-card;
/delete-property/ keep-power-in-suspend;
/delete-property/ no-1-8-v;
vmmc-supply = <&reg_3v3_vmmc>;
status = "okay";
};

View File

@ -0,0 +1,108 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2022 Toradex
*/
/* Colibri AD0 to AD3 */
&adc1 {
status = "okay";
};
/*
* The Atmel maxtouch controller uses SODIMM 28/30, also used for PWM<B>, PWM<C>, aka pwm2, pwm3.
* So if you enable following capacitive touch controller, disable pwm2/pwm3 first.
*/
&atmel_mxt_ts {
interrupt-parent = <&gpio1>;
interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 28 / INT */
pinctrl-0 = <&pinctrl_atmel_adapter>;
reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; /* SODIMM 30 / RST */
};
/* Colibri SSP */
&ecspi3 {
status = "okay";
};
/* Colibri Fast Ethernet */
&fec1 {
status = "okay";
};
&gpio2 {
/*
* uart25 turns the UART transceiver for UART2 and 5 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 uart1_tx_on where the UART1 transceiver is turned on.
*/
uart25-tx-on-hog {
gpio-hog;
gpios = <27 GPIO_ACTIVE_HIGH>; /* SODIMM 104 */
output-high;
};
};
&gpio5 {
uart1-tx-on-hog {
gpio-hog;
gpios = <17 GPIO_ACTIVE_HIGH>; /* SODIMM 102 */
output-high;
};
};
/* Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 */
&i2c4 {
status = "okay";
};
/* Colibri PWM<A> */
&pwm1 {
status = "okay";
};
/* Colibri PWM<B> */
&pwm2 {
/* The pwm2 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */
status = "okay";
};
/* Colibri PWM<C> */
&pwm3 {
/* The pwm3 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */
status = "okay";
};
/* Colibri PWM<D> */
&pwm4 {
status = "okay";
};
/* M41T0M6 real time clock */
&rtc {
status = "okay";
};
/* Colibri UART_A */
&uart1 {
status = "okay";
};
/* Colibri UART_B */
&uart2 {
status = "okay";
};
/* Colibri UART_C */
&uart3 {
status = "okay";
};
/* Colibri USBC */
&usbotg1 {
status = "okay";
};
/* Colibri MMC/SD */
&usdhc1 {
status = "okay";
};

View File

@ -0,0 +1,21 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2022 Toradex
*/
/dts-v1/;
#include "imx7d-colibri-emmc.dtsi"
#include "imx7-colibri-iris-v2.dtsi"
/ {
model = "Toradex Colibri iMX7D 1GB on Iris V2 Carrier Board";
compatible = "toradex,colibri-imx7d-emmc-iris-v2",
"toradex,colibri-imx7d-emmc",
"toradex,colibri-imx7d",
"fsl,imx7d";
};
/* Colibri USBH */
&usbotg2 {
status = "okay";
};

View File

@ -0,0 +1,21 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2022 Toradex
*/
/dts-v1/;
#include "imx7d-colibri-emmc.dtsi"
#include "imx7-colibri-iris.dtsi"
/ {
model = "Toradex Colibri iMX7D 1GB on Iris Carrier Board";
compatible = "toradex,colibri-imx7d-emmc-iris",
"toradex,colibri-imx7d-emmc",
"toradex,colibri-imx7d",
"fsl,imx7d";
};
/* Colibri USBH */
&usbotg2 {
status = "okay";
};

View File

@ -0,0 +1,83 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2022 Toradex
*/
/dts-v1/;
#include "imx7d-colibri.dtsi"
#include "imx7-colibri-iris-v2.dtsi"
/ {
model = "Toradex Colibri iMX7D on Iris V2 Carrier Board";
compatible = "toradex,colibri-imx7d-iris-v2",
"toradex,colibri-imx7d",
"fsl,imx7d";
};
&ad7879_ts {
status = "okay";
};
&atmel_mxt_ts {
status = "okay";
};
&backlight {
status = "okay";
};
&gpio2 {
/*
* This switches the LVDS transceiver to VESA color mapping mode.
*/
lvds-color-map-hog {
gpio-hog;
gpios = <13 GPIO_ACTIVE_HIGH>; /* SODIMM 95 */
line-name = "LVDS_COLOR_MAP";
output-low;
};
};
&gpio7 {
/*
* This switches the LVDS transceiver to the 24-bit RGB mode.
*/
lvds-rgb-mode-hog {
gpio-hog;
gpios = <2 GPIO_ACTIVE_HIGH>; /* SODIMM 63 */
line-name = "LVDS_RGB_MODE";
output-low;
};
/*
* This switches the LVDS transceiver to the single-channel
* output mode.
*/
lvds-ch-mode-hog {
gpio-hog;
gpios = <3 GPIO_ACTIVE_HIGH>; /* SODIMM 55 */
line-name = "LVDS_CH_MODE";
output-high;
};
/* This turns the LVDS transceiver on */
lvds-power-on-hog {
gpio-hog;
gpios = <11 GPIO_ACTIVE_HIGH>; /* SODIMM 99 */
line-name = "LVDS_POWER_ON";
output-high;
};
};
&lcdif {
status = "okay";
};
&panel_dpi {
status = "okay";
};
/* Colibri USBH */
&usbotg2 {
status = "okay";
};

View File

@ -0,0 +1,56 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2022 Toradex
*/
/dts-v1/;
#include "imx7d-colibri.dtsi"
#include "imx7-colibri-iris.dtsi"
/ {
model = "Toradex Colibri iMX7D on Iris Carrier Board";
compatible = "toradex,colibri-imx7d-iris",
"toradex,colibri-imx7d",
"fsl,imx7d";
};
&ad7879_ts {
status = "okay";
};
/*
* The Atmel maxtouch controller uses SODIMM 28/30, also used for PWM<B>, PWM<C>, aka pwm2, pwm3.
* So if you enable following capacitive touch controller, disable pwm2/pwm3 first.
*/
&atmel_mxt_ts {
status = "disabled";
};
&backlight {
status = "okay";
};
&lcdif {
status = "okay";
};
&panel_dpi {
status = "okay";
};
/* Colibri PWM<B> */
&pwm2 {
/* The pwm2 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */
status = "okay";
};
/* Colibri PWM<C> */
&pwm3 {
/* The pwm3 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */
status = "okay";
};
/* Colibri USBH */
&usbotg2 {
status = "okay";
};

View File

@ -0,0 +1,78 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2022 Toradex
*/
/dts-v1/;
#include "imx7s-colibri.dtsi"
#include "imx7-colibri-iris-v2.dtsi"
/ {
model = "Toradex Colibri iMX7S on Iris V2 Carrier Board";
compatible = "toradex,colibri-imx7s-iris-v2",
"toradex,colibri-imx7s",
"fsl,imx7s";
};
&ad7879_ts {
status = "okay";
};
&atmel_mxt_ts {
status = "okay";
};
&backlight {
status = "okay";
};
&gpio2 {
/*
* This switches the LVDS transceiver to VESA color mapping mode.
*/
lvds-color-map-hog {
gpio-hog;
gpios = <13 GPIO_ACTIVE_HIGH>; /* SODIMM 95 */
line-name = "LVDS_COLOR_MAP";
output-low;
};
};
&gpio7 {
/*
* This switches the LVDS transceiver to the 24-bit RGB mode.
*/
lvds-rgb-mode-hog {
gpio-hog;
gpios = <2 GPIO_ACTIVE_HIGH>; /* SODIMM 63 */
line-name = "LVDS_RGB_MODE";
output-low;
};
/*
* This switches the LVDS transceiver to the single-channel
* output mode.
*/
lvds-ch-mode-hog {
gpio-hog;
gpios = <3 GPIO_ACTIVE_HIGH>; /* SODIMM 55 */
line-name = "LVDS_CH_MODE";
output-high;
};
/* This turns the LVDS transceiver on */
lvds-power-on-hog {
gpio-hog;
gpios = <11 GPIO_ACTIVE_HIGH>; /* SODIMM 99 */
line-name = "LVDS_POWER_ON";
output-high;
};
};
&lcdif {
status = "okay";
};
&panel_dpi {
status = "okay";
};

View File

@ -0,0 +1,51 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright 2022 Toradex
*/
/dts-v1/;
#include "imx7s-colibri.dtsi"
#include "imx7-colibri-iris.dtsi"
/ {
model = "Toradex Colibri iMX7S on Iris Carrier Board";
compatible = "toradex,colibri-imx7s-iris",
"toradex,colibri-imx7s",
"fsl,imx7s";
};
&ad7879_ts {
status = "okay";
};
/*
* The Atmel maxtouch controller uses SODIMM 28/30, also used for PWM<B>, PWM<C>, aka pwm2, pwm3.
* So if you enable following capacitive touch controller, disable pwm2/pwm3 first.
*/
&atmel_mxt_ts {
status = "disabled";
};
&backlight {
status = "okay";
};
&lcdif {
status = "okay";
};
&panel_dpi {
status = "okay";
};
/* Colibri PWM<B> */
&pwm2 {
/* The pwm2 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */
status = "okay";
};
/* Colibri PWM<C> */
&pwm3 {
/* The pwm3 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */
status = "okay";
};