Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Marcel Ziswiler and committed by
Shawn Guo
a180e4f0 f78ad740

+536
+6
arch/arm/boot/dts/Makefile
··· 741 741 imx7d-cl-som-imx7.dtb \ 742 742 imx7d-colibri-aster.dtb \ 743 743 imx7d-colibri-emmc-aster.dtb \ 744 + imx7d-colibri-emmc-iris.dtb \ 745 + imx7d-colibri-emmc-iris-v2.dtb \ 744 746 imx7d-colibri-emmc-eval-v3.dtb \ 745 747 imx7d-colibri-eval-v3.dtb \ 748 + imx7d-colibri-iris.dtb \ 749 + imx7d-colibri-iris-v2.dtb \ 746 750 imx7d-flex-concentrator.dtb \ 747 751 imx7d-flex-concentrator-mfg.dtb \ 748 752 imx7d-mba7.dtb \ ··· 766 762 imx7d-zii-rpu2.dtb \ 767 763 imx7s-colibri-aster.dtb \ 768 764 imx7s-colibri-eval-v3.dtb \ 765 + imx7s-colibri-iris.dtb \ 766 + imx7s-colibri-iris-v2.dtb \ 769 767 imx7s-mba7.dtb \ 770 768 imx7s-warp.dtb 771 769 dtb-$(CONFIG_SOC_IMX7ULP) += \
+112
arch/arm/boot/dts/imx7-colibri-iris-v2.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Copyright 2022 Toradex 4 + */ 5 + 6 + / { 7 + reg_3v3_vmmc: regulator-3v3-vmmc { 8 + compatible = "regulator-fixed"; 9 + enable-active-high; 10 + gpio = <&gpio5 16 GPIO_ACTIVE_HIGH>; /* SODIMM 100 */ 11 + regulator-max-microvolt = <3300000>; 12 + regulator-min-microvolt = <3300000>; 13 + regulator-name = "3v3_vmmc"; 14 + startup-delay-us = <100>; 15 + }; 16 + }; 17 + 18 + /* Colibri AD0 to AD3 */ 19 + &adc1 { 20 + status = "okay"; 21 + }; 22 + 23 + /* Colibri SSP */ 24 + &ecspi3 { 25 + status = "okay"; 26 + }; 27 + 28 + /* Colibri Fast Ethernet */ 29 + &fec1 { 30 + status = "okay"; 31 + }; 32 + 33 + &gpio2 { 34 + /* 35 + * uart_b_c_on_x14_enable turns the UART transceiver for UART2 and 5 on. If one wants to 36 + * turn the transceiver off, that property has to be deleted and the gpio handled in 37 + * userspace. 38 + * The same applies to uart_a_on_x13_enable where the UART_A transceiver is turned on. 39 + */ 40 + uart-b-c-on-x14-enable-hog { 41 + gpio-hog; 42 + gpios = <27 GPIO_ACTIVE_HIGH>; /* SODIMM 104 */ 43 + output-high; 44 + }; 45 + }; 46 + 47 + &gpio5 { 48 + uart-a-on-x13-enable-hog { 49 + gpio-hog; 50 + gpios = <17 GPIO_ACTIVE_HIGH>; /* SODIMM 102 */ 51 + output-high; 52 + }; 53 + }; 54 + 55 + /* Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 */ 56 + &i2c4 { 57 + status = "okay"; 58 + }; 59 + 60 + /* Colibri PWM<A> */ 61 + &pwm1 { 62 + status = "okay"; 63 + }; 64 + 65 + /* Colibri PWM<B> */ 66 + &pwm2 { 67 + status = "okay"; 68 + }; 69 + 70 + /* Colibri PWM<C> */ 71 + &pwm3 { 72 + status = "okay"; 73 + }; 74 + 75 + /* Colibri PWM<D> */ 76 + &pwm4 { 77 + status = "okay"; 78 + }; 79 + 80 + /* M41T0M6 real time clock */ 81 + &rtc { 82 + status = "okay"; 83 + }; 84 + 85 + /* Colibri UART_A */ 86 + &uart1 { 87 + status = "okay"; 88 + }; 89 + 90 + /* Colibri UART_B */ 91 + &uart2 { 92 + status = "okay"; 93 + }; 94 + 95 + /* Colibri UART_C */ 96 + &uart3 { 97 + status = "okay"; 98 + }; 99 + 100 + /* Colibri USBC */ 101 + &usbotg1 { 102 + status = "okay"; 103 + }; 104 + 105 + /* Colibri MMC/SD, UHS-I capable uSD slot */ 106 + &usdhc1 { 107 + cap-power-off-card; 108 + /delete-property/ keep-power-in-suspend; 109 + /delete-property/ no-1-8-v; 110 + vmmc-supply = <&reg_3v3_vmmc>; 111 + status = "okay"; 112 + };
+108
arch/arm/boot/dts/imx7-colibri-iris.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Copyright 2022 Toradex 4 + */ 5 + 6 + /* Colibri AD0 to AD3 */ 7 + &adc1 { 8 + status = "okay"; 9 + }; 10 + 11 + /* 12 + * The Atmel maxtouch controller uses SODIMM 28/30, also used for PWM<B>, PWM<C>, aka pwm2, pwm3. 13 + * So if you enable following capacitive touch controller, disable pwm2/pwm3 first. 14 + */ 15 + &atmel_mxt_ts { 16 + interrupt-parent = <&gpio1>; 17 + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 28 / INT */ 18 + pinctrl-0 = <&pinctrl_atmel_adapter>; 19 + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; /* SODIMM 30 / RST */ 20 + }; 21 + 22 + /* Colibri SSP */ 23 + &ecspi3 { 24 + status = "okay"; 25 + }; 26 + 27 + /* Colibri Fast Ethernet */ 28 + &fec1 { 29 + status = "okay"; 30 + }; 31 + 32 + &gpio2 { 33 + /* 34 + * uart25 turns the UART transceiver for UART2 and 5 on. If one wants to turn the 35 + * transceiver off, that property has to be deleted and the gpio handled in userspace. 36 + * The same applies to uart1_tx_on where the UART1 transceiver is turned on. 37 + */ 38 + uart25-tx-on-hog { 39 + gpio-hog; 40 + gpios = <27 GPIO_ACTIVE_HIGH>; /* SODIMM 104 */ 41 + output-high; 42 + }; 43 + }; 44 + 45 + &gpio5 { 46 + uart1-tx-on-hog { 47 + gpio-hog; 48 + gpios = <17 GPIO_ACTIVE_HIGH>; /* SODIMM 102 */ 49 + output-high; 50 + }; 51 + }; 52 + 53 + /* Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 */ 54 + &i2c4 { 55 + status = "okay"; 56 + }; 57 + 58 + /* Colibri PWM<A> */ 59 + &pwm1 { 60 + status = "okay"; 61 + }; 62 + 63 + /* Colibri PWM<B> */ 64 + &pwm2 { 65 + /* The pwm2 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */ 66 + status = "okay"; 67 + }; 68 + 69 + /* Colibri PWM<C> */ 70 + &pwm3 { 71 + /* The pwm3 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */ 72 + status = "okay"; 73 + }; 74 + 75 + /* Colibri PWM<D> */ 76 + &pwm4 { 77 + status = "okay"; 78 + }; 79 + 80 + /* M41T0M6 real time clock */ 81 + &rtc { 82 + status = "okay"; 83 + }; 84 + 85 + /* Colibri UART_A */ 86 + &uart1 { 87 + status = "okay"; 88 + }; 89 + 90 + /* Colibri UART_B */ 91 + &uart2 { 92 + status = "okay"; 93 + }; 94 + 95 + /* Colibri UART_C */ 96 + &uart3 { 97 + status = "okay"; 98 + }; 99 + 100 + /* Colibri USBC */ 101 + &usbotg1 { 102 + status = "okay"; 103 + }; 104 + 105 + /* Colibri MMC/SD */ 106 + &usdhc1 { 107 + status = "okay"; 108 + };
+21
arch/arm/boot/dts/imx7d-colibri-emmc-iris-v2.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Copyright 2022 Toradex 4 + */ 5 + 6 + /dts-v1/; 7 + #include "imx7d-colibri-emmc.dtsi" 8 + #include "imx7-colibri-iris-v2.dtsi" 9 + 10 + / { 11 + model = "Toradex Colibri iMX7D 1GB on Iris V2 Carrier Board"; 12 + compatible = "toradex,colibri-imx7d-emmc-iris-v2", 13 + "toradex,colibri-imx7d-emmc", 14 + "toradex,colibri-imx7d", 15 + "fsl,imx7d"; 16 + }; 17 + 18 + /* Colibri USBH */ 19 + &usbotg2 { 20 + status = "okay"; 21 + };
+21
arch/arm/boot/dts/imx7d-colibri-emmc-iris.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Copyright 2022 Toradex 4 + */ 5 + 6 + /dts-v1/; 7 + #include "imx7d-colibri-emmc.dtsi" 8 + #include "imx7-colibri-iris.dtsi" 9 + 10 + / { 11 + model = "Toradex Colibri iMX7D 1GB on Iris Carrier Board"; 12 + compatible = "toradex,colibri-imx7d-emmc-iris", 13 + "toradex,colibri-imx7d-emmc", 14 + "toradex,colibri-imx7d", 15 + "fsl,imx7d"; 16 + }; 17 + 18 + /* Colibri USBH */ 19 + &usbotg2 { 20 + status = "okay"; 21 + };
+83
arch/arm/boot/dts/imx7d-colibri-iris-v2.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Copyright 2022 Toradex 4 + */ 5 + 6 + /dts-v1/; 7 + #include "imx7d-colibri.dtsi" 8 + #include "imx7-colibri-iris-v2.dtsi" 9 + 10 + / { 11 + model = "Toradex Colibri iMX7D on Iris V2 Carrier Board"; 12 + compatible = "toradex,colibri-imx7d-iris-v2", 13 + "toradex,colibri-imx7d", 14 + "fsl,imx7d"; 15 + }; 16 + 17 + &ad7879_ts { 18 + status = "okay"; 19 + }; 20 + 21 + &atmel_mxt_ts { 22 + status = "okay"; 23 + }; 24 + 25 + &backlight { 26 + status = "okay"; 27 + }; 28 + 29 + &gpio2 { 30 + /* 31 + * This switches the LVDS transceiver to VESA color mapping mode. 32 + */ 33 + lvds-color-map-hog { 34 + gpio-hog; 35 + gpios = <13 GPIO_ACTIVE_HIGH>; /* SODIMM 95 */ 36 + line-name = "LVDS_COLOR_MAP"; 37 + output-low; 38 + }; 39 + }; 40 + 41 + &gpio7 { 42 + /* 43 + * This switches the LVDS transceiver to the 24-bit RGB mode. 44 + */ 45 + lvds-rgb-mode-hog { 46 + gpio-hog; 47 + gpios = <2 GPIO_ACTIVE_HIGH>; /* SODIMM 63 */ 48 + line-name = "LVDS_RGB_MODE"; 49 + output-low; 50 + }; 51 + 52 + /* 53 + * This switches the LVDS transceiver to the single-channel 54 + * output mode. 55 + */ 56 + lvds-ch-mode-hog { 57 + gpio-hog; 58 + gpios = <3 GPIO_ACTIVE_HIGH>; /* SODIMM 55 */ 59 + line-name = "LVDS_CH_MODE"; 60 + output-high; 61 + }; 62 + 63 + /* This turns the LVDS transceiver on */ 64 + lvds-power-on-hog { 65 + gpio-hog; 66 + gpios = <11 GPIO_ACTIVE_HIGH>; /* SODIMM 99 */ 67 + line-name = "LVDS_POWER_ON"; 68 + output-high; 69 + }; 70 + }; 71 + 72 + &lcdif { 73 + status = "okay"; 74 + }; 75 + 76 + &panel_dpi { 77 + status = "okay"; 78 + }; 79 + 80 + /* Colibri USBH */ 81 + &usbotg2 { 82 + status = "okay"; 83 + };
+56
arch/arm/boot/dts/imx7d-colibri-iris.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Copyright 2022 Toradex 4 + */ 5 + 6 + /dts-v1/; 7 + #include "imx7d-colibri.dtsi" 8 + #include "imx7-colibri-iris.dtsi" 9 + 10 + / { 11 + model = "Toradex Colibri iMX7D on Iris Carrier Board"; 12 + compatible = "toradex,colibri-imx7d-iris", 13 + "toradex,colibri-imx7d", 14 + "fsl,imx7d"; 15 + }; 16 + 17 + &ad7879_ts { 18 + status = "okay"; 19 + }; 20 + 21 + /* 22 + * The Atmel maxtouch controller uses SODIMM 28/30, also used for PWM<B>, PWM<C>, aka pwm2, pwm3. 23 + * So if you enable following capacitive touch controller, disable pwm2/pwm3 first. 24 + */ 25 + &atmel_mxt_ts { 26 + status = "disabled"; 27 + }; 28 + 29 + &backlight { 30 + status = "okay"; 31 + }; 32 + 33 + &lcdif { 34 + status = "okay"; 35 + }; 36 + 37 + &panel_dpi { 38 + status = "okay"; 39 + }; 40 + 41 + /* Colibri PWM<B> */ 42 + &pwm2 { 43 + /* The pwm2 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */ 44 + status = "okay"; 45 + }; 46 + 47 + /* Colibri PWM<C> */ 48 + &pwm3 { 49 + /* The pwm3 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */ 50 + status = "okay"; 51 + }; 52 + 53 + /* Colibri USBH */ 54 + &usbotg2 { 55 + status = "okay"; 56 + };
+78
arch/arm/boot/dts/imx7s-colibri-iris-v2.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Copyright 2022 Toradex 4 + */ 5 + 6 + /dts-v1/; 7 + #include "imx7s-colibri.dtsi" 8 + #include "imx7-colibri-iris-v2.dtsi" 9 + 10 + / { 11 + model = "Toradex Colibri iMX7S on Iris V2 Carrier Board"; 12 + compatible = "toradex,colibri-imx7s-iris-v2", 13 + "toradex,colibri-imx7s", 14 + "fsl,imx7s"; 15 + }; 16 + 17 + &ad7879_ts { 18 + status = "okay"; 19 + }; 20 + 21 + &atmel_mxt_ts { 22 + status = "okay"; 23 + }; 24 + 25 + &backlight { 26 + status = "okay"; 27 + }; 28 + 29 + &gpio2 { 30 + /* 31 + * This switches the LVDS transceiver to VESA color mapping mode. 32 + */ 33 + lvds-color-map-hog { 34 + gpio-hog; 35 + gpios = <13 GPIO_ACTIVE_HIGH>; /* SODIMM 95 */ 36 + line-name = "LVDS_COLOR_MAP"; 37 + output-low; 38 + }; 39 + }; 40 + 41 + &gpio7 { 42 + /* 43 + * This switches the LVDS transceiver to the 24-bit RGB mode. 44 + */ 45 + lvds-rgb-mode-hog { 46 + gpio-hog; 47 + gpios = <2 GPIO_ACTIVE_HIGH>; /* SODIMM 63 */ 48 + line-name = "LVDS_RGB_MODE"; 49 + output-low; 50 + }; 51 + 52 + /* 53 + * This switches the LVDS transceiver to the single-channel 54 + * output mode. 55 + */ 56 + lvds-ch-mode-hog { 57 + gpio-hog; 58 + gpios = <3 GPIO_ACTIVE_HIGH>; /* SODIMM 55 */ 59 + line-name = "LVDS_CH_MODE"; 60 + output-high; 61 + }; 62 + 63 + /* This turns the LVDS transceiver on */ 64 + lvds-power-on-hog { 65 + gpio-hog; 66 + gpios = <11 GPIO_ACTIVE_HIGH>; /* SODIMM 99 */ 67 + line-name = "LVDS_POWER_ON"; 68 + output-high; 69 + }; 70 + }; 71 + 72 + &lcdif { 73 + status = "okay"; 74 + }; 75 + 76 + &panel_dpi { 77 + status = "okay"; 78 + };
+51
arch/arm/boot/dts/imx7s-colibri-iris.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 + /* 3 + * Copyright 2022 Toradex 4 + */ 5 + 6 + /dts-v1/; 7 + #include "imx7s-colibri.dtsi" 8 + #include "imx7-colibri-iris.dtsi" 9 + 10 + / { 11 + model = "Toradex Colibri iMX7S on Iris Carrier Board"; 12 + compatible = "toradex,colibri-imx7s-iris", 13 + "toradex,colibri-imx7s", 14 + "fsl,imx7s"; 15 + }; 16 + 17 + &ad7879_ts { 18 + status = "okay"; 19 + }; 20 + 21 + /* 22 + * The Atmel maxtouch controller uses SODIMM 28/30, also used for PWM<B>, PWM<C>, aka pwm2, pwm3. 23 + * So if you enable following capacitive touch controller, disable pwm2/pwm3 first. 24 + */ 25 + &atmel_mxt_ts { 26 + status = "disabled"; 27 + }; 28 + 29 + &backlight { 30 + status = "okay"; 31 + }; 32 + 33 + &lcdif { 34 + status = "okay"; 35 + }; 36 + 37 + &panel_dpi { 38 + status = "okay"; 39 + }; 40 + 41 + /* Colibri PWM<B> */ 42 + &pwm2 { 43 + /* The pwm2 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */ 44 + status = "okay"; 45 + }; 46 + 47 + /* Colibri PWM<C> */ 48 + &pwm3 { 49 + /* The pwm3 should be disabled to enable atmel_mxt_ts touchscreen for adapter. */ 50 + status = "okay"; 51 + };