xref: /linux/arch/arm/boot/dts/nxp/imx/imx6q-apalis-ixora-v1.2.dts (revision 06d07429858317ded2db7986113a9e0129cd599b)
1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2724ba675SRob Herring/*
3724ba675SRob Herring * Copyright 2014-2022 Toradex
4724ba675SRob Herring * Copyright 2012 Freescale Semiconductor, Inc.
5724ba675SRob Herring * Copyright 2011 Linaro Ltd.
6724ba675SRob Herring */
7724ba675SRob Herring
8724ba675SRob Herring/dts-v1/;
9724ba675SRob Herring
10724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
11724ba675SRob Herring#include <dt-bindings/input/input.h>
12724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h>
13724ba675SRob Herring#include "imx6q.dtsi"
14724ba675SRob Herring#include "imx6qdl-apalis.dtsi"
15724ba675SRob Herring
16724ba675SRob Herring/ {
17724ba675SRob Herring	model = "Toradex Apalis iMX6Q/D Module on Ixora Carrier Board V1.2";
18724ba675SRob Herring	compatible = "toradex,apalis_imx6q-ixora-v1.2", "toradex,apalis_imx6q",
19724ba675SRob Herring		     "fsl,imx6q";
20724ba675SRob Herring
21724ba675SRob Herring	aliases {
22724ba675SRob Herring		i2c0 = &i2c1;
23724ba675SRob Herring		i2c1 = &i2c3;
24724ba675SRob Herring		i2c2 = &i2c2;
25724ba675SRob Herring		rtc0 = &rtc_i2c;
26724ba675SRob Herring		rtc1 = &snvs_rtc;
27724ba675SRob Herring	};
28724ba675SRob Herring
29724ba675SRob Herring	chosen {
30724ba675SRob Herring		stdout-path = "serial0:115200n8";
31724ba675SRob Herring	};
32724ba675SRob Herring
33724ba675SRob Herring	leds {
34724ba675SRob Herring		compatible = "gpio-leds";
35724ba675SRob Herring
36724ba675SRob Herring		pinctrl-names = "default";
37724ba675SRob Herring		pinctrl-0 = <&pinctrl_leds_ixora>;
38724ba675SRob Herring
39724ba675SRob Herring		led4-green {
40724ba675SRob Herring			gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
41724ba675SRob Herring			label = "LED_4_GREEN";
42724ba675SRob Herring		};
43724ba675SRob Herring
44724ba675SRob Herring		led4-red {
45724ba675SRob Herring			gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
46724ba675SRob Herring			label = "LED_4_RED";
47724ba675SRob Herring		};
48724ba675SRob Herring
49724ba675SRob Herring		led5-green {
50724ba675SRob Herring			gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
51724ba675SRob Herring			label = "LED_5_GREEN";
52724ba675SRob Herring		};
53724ba675SRob Herring
54724ba675SRob Herring		led5-red {
55724ba675SRob Herring			gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
56724ba675SRob Herring			label = "LED_5_RED";
57724ba675SRob Herring		};
58724ba675SRob Herring	};
59724ba675SRob Herring
60724ba675SRob Herring	reg_3v3_vmmc: regulator-3v3-vmmc {
61724ba675SRob Herring		compatible = "regulator-fixed";
62724ba675SRob Herring		enable-active-high;
63724ba675SRob Herring		gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>;
64724ba675SRob Herring		pinctrl-names = "default";
65724ba675SRob Herring		pinctrl-0 = <&pinctrl_enable_3v3_vmmc>;
66724ba675SRob Herring		regulator-max-microvolt = <3300000>;
67724ba675SRob Herring		regulator-min-microvolt = <3300000>;
68724ba675SRob Herring		regulator-name = "3v3_vmmc";
69724ba675SRob Herring		startup-delay-us = <100>;
70724ba675SRob Herring	};
71724ba675SRob Herring
72724ba675SRob Herring	reg_can1_supply: regulator-can1-supply {
73724ba675SRob Herring		compatible = "regulator-fixed";
74724ba675SRob Herring		enable-active-high;
75724ba675SRob Herring		gpio = <&gpio2 3 GPIO_ACTIVE_HIGH>;
76724ba675SRob Herring		pinctrl-names = "default";
77724ba675SRob Herring		pinctrl-0 = <&pinctrl_enable_can1_power>;
78724ba675SRob Herring		regulator-name = "can1_supply";
79*b76bbf83SAndrejs Cainikovs		startup-delay-us = <1000>;
80724ba675SRob Herring	};
81724ba675SRob Herring
82724ba675SRob Herring	reg_can2_supply: regulator-can2-supply {
83724ba675SRob Herring		compatible = "regulator-fixed";
84724ba675SRob Herring		enable-active-high;
85724ba675SRob Herring		gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>;
86724ba675SRob Herring		pinctrl-names = "default";
87724ba675SRob Herring		pinctrl-0 = <&pinctrl_enable_can2_power>;
88724ba675SRob Herring		regulator-name = "can2_supply";
89*b76bbf83SAndrejs Cainikovs		startup-delay-us = <1000>;
90724ba675SRob Herring	};
91724ba675SRob Herring};
92724ba675SRob Herring
93724ba675SRob Herring&can1 {
94724ba675SRob Herring	xceiver-supply = <&reg_can1_supply>;
95724ba675SRob Herring	status = "okay";
96724ba675SRob Herring};
97724ba675SRob Herring
98724ba675SRob Herring&can2 {
99724ba675SRob Herring	xceiver-supply = <&reg_can2_supply>;
100724ba675SRob Herring	status = "okay";
101724ba675SRob Herring};
102724ba675SRob Herring
103724ba675SRob Herring&gpio1 {
104724ba675SRob Herring	pinctrl-names = "default";
105724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart24_forceoff>;
106724ba675SRob Herring
107724ba675SRob Herring	/*
108724ba675SRob Herring	 * uart-2-4-on-x21-enable-hog enables the UART transceiver for Apalis
109724ba675SRob Herring	 * UART2 and UART3. If one wants to disable the transceiver force
110724ba675SRob Herring	 * the GPIO to output-low, if one wants to control the transceiver
111724ba675SRob Herring	 * from user space delete the hog node.
112724ba675SRob Herring	 */
113724ba675SRob Herring	uart-2-4-on-x21-enable-hog {
114724ba675SRob Herring		gpio-hog;
115724ba675SRob Herring		gpios = <11 GPIO_ACTIVE_HIGH>; /* MXM3 180 */
116724ba675SRob Herring		output-high;
117724ba675SRob Herring	};
118724ba675SRob Herring};
119724ba675SRob Herring
120724ba675SRob Herring/* I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier board) */
121724ba675SRob Herring&i2c1 {
122724ba675SRob Herring	status = "okay";
123724ba675SRob Herring
124724ba675SRob Herring	/* M41T0M6 real time clock on carrier board */
125724ba675SRob Herring	rtc_i2c: rtc@68 {
126724ba675SRob Herring		compatible = "st,m41t0";
127724ba675SRob Herring		reg = <0x68>;
128724ba675SRob Herring	};
129724ba675SRob Herring
130724ba675SRob Herring	eeprom: eeprom@50 {
131724ba675SRob Herring		compatible = "atmel,24c02";
132724ba675SRob Herring		reg = <0x50>;
133724ba675SRob Herring		pagesize = <16>;
134724ba675SRob Herring	};
135724ba675SRob Herring};
136724ba675SRob Herring
137724ba675SRob Herring/*
138724ba675SRob Herring * I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor on carrier
139724ba675SRob Herring * board)
140724ba675SRob Herring */
141724ba675SRob Herring&i2c3 {
142724ba675SRob Herring	status = "okay";
143724ba675SRob Herring};
144724ba675SRob Herring
145724ba675SRob Herring&pcie {
146724ba675SRob Herring	pinctrl-names = "default";
147724ba675SRob Herring	pinctrl-0 = <&pinctrl_reset_moci>;
148724ba675SRob Herring	/* active-high meaning opposite of regular PERST# active-low polarity */
149724ba675SRob Herring	reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
150724ba675SRob Herring	reset-gpio-active-high;
151724ba675SRob Herring	status = "okay";
152724ba675SRob Herring};
153724ba675SRob Herring
154724ba675SRob Herring&pwm1 {
155724ba675SRob Herring	status = "okay";
156724ba675SRob Herring};
157724ba675SRob Herring
158724ba675SRob Herring&pwm2 {
159724ba675SRob Herring	status = "okay";
160724ba675SRob Herring};
161724ba675SRob Herring
162724ba675SRob Herring&pwm3 {
163724ba675SRob Herring	status = "okay";
164724ba675SRob Herring};
165724ba675SRob Herring
166724ba675SRob Herring&pwm4 {
167724ba675SRob Herring	status = "okay";
168724ba675SRob Herring};
169724ba675SRob Herring
170724ba675SRob Herring&reg_usb_host_vbus {
171724ba675SRob Herring	status = "okay";
172724ba675SRob Herring};
173724ba675SRob Herring
174724ba675SRob Herring&reg_usb_otg_vbus {
175724ba675SRob Herring	status = "okay";
176724ba675SRob Herring};
177724ba675SRob Herring
178724ba675SRob Herring&sata {
179724ba675SRob Herring	status = "okay";
180724ba675SRob Herring};
181724ba675SRob Herring
182724ba675SRob Herring&sound_spdif {
183724ba675SRob Herring	status = "okay";
184724ba675SRob Herring};
185724ba675SRob Herring
186724ba675SRob Herring&spdif {
187724ba675SRob Herring	status = "okay";
188724ba675SRob Herring};
189724ba675SRob Herring
190724ba675SRob Herring&uart1 {
191724ba675SRob Herring	status = "okay";
192724ba675SRob Herring};
193724ba675SRob Herring
194724ba675SRob Herring&uart2 {
195724ba675SRob Herring	status = "okay";
196724ba675SRob Herring};
197724ba675SRob Herring
198724ba675SRob Herring&uart4 {
199724ba675SRob Herring	status = "okay";
200724ba675SRob Herring};
201724ba675SRob Herring
202724ba675SRob Herring&uart5 {
203724ba675SRob Herring	status = "okay";
204724ba675SRob Herring};
205724ba675SRob Herring
206724ba675SRob Herring&usbh1 {
207724ba675SRob Herring	disable-over-current;
208724ba675SRob Herring	vbus-supply = <&reg_usb_host_vbus>;
209724ba675SRob Herring	status = "okay";
210724ba675SRob Herring};
211724ba675SRob Herring
212724ba675SRob Herring&usbotg {
213724ba675SRob Herring	disable-over-current;
214724ba675SRob Herring	vbus-supply = <&reg_usb_otg_vbus>;
215724ba675SRob Herring	status = "okay";
216724ba675SRob Herring};
217724ba675SRob Herring
218724ba675SRob Herring/* MMC1 */
219724ba675SRob Herring&usdhc1 {
220724ba675SRob Herring	pinctrl-names = "default", "sleep";
221724ba675SRob Herring	pinctrl-0 = <&pinctrl_usdhc1_4bit &pinctrl_mmc_cd>;
222724ba675SRob Herring	pinctrl-1 = <&pinctrl_usdhc1_4bit_sleep &pinctrl_mmc_cd_sleep>;
223724ba675SRob Herring	bus-width = <4>;
224724ba675SRob Herring	cap-power-off-card;
225724ba675SRob Herring	vmmc-supply = <&reg_3v3_vmmc>;
226724ba675SRob Herring	status = "okay";
227724ba675SRob Herring};
228724ba675SRob Herring
229724ba675SRob Herring&iomuxc {
230724ba675SRob Herring	pinctrl_enable_3v3_vmmc: enable3v3vmmcgrp {
231724ba675SRob Herring		fsl,pins = <
232724ba675SRob Herring			MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
233724ba675SRob Herring		>;
234724ba675SRob Herring	};
235724ba675SRob Herring
236724ba675SRob Herring	pinctrl_enable_can1_power: enablecan1powergrp {
237724ba675SRob Herring		fsl,pins = <
238724ba675SRob Herring			MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
239724ba675SRob Herring		>;
240724ba675SRob Herring	};
241724ba675SRob Herring
242724ba675SRob Herring	pinctrl_enable_can2_power: enablecan2powergrp {
243724ba675SRob Herring		fsl,pins = <
244724ba675SRob Herring			MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x1b0b0
245724ba675SRob Herring		>;
246724ba675SRob Herring	};
247724ba675SRob Herring
248724ba675SRob Herring	pinctrl_uart24_forceoff: uart24forceoffgrp {
249724ba675SRob Herring		fsl,pins = <
250724ba675SRob Herring			MX6QDL_PAD_SD2_CMD__GPIO1_IO11 0x1b0b0
251724ba675SRob Herring		>;
252724ba675SRob Herring	};
253724ba675SRob Herring
254724ba675SRob Herring	pinctrl_leds_ixora: ledsixoragrp {
255724ba675SRob Herring		fsl,pins = <
256724ba675SRob Herring			MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x1b0b0
257724ba675SRob Herring			MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x1b0b0
258724ba675SRob Herring			MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
259724ba675SRob Herring			MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
260724ba675SRob Herring		>;
261724ba675SRob Herring	};
262724ba675SRob Herring
263724ba675SRob Herring	pinctrl_mmc_cd_sleep: mmccdslpgrp {
264724ba675SRob Herring		fsl,pins = <
265724ba675SRob Herring			 /* MMC1 CD */
266724ba675SRob Herring			MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x0
267724ba675SRob Herring		>;
268724ba675SRob Herring	};
269724ba675SRob Herring
270724ba675SRob Herring	pinctrl_usdhc1_4bit_sleep: usdhc1-4bitslpgrp {
271724ba675SRob Herring		fsl,pins = <
272724ba675SRob Herring			MX6QDL_PAD_SD1_CMD__SD1_CMD     0x3000
273724ba675SRob Herring			MX6QDL_PAD_SD1_CLK__SD1_CLK     0x3000
274724ba675SRob Herring			MX6QDL_PAD_SD1_DAT0__SD1_DATA0  0x3000
275724ba675SRob Herring			MX6QDL_PAD_SD1_DAT1__SD1_DATA1  0x3000
276724ba675SRob Herring			MX6QDL_PAD_SD1_DAT2__SD1_DATA2  0x3000
277724ba675SRob Herring			MX6QDL_PAD_SD1_DAT3__SD1_DATA3  0x3000
278724ba675SRob Herring		>;
279724ba675SRob Herring	};
280724ba675SRob Herring};
281