xref: /linux/arch/arm/boot/dts/nxp/imx/imx6qdl-rex.dtsi (revision d54bcc3a3dc63bb2d8348c2e34e24bbb48fa1c22)
1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2724ba675SRob Herring/*
3724ba675SRob Herring * Copyright 2014 FEDEVEL, Inc.
4724ba675SRob Herring *
5724ba675SRob Herring * Author: Robert Nelson <robertcnelson@gmail.com>
6724ba675SRob Herring */
7724ba675SRob Herring
8724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
9724ba675SRob Herring#include <dt-bindings/input/input.h>
10724ba675SRob Herring
11724ba675SRob Herring/ {
12724ba675SRob Herring	chosen {
13724ba675SRob Herring		stdout-path = &uart1;
14724ba675SRob Herring	};
15724ba675SRob Herring
16ec20d468SFabio Estevam	reg_3p3v: regulator-3p3v {
17724ba675SRob Herring		compatible = "regulator-fixed";
18724ba675SRob Herring		regulator-name = "3P3V";
19724ba675SRob Herring		regulator-min-microvolt = <3300000>;
20724ba675SRob Herring		regulator-max-microvolt = <3300000>;
21724ba675SRob Herring		regulator-always-on;
22724ba675SRob Herring	};
23724ba675SRob Herring
24ec20d468SFabio Estevam	reg_usbh1_vbus: regulator-usbh1-vbus {
25724ba675SRob Herring		compatible = "regulator-fixed";
26724ba675SRob Herring		pinctrl-names = "default";
27724ba675SRob Herring		regulator-name = "usbh1_vbus";
28724ba675SRob Herring		regulator-min-microvolt = <5000000>;
29724ba675SRob Herring		regulator-max-microvolt = <5000000>;
30724ba675SRob Herring		gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>;
31724ba675SRob Herring		enable-active-high;
32724ba675SRob Herring	};
33724ba675SRob Herring
34ec20d468SFabio Estevam	reg_usb_otg_vbus: regulator-otg-vbus {
35724ba675SRob Herring		compatible = "regulator-fixed";
36724ba675SRob Herring		pinctrl-names = "default";
37724ba675SRob Herring		regulator-name = "usb_otg_vbus";
38724ba675SRob Herring		regulator-min-microvolt = <5000000>;
39724ba675SRob Herring		regulator-max-microvolt = <5000000>;
40724ba675SRob Herring		gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
41724ba675SRob Herring		enable-active-high;
42724ba675SRob Herring	};
43724ba675SRob Herring
44724ba675SRob Herring	leds {
45724ba675SRob Herring		compatible = "gpio-leds";
46724ba675SRob Herring		pinctrl-names = "default";
47724ba675SRob Herring		pinctrl-0 = <&pinctrl_led>;
48724ba675SRob Herring
49724ba675SRob Herring		led0: led-usr {
50724ba675SRob Herring			label = "usr";
51724ba675SRob Herring			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
52724ba675SRob Herring			default-state = "off";
53724ba675SRob Herring			linux,default-trigger = "heartbeat";
54724ba675SRob Herring		};
55724ba675SRob Herring	};
56724ba675SRob Herring
57724ba675SRob Herring	sound {
58724ba675SRob Herring		compatible = "fsl,imx6-rex-sgtl5000",
59724ba675SRob Herring			     "fsl,imx-audio-sgtl5000";
60724ba675SRob Herring		model = "imx6-rex-sgtl5000";
61724ba675SRob Herring		ssi-controller = <&ssi1>;
62724ba675SRob Herring		audio-codec = <&codec>;
63724ba675SRob Herring		audio-routing =
64724ba675SRob Herring			"MIC_IN", "Mic Jack",
65724ba675SRob Herring			"Mic Jack", "Mic Bias",
66724ba675SRob Herring			"Headphone Jack", "HP_OUT";
67724ba675SRob Herring		mux-int-port = <1>;
68724ba675SRob Herring		mux-ext-port = <3>;
69724ba675SRob Herring	};
70724ba675SRob Herring};
71724ba675SRob Herring
72724ba675SRob Herring&audmux {
73724ba675SRob Herring	pinctrl-names = "default";
74724ba675SRob Herring	pinctrl-0 = <&pinctrl_audmux>;
75724ba675SRob Herring	status = "okay";
76724ba675SRob Herring};
77724ba675SRob Herring
78724ba675SRob Herring&ecspi2 {
79724ba675SRob Herring	cs-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
80724ba675SRob Herring	pinctrl-names = "default";
81724ba675SRob Herring	pinctrl-0 = <&pinctrl_ecspi2>;
82724ba675SRob Herring	status = "okay";
83724ba675SRob Herring};
84724ba675SRob Herring
85724ba675SRob Herring&ecspi3 {
86724ba675SRob Herring	cs-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>;
87724ba675SRob Herring	pinctrl-names = "default";
88724ba675SRob Herring	pinctrl-0 = <&pinctrl_ecspi3>;
89724ba675SRob Herring	status = "okay";
90724ba675SRob Herring};
91724ba675SRob Herring
92724ba675SRob Herring&fec {
93724ba675SRob Herring	pinctrl-names = "default";
94724ba675SRob Herring	pinctrl-0 = <&pinctrl_enet>;
95724ba675SRob Herring	phy-mode = "rgmii";
96724ba675SRob Herring	phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
97724ba675SRob Herring	status = "okay";
98724ba675SRob Herring};
99724ba675SRob Herring
100724ba675SRob Herring&hdmi {
101724ba675SRob Herring	ddc-i2c-bus = <&i2c2>;
102724ba675SRob Herring	status = "okay";
103724ba675SRob Herring};
104724ba675SRob Herring
105724ba675SRob Herring&i2c1 {
106724ba675SRob Herring	clock-frequency = <100000>;
107724ba675SRob Herring	pinctrl-names = "default";
108724ba675SRob Herring	pinctrl-0 = <&pinctrl_i2c1>;
109724ba675SRob Herring	status = "okay";
110724ba675SRob Herring
111724ba675SRob Herring	codec: sgtl5000@a {
112724ba675SRob Herring		compatible = "fsl,sgtl5000";
113724ba675SRob Herring		reg = <0x0a>;
114*d54bcc3aSFabio Estevam		#sound-dai-cells = <0>;
115724ba675SRob Herring		clocks = <&clks IMX6QDL_CLK_CKO>;
116724ba675SRob Herring		VDDA-supply = <&reg_3p3v>;
117724ba675SRob Herring		VDDIO-supply = <&reg_3p3v>;
118724ba675SRob Herring	};
119724ba675SRob Herring};
120724ba675SRob Herring
121724ba675SRob Herring&i2c2 {
122724ba675SRob Herring	clock-frequency = <100000>;
123724ba675SRob Herring	pinctrl-names = "default";
124724ba675SRob Herring	pinctrl-0 = <&pinctrl_i2c2>;
125724ba675SRob Herring	status = "okay";
126724ba675SRob Herring
127724ba675SRob Herring	pca9535: gpio-expander@27 {
128724ba675SRob Herring		compatible = "nxp,pca9535";
129724ba675SRob Herring		reg = <0x27>;
130724ba675SRob Herring		gpio-controller;
131724ba675SRob Herring		#gpio-cells = <2>;
132724ba675SRob Herring		pinctrl-names = "default";
133724ba675SRob Herring		pinctrl-0 = <&pinctrl_pca9535>;
134724ba675SRob Herring		interrupt-parent = <&gpio6>;
135724ba675SRob Herring		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
136724ba675SRob Herring		interrupt-controller;
137724ba675SRob Herring		#interrupt-cells = <2>;
138724ba675SRob Herring	};
139724ba675SRob Herring
140724ba675SRob Herring	eeprom@57 {
141724ba675SRob Herring		compatible = "atmel,24c02";
142724ba675SRob Herring		reg = <0x57>;
143724ba675SRob Herring	};
144724ba675SRob Herring};
145724ba675SRob Herring
146724ba675SRob Herring&i2c3 {
147724ba675SRob Herring	clock-frequency = <100000>;
148724ba675SRob Herring	pinctrl-names = "default";
149724ba675SRob Herring	pinctrl-0 = <&pinctrl_i2c3>;
150724ba675SRob Herring	status = "okay";
151724ba675SRob Herring};
152724ba675SRob Herring
153724ba675SRob Herring&iomuxc {
154724ba675SRob Herring	pinctrl-names = "default";
155724ba675SRob Herring	pinctrl-0 = <&pinctrl_hog>;
156724ba675SRob Herring
157724ba675SRob Herring	imx6qdl-rex {
158724ba675SRob Herring		pinctrl_hog: hoggrp {
159724ba675SRob Herring			fsl,pins = <
160724ba675SRob Herring				/* SGTL5000 sys_mclk */
161724ba675SRob Herring				MX6QDL_PAD_GPIO_0__CCM_CLKO1		0x030b0
162724ba675SRob Herring			>;
163724ba675SRob Herring		};
164724ba675SRob Herring
165724ba675SRob Herring		pinctrl_audmux: audmuxgrp {
166724ba675SRob Herring			fsl,pins = <
167724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT7__AUD3_RXD		0x130b0
168724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT4__AUD3_TXC		0x130b0
169724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT5__AUD3_TXD		0x110b0
170724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS		0x130b0
171724ba675SRob Herring			>;
172724ba675SRob Herring		};
173724ba675SRob Herring
174724ba675SRob Herring		pinctrl_ecspi2: ecspi2grp {
175724ba675SRob Herring			fsl,pins = <
176724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO	0x100b1
177724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI	0x100b1
178724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK	0x100b1
179724ba675SRob Herring				/* CS */
180724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26	0x000b1
181724ba675SRob Herring			>;
182724ba675SRob Herring		};
183724ba675SRob Herring
184724ba675SRob Herring		pinctrl_ecspi3: ecspi3grp {
185724ba675SRob Herring			fsl,pins = <
186724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO	0x100b1
187724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI	0x100b1
188724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK	0x100b1
189724ba675SRob Herring				/* CS */
190724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12	0x000b1
191724ba675SRob Herring			>;
192724ba675SRob Herring		};
193724ba675SRob Herring
194724ba675SRob Herring		pinctrl_enet: enetgrp {
195724ba675SRob Herring			fsl,pins = <
196724ba675SRob Herring				MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b0b0
197724ba675SRob Herring				MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0
198724ba675SRob Herring				MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b030
199724ba675SRob Herring				MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
200724ba675SRob Herring				MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
201724ba675SRob Herring				MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
202724ba675SRob Herring				MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
203724ba675SRob Herring				MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
204724ba675SRob Herring				MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0
205724ba675SRob Herring				MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
206724ba675SRob Herring				MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
207724ba675SRob Herring				MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
208724ba675SRob Herring				MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
209724ba675SRob Herring				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
210724ba675SRob Herring				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
211724ba675SRob Herring				MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
212724ba675SRob Herring				/* Phy reset */
213724ba675SRob Herring				MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25	0x000b0
214724ba675SRob Herring			>;
215724ba675SRob Herring		};
216724ba675SRob Herring
217724ba675SRob Herring		pinctrl_i2c1: i2c1grp {
218724ba675SRob Herring			fsl,pins = <
219724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT8__I2C1_SDA		0x4001b8b1
220724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT9__I2C1_SCL		0x4001b8b1
221724ba675SRob Herring			>;
222724ba675SRob Herring		};
223724ba675SRob Herring
224724ba675SRob Herring		pinctrl_i2c2: i2c2grp {
225724ba675SRob Herring			fsl,pins = <
226724ba675SRob Herring				MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
227724ba675SRob Herring				MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
228724ba675SRob Herring			>;
229724ba675SRob Herring		};
230724ba675SRob Herring
231724ba675SRob Herring		pinctrl_i2c3: i2c3grp {
232724ba675SRob Herring			fsl,pins = <
233724ba675SRob Herring				MX6QDL_PAD_EIM_D17__I2C3_SCL		0x4001b8b1
234724ba675SRob Herring				MX6QDL_PAD_EIM_D18__I2C3_SDA		0x4001b8b1
235724ba675SRob Herring			>;
236724ba675SRob Herring		};
237724ba675SRob Herring
238724ba675SRob Herring		pinctrl_led: ledgrp {
239724ba675SRob Herring			fsl,pins = <
240724ba675SRob Herring				/* user led */
241724ba675SRob Herring				MX6QDL_PAD_GPIO_2__GPIO1_IO02		0x80000000
242724ba675SRob Herring			>;
243724ba675SRob Herring		};
244724ba675SRob Herring
245724ba675SRob Herring		pinctrl_pca9535: pca9535grp {
246724ba675SRob Herring			fsl,pins = <
247724ba675SRob Herring				MX6QDL_PAD_NANDF_CS3__GPIO6_IO16	0x17059
248724ba675SRob Herring		   >;
249724ba675SRob Herring		};
250724ba675SRob Herring
251724ba675SRob Herring		pinctrl_uart1: uart1grp {
252724ba675SRob Herring			fsl,pins = <
253724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA	0x1b0b1
254724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
255724ba675SRob Herring			>;
256724ba675SRob Herring		};
257724ba675SRob Herring
258724ba675SRob Herring		pinctrl_uart2: uart2grp {
259724ba675SRob Herring			fsl,pins = <
260724ba675SRob Herring				MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA	0x1b0b1
261724ba675SRob Herring				MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA	0x1b0b1
262724ba675SRob Herring			>;
263724ba675SRob Herring		};
264724ba675SRob Herring
265724ba675SRob Herring		pinctrl_usbh1: usbh1grp {
266724ba675SRob Herring			fsl,pins = <
267724ba675SRob Herring				/* power enable, high active */
268724ba675SRob Herring				MX6QDL_PAD_EIM_D31__GPIO3_IO31		0x10b0
269724ba675SRob Herring			>;
270724ba675SRob Herring		};
271724ba675SRob Herring
272724ba675SRob Herring		pinctrl_usbotg: usbotggrp {
273724ba675SRob Herring			fsl,pins = <
274724ba675SRob Herring				MX6QDL_PAD_GPIO_1__USB_OTG_ID		0x17059
275724ba675SRob Herring				MX6QDL_PAD_EIM_D21__USB_OTG_OC		0x1b0b0
276724ba675SRob Herring				/* power enable, high active */
277724ba675SRob Herring				MX6QDL_PAD_EIM_D22__GPIO3_IO22		0x10b0
278724ba675SRob Herring			>;
279724ba675SRob Herring		};
280724ba675SRob Herring
281724ba675SRob Herring		pinctrl_usdhc2: usdhc2grp {
282724ba675SRob Herring			fsl,pins = <
283724ba675SRob Herring				MX6QDL_PAD_SD2_CMD__SD2_CMD		0x17059
284724ba675SRob Herring				MX6QDL_PAD_SD2_CLK__SD2_CLK		0x10059
285724ba675SRob Herring				MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x17059
286724ba675SRob Herring				MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
287724ba675SRob Herring				MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
288724ba675SRob Herring				MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
289724ba675SRob Herring				/* CD */
290724ba675SRob Herring				MX6QDL_PAD_NANDF_D2__GPIO2_IO02		0x1b0b0
291724ba675SRob Herring				/* WP */
292724ba675SRob Herring				MX6QDL_PAD_NANDF_D3__GPIO2_IO03		0x1f0b0
293724ba675SRob Herring			>;
294724ba675SRob Herring		};
295724ba675SRob Herring
296724ba675SRob Herring		pinctrl_usdhc3: usdhc3grp {
297724ba675SRob Herring			fsl,pins = <
298724ba675SRob Herring				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
299724ba675SRob Herring				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
300724ba675SRob Herring				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
301724ba675SRob Herring				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
302724ba675SRob Herring				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
303724ba675SRob Herring				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
304724ba675SRob Herring				/* CD */
305724ba675SRob Herring				MX6QDL_PAD_NANDF_D0__GPIO2_IO00		0x1b0b0
306724ba675SRob Herring				/* WP */
307724ba675SRob Herring				MX6QDL_PAD_NANDF_D1__GPIO2_IO01		0x1f0b0
308724ba675SRob Herring			>;
309724ba675SRob Herring		};
310724ba675SRob Herring	};
311724ba675SRob Herring};
312724ba675SRob Herring
313724ba675SRob Herring&ssi1 {
314724ba675SRob Herring	status = "okay";
315724ba675SRob Herring};
316724ba675SRob Herring
317724ba675SRob Herring&uart1 {
318724ba675SRob Herring	pinctrl-names = "default";
319724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart1>;
320724ba675SRob Herring	status = "okay";
321724ba675SRob Herring};
322724ba675SRob Herring
323724ba675SRob Herring&uart2 {
324724ba675SRob Herring	pinctrl-names = "default";
325724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart2>;
326724ba675SRob Herring	status = "okay";
327724ba675SRob Herring};
328724ba675SRob Herring
329724ba675SRob Herring&usbh1 {
330724ba675SRob Herring	vbus-supply = <&reg_usbh1_vbus>;
331724ba675SRob Herring	pinctrl-names = "default";
332724ba675SRob Herring	pinctrl-0 = <&pinctrl_usbh1>;
333724ba675SRob Herring	status = "okay";
334724ba675SRob Herring};
335724ba675SRob Herring
336724ba675SRob Herring&usbotg {
337724ba675SRob Herring	vbus-supply = <&reg_usb_otg_vbus>;
338724ba675SRob Herring	pinctrl-names = "default";
339724ba675SRob Herring	pinctrl-0 = <&pinctrl_usbotg>;
340724ba675SRob Herring	status = "okay";
341724ba675SRob Herring};
342724ba675SRob Herring
343724ba675SRob Herring&usdhc2 {
344724ba675SRob Herring	pinctrl-names = "default";
345724ba675SRob Herring	pinctrl-0 = <&pinctrl_usdhc2>;
346724ba675SRob Herring	bus-width = <4>;
347724ba675SRob Herring	cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
348724ba675SRob Herring	wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
349724ba675SRob Herring	status = "okay";
350724ba675SRob Herring};
351724ba675SRob Herring
352724ba675SRob Herring&usdhc3 {
353724ba675SRob Herring	pinctrl-names = "default";
354724ba675SRob Herring	pinctrl-0 = <&pinctrl_usdhc3>;
355724ba675SRob Herring	bus-width = <4>;
356724ba675SRob Herring	cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
357724ba675SRob Herring	wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
358724ba675SRob Herring	status = "okay";
359724ba675SRob Herring};
360