// SPDX-License-Identifier: GPL-2.0-or-later OR MIT /* * Copyright 2014-2022 Toradex * Copyright 2012 Freescale Semiconductor, Inc. * Copyright 2011 Linaro Ltd. */ /dts-v1/; #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> #include <dt-bindings/interrupt-controller/irq.h> #include "imx6q.dtsi" #include "imx6qdl-apalis.dtsi" / { model = "Toradex Apalis iMX6Q/D Module on Ixora Carrier Board V1.2"; compatible = "toradex,apalis_imx6q-ixora-v1.2", "toradex,apalis_imx6q", "fsl,imx6q"; aliases { i2c0 = &i2c1; i2c1 = &i2c3; i2c2 = &i2c2; rtc0 = &rtc_i2c; rtc1 = &snvs_rtc; }; chosen { stdout-path = "serial0:115200n8"; }; leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_leds_ixora>; led4-green { gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>; label = "LED_4_GREEN"; }; led4-red { gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>; label = "LED_4_RED"; }; led5-green { gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>; label = "LED_5_GREEN"; }; led5-red { gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; label = "LED_5_RED"; }; }; reg_3v3_vmmc: regulator-3v3-vmmc { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enable_3v3_vmmc>; regulator-max-microvolt = <3300000>; regulator-min-microvolt = <3300000>; regulator-name = "3v3_vmmc"; startup-delay-us = <100>; }; reg_can1_supply: regulator-can1-supply { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio2 3 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enable_can1_power>; regulator-name = "can1_supply"; }; reg_can2_supply: regulator-can2-supply { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enable_can2_power>; regulator-name = "can2_supply"; }; }; &can1 { xceiver-supply = <®_can1_supply>; status = "okay"; }; &can2 { xceiver-supply = <®_can2_supply>; status = "okay"; }; &gpio1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart24_forceoff>; /* * uart-2-4-on-x21-enable-hog enables the UART transceiver for Apalis * UART2 and UART3. If one wants to disable the transceiver force * the GPIO to output-low, if one wants to control the transceiver * from user space delete the hog node. */ uart-2-4-on-x21-enable-hog { gpio-hog; gpios = <11 GPIO_ACTIVE_HIGH>; /* MXM3 180 */ output-high; }; }; /* I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier board) */ &i2c1 { status = "okay"; /* M41T0M6 real time clock on carrier board */ rtc_i2c: rtc@68 { compatible = "st,m41t0"; reg = <0x68>; }; eeprom: eeprom@50 { compatible = "atmel,24c02"; reg = <0x50>; pagesize = <16>; }; }; /* * I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor on carrier * board) */ &i2c3 { status = "okay"; }; &pcie { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_reset_moci>; /* active-high meaning opposite of regular PERST# active-low polarity */ reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>; reset-gpio-active-high; status = "okay"; }; &pwm1 { status = "okay"; }; &pwm2 { status = "okay"; }; &pwm3 { status = "okay"; }; &pwm4 { status = "okay"; }; ®_usb_host_vbus { status = "okay"; }; ®_usb_otg_vbus { status = "okay"; }; &sata { status = "okay"; }; &sound_spdif { status = "okay"; }; &spdif { status = "okay"; }; &uart1 { status = "okay"; }; &uart2 { status = "okay"; }; &uart4 { status = "okay"; }; &uart5 { status = "okay"; }; &usbh1 { disable-over-current; vbus-supply = <®_usb_host_vbus>; status = "okay"; }; &usbotg { disable-over-current; vbus-supply = <®_usb_otg_vbus>; status = "okay"; }; /* MMC1 */ &usdhc1 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&pinctrl_usdhc1_4bit &pinctrl_mmc_cd>; pinctrl-1 = <&pinctrl_usdhc1_4bit_sleep &pinctrl_mmc_cd_sleep>; bus-width = <4>; cap-power-off-card; vmmc-supply = <®_3v3_vmmc>; status = "okay"; }; &iomuxc { pinctrl_enable_3v3_vmmc: enable3v3vmmcgrp { fsl,pins = < MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0 >; }; pinctrl_enable_can1_power: enablecan1powergrp { fsl,pins = < MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0 >; }; pinctrl_enable_can2_power: enablecan2powergrp { fsl,pins = < MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x1b0b0 >; }; pinctrl_uart24_forceoff: uart24forceoffgrp { fsl,pins = < MX6QDL_PAD_SD2_CMD__GPIO1_IO11 0x1b0b0 >; }; pinctrl_leds_ixora: ledsixoragrp { fsl,pins = < MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x1b0b0 MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x1b0b0 MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0 MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0 >; }; pinctrl_mmc_cd_sleep: mmccdslpgrp { fsl,pins = < /* MMC1 CD */ MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x0 >; }; pinctrl_usdhc1_4bit_sleep: usdhc1-4bitslpgrp { fsl,pins = < MX6QDL_PAD_SD1_CMD__SD1_CMD 0x3000 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x3000 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x3000 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x3000 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x3000 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x3000 >; }; };