1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2/* 3 * Copyright 2014-2022 Toradex 4 * Copyright 2012 Freescale Semiconductor, Inc. 5 * Copyright 2011 Linaro Ltd. 6 */ 7 8/dts-v1/; 9 10#include <dt-bindings/gpio/gpio.h> 11#include <dt-bindings/input/input.h> 12#include <dt-bindings/interrupt-controller/irq.h> 13#include "imx6q.dtsi" 14#include "imx6qdl-apalis.dtsi" 15 16/ { 17 model = "Toradex Apalis iMX6Q/D Module on Ixora Carrier Board V1.2"; 18 compatible = "toradex,apalis_imx6q-ixora-v1.2", "toradex,apalis_imx6q", 19 "fsl,imx6q"; 20 21 aliases { 22 i2c0 = &i2c1; 23 i2c1 = &i2c3; 24 i2c2 = &i2c2; 25 rtc0 = &rtc_i2c; 26 rtc1 = &snvs_rtc; 27 }; 28 29 chosen { 30 stdout-path = "serial0:115200n8"; 31 }; 32 33 leds { 34 compatible = "gpio-leds"; 35 36 pinctrl-names = "default"; 37 pinctrl-0 = <&pinctrl_leds_ixora>; 38 39 led4-green { 40 gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>; 41 label = "LED_4_GREEN"; 42 }; 43 44 led4-red { 45 gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>; 46 label = "LED_4_RED"; 47 }; 48 49 led5-green { 50 gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>; 51 label = "LED_5_GREEN"; 52 }; 53 54 led5-red { 55 gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; 56 label = "LED_5_RED"; 57 }; 58 }; 59 60 reg_3v3_vmmc: regulator-3v3-vmmc { 61 compatible = "regulator-fixed"; 62 enable-active-high; 63 gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>; 64 pinctrl-names = "default"; 65 pinctrl-0 = <&pinctrl_enable_3v3_vmmc>; 66 regulator-max-microvolt = <3300000>; 67 regulator-min-microvolt = <3300000>; 68 regulator-name = "3v3_vmmc"; 69 startup-delay-us = <100>; 70 }; 71 72 reg_can1_supply: regulator-can1-supply { 73 compatible = "regulator-fixed"; 74 enable-active-high; 75 gpio = <&gpio2 3 GPIO_ACTIVE_HIGH>; 76 pinctrl-names = "default"; 77 pinctrl-0 = <&pinctrl_enable_can1_power>; 78 regulator-name = "can1_supply"; 79 startup-delay-us = <1000>; 80 }; 81 82 reg_can2_supply: regulator-can2-supply { 83 compatible = "regulator-fixed"; 84 enable-active-high; 85 gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; 86 pinctrl-names = "default"; 87 pinctrl-0 = <&pinctrl_enable_can2_power>; 88 regulator-name = "can2_supply"; 89 startup-delay-us = <1000>; 90 }; 91}; 92 93&can1 { 94 xceiver-supply = <®_can1_supply>; 95 status = "okay"; 96}; 97 98&can2 { 99 xceiver-supply = <®_can2_supply>; 100 status = "okay"; 101}; 102 103&gpio1 { 104 pinctrl-names = "default"; 105 pinctrl-0 = <&pinctrl_uart24_forceoff>; 106 107 /* 108 * uart-2-4-on-x21-enable-hog enables the UART transceiver for Apalis 109 * UART2 and UART3. If one wants to disable the transceiver force 110 * the GPIO to output-low, if one wants to control the transceiver 111 * from user space delete the hog node. 112 */ 113 uart-2-4-on-x21-enable-hog { 114 gpio-hog; 115 gpios = <11 GPIO_ACTIVE_HIGH>; /* MXM3 180 */ 116 output-high; 117 }; 118}; 119 120/* I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier board) */ 121&i2c1 { 122 status = "okay"; 123 124 /* M41T0M6 real time clock on carrier board */ 125 rtc_i2c: rtc@68 { 126 compatible = "st,m41t0"; 127 reg = <0x68>; 128 }; 129 130 eeprom: eeprom@50 { 131 compatible = "atmel,24c02"; 132 reg = <0x50>; 133 pagesize = <16>; 134 }; 135}; 136 137/* 138 * I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor on carrier 139 * board) 140 */ 141&i2c3 { 142 status = "okay"; 143}; 144 145&pcie { 146 pinctrl-names = "default"; 147 pinctrl-0 = <&pinctrl_reset_moci>; 148 /* active-high meaning opposite of regular PERST# active-low polarity */ 149 reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>; 150 reset-gpio-active-high; 151 status = "okay"; 152}; 153 154&pwm1 { 155 status = "okay"; 156}; 157 158&pwm2 { 159 status = "okay"; 160}; 161 162&pwm3 { 163 status = "okay"; 164}; 165 166&pwm4 { 167 status = "okay"; 168}; 169 170®_usb_host_vbus { 171 status = "okay"; 172}; 173 174®_usb_otg_vbus { 175 status = "okay"; 176}; 177 178&sata { 179 status = "okay"; 180}; 181 182&sound_spdif { 183 status = "okay"; 184}; 185 186&spdif { 187 status = "okay"; 188}; 189 190&uart1 { 191 status = "okay"; 192}; 193 194&uart2 { 195 status = "okay"; 196}; 197 198&uart4 { 199 status = "okay"; 200}; 201 202&uart5 { 203 status = "okay"; 204}; 205 206&usbh1 { 207 disable-over-current; 208 vbus-supply = <®_usb_host_vbus>; 209 status = "okay"; 210}; 211 212&usbotg { 213 disable-over-current; 214 vbus-supply = <®_usb_otg_vbus>; 215 status = "okay"; 216}; 217 218/* MMC1 */ 219&usdhc1 { 220 pinctrl-names = "default", "sleep"; 221 pinctrl-0 = <&pinctrl_usdhc1_4bit &pinctrl_mmc_cd>; 222 pinctrl-1 = <&pinctrl_usdhc1_4bit_sleep &pinctrl_mmc_cd_sleep>; 223 bus-width = <4>; 224 cap-power-off-card; 225 vmmc-supply = <®_3v3_vmmc>; 226 status = "okay"; 227}; 228 229&iomuxc { 230 pinctrl_enable_3v3_vmmc: enable3v3vmmcgrp { 231 fsl,pins = < 232 MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0 233 >; 234 }; 235 236 pinctrl_enable_can1_power: enablecan1powergrp { 237 fsl,pins = < 238 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0 239 >; 240 }; 241 242 pinctrl_enable_can2_power: enablecan2powergrp { 243 fsl,pins = < 244 MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x1b0b0 245 >; 246 }; 247 248 pinctrl_uart24_forceoff: uart24forceoffgrp { 249 fsl,pins = < 250 MX6QDL_PAD_SD2_CMD__GPIO1_IO11 0x1b0b0 251 >; 252 }; 253 254 pinctrl_leds_ixora: ledsixoragrp { 255 fsl,pins = < 256 MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x1b0b0 257 MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x1b0b0 258 MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0 259 MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0 260 >; 261 }; 262 263 pinctrl_mmc_cd_sleep: mmccdslpgrp { 264 fsl,pins = < 265 /* MMC1 CD */ 266 MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x0 267 >; 268 }; 269 270 pinctrl_usdhc1_4bit_sleep: usdhc1-4bitslpgrp { 271 fsl,pins = < 272 MX6QDL_PAD_SD1_CMD__SD1_CMD 0x3000 273 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x3000 274 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x3000 275 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x3000 276 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x3000 277 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x3000 278 >; 279 }; 280}; 281