xref: /linux/arch/arm/boot/dts/nxp/imx/imx6qdl-rex.dtsi (revision ec20d468d05f4cd5a489d232f3d98745e11e948e)
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
16*ec20d468SFabio 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
24*ec20d468SFabio 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
34*ec20d468SFabio 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>;
114724ba675SRob Herring		clocks = <&clks IMX6QDL_CLK_CKO>;
115724ba675SRob Herring		VDDA-supply = <&reg_3p3v>;
116724ba675SRob Herring		VDDIO-supply = <&reg_3p3v>;
117724ba675SRob Herring	};
118724ba675SRob Herring};
119724ba675SRob Herring
120724ba675SRob Herring&i2c2 {
121724ba675SRob Herring	clock-frequency = <100000>;
122724ba675SRob Herring	pinctrl-names = "default";
123724ba675SRob Herring	pinctrl-0 = <&pinctrl_i2c2>;
124724ba675SRob Herring	status = "okay";
125724ba675SRob Herring
126724ba675SRob Herring	pca9535: gpio-expander@27 {
127724ba675SRob Herring		compatible = "nxp,pca9535";
128724ba675SRob Herring		reg = <0x27>;
129724ba675SRob Herring		gpio-controller;
130724ba675SRob Herring		#gpio-cells = <2>;
131724ba675SRob Herring		pinctrl-names = "default";
132724ba675SRob Herring		pinctrl-0 = <&pinctrl_pca9535>;
133724ba675SRob Herring		interrupt-parent = <&gpio6>;
134724ba675SRob Herring		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
135724ba675SRob Herring		interrupt-controller;
136724ba675SRob Herring		#interrupt-cells = <2>;
137724ba675SRob Herring	};
138724ba675SRob Herring
139724ba675SRob Herring	eeprom@57 {
140724ba675SRob Herring		compatible = "atmel,24c02";
141724ba675SRob Herring		reg = <0x57>;
142724ba675SRob Herring	};
143724ba675SRob Herring};
144724ba675SRob Herring
145724ba675SRob Herring&i2c3 {
146724ba675SRob Herring	clock-frequency = <100000>;
147724ba675SRob Herring	pinctrl-names = "default";
148724ba675SRob Herring	pinctrl-0 = <&pinctrl_i2c3>;
149724ba675SRob Herring	status = "okay";
150724ba675SRob Herring};
151724ba675SRob Herring
152724ba675SRob Herring&iomuxc {
153724ba675SRob Herring	pinctrl-names = "default";
154724ba675SRob Herring	pinctrl-0 = <&pinctrl_hog>;
155724ba675SRob Herring
156724ba675SRob Herring	imx6qdl-rex {
157724ba675SRob Herring		pinctrl_hog: hoggrp {
158724ba675SRob Herring			fsl,pins = <
159724ba675SRob Herring				/* SGTL5000 sys_mclk */
160724ba675SRob Herring				MX6QDL_PAD_GPIO_0__CCM_CLKO1		0x030b0
161724ba675SRob Herring			>;
162724ba675SRob Herring		};
163724ba675SRob Herring
164724ba675SRob Herring		pinctrl_audmux: audmuxgrp {
165724ba675SRob Herring			fsl,pins = <
166724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT7__AUD3_RXD		0x130b0
167724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT4__AUD3_TXC		0x130b0
168724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT5__AUD3_TXD		0x110b0
169724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS		0x130b0
170724ba675SRob Herring			>;
171724ba675SRob Herring		};
172724ba675SRob Herring
173724ba675SRob Herring		pinctrl_ecspi2: ecspi2grp {
174724ba675SRob Herring			fsl,pins = <
175724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO	0x100b1
176724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI	0x100b1
177724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK	0x100b1
178724ba675SRob Herring				/* CS */
179724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26	0x000b1
180724ba675SRob Herring			>;
181724ba675SRob Herring		};
182724ba675SRob Herring
183724ba675SRob Herring		pinctrl_ecspi3: ecspi3grp {
184724ba675SRob Herring			fsl,pins = <
185724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO	0x100b1
186724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI	0x100b1
187724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK	0x100b1
188724ba675SRob Herring				/* CS */
189724ba675SRob Herring				MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12	0x000b1
190724ba675SRob Herring			>;
191724ba675SRob Herring		};
192724ba675SRob Herring
193724ba675SRob Herring		pinctrl_enet: enetgrp {
194724ba675SRob Herring			fsl,pins = <
195724ba675SRob Herring				MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b0b0
196724ba675SRob Herring				MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0
197724ba675SRob Herring				MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b030
198724ba675SRob Herring				MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
199724ba675SRob Herring				MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
200724ba675SRob Herring				MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
201724ba675SRob Herring				MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
202724ba675SRob Herring				MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
203724ba675SRob Herring				MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0
204724ba675SRob Herring				MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
205724ba675SRob Herring				MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
206724ba675SRob Herring				MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
207724ba675SRob Herring				MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
208724ba675SRob Herring				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
209724ba675SRob Herring				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
210724ba675SRob Herring				MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
211724ba675SRob Herring				/* Phy reset */
212724ba675SRob Herring				MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25	0x000b0
213724ba675SRob Herring			>;
214724ba675SRob Herring		};
215724ba675SRob Herring
216724ba675SRob Herring		pinctrl_i2c1: i2c1grp {
217724ba675SRob Herring			fsl,pins = <
218724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT8__I2C1_SDA		0x4001b8b1
219724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT9__I2C1_SCL		0x4001b8b1
220724ba675SRob Herring			>;
221724ba675SRob Herring		};
222724ba675SRob Herring
223724ba675SRob Herring		pinctrl_i2c2: i2c2grp {
224724ba675SRob Herring			fsl,pins = <
225724ba675SRob Herring				MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
226724ba675SRob Herring				MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
227724ba675SRob Herring			>;
228724ba675SRob Herring		};
229724ba675SRob Herring
230724ba675SRob Herring		pinctrl_i2c3: i2c3grp {
231724ba675SRob Herring			fsl,pins = <
232724ba675SRob Herring				MX6QDL_PAD_EIM_D17__I2C3_SCL		0x4001b8b1
233724ba675SRob Herring				MX6QDL_PAD_EIM_D18__I2C3_SDA		0x4001b8b1
234724ba675SRob Herring			>;
235724ba675SRob Herring		};
236724ba675SRob Herring
237724ba675SRob Herring		pinctrl_led: ledgrp {
238724ba675SRob Herring			fsl,pins = <
239724ba675SRob Herring				/* user led */
240724ba675SRob Herring				MX6QDL_PAD_GPIO_2__GPIO1_IO02		0x80000000
241724ba675SRob Herring			>;
242724ba675SRob Herring		};
243724ba675SRob Herring
244724ba675SRob Herring		pinctrl_pca9535: pca9535grp {
245724ba675SRob Herring			fsl,pins = <
246724ba675SRob Herring				MX6QDL_PAD_NANDF_CS3__GPIO6_IO16	0x17059
247724ba675SRob Herring		   >;
248724ba675SRob Herring		};
249724ba675SRob Herring
250724ba675SRob Herring		pinctrl_uart1: uart1grp {
251724ba675SRob Herring			fsl,pins = <
252724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA	0x1b0b1
253724ba675SRob Herring				MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
254724ba675SRob Herring			>;
255724ba675SRob Herring		};
256724ba675SRob Herring
257724ba675SRob Herring		pinctrl_uart2: uart2grp {
258724ba675SRob Herring			fsl,pins = <
259724ba675SRob Herring				MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA	0x1b0b1
260724ba675SRob Herring				MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA	0x1b0b1
261724ba675SRob Herring			>;
262724ba675SRob Herring		};
263724ba675SRob Herring
264724ba675SRob Herring		pinctrl_usbh1: usbh1grp {
265724ba675SRob Herring			fsl,pins = <
266724ba675SRob Herring				/* power enable, high active */
267724ba675SRob Herring				MX6QDL_PAD_EIM_D31__GPIO3_IO31		0x10b0
268724ba675SRob Herring			>;
269724ba675SRob Herring		};
270724ba675SRob Herring
271724ba675SRob Herring		pinctrl_usbotg: usbotggrp {
272724ba675SRob Herring			fsl,pins = <
273724ba675SRob Herring				MX6QDL_PAD_GPIO_1__USB_OTG_ID		0x17059
274724ba675SRob Herring				MX6QDL_PAD_EIM_D21__USB_OTG_OC		0x1b0b0
275724ba675SRob Herring				/* power enable, high active */
276724ba675SRob Herring				MX6QDL_PAD_EIM_D22__GPIO3_IO22		0x10b0
277724ba675SRob Herring			>;
278724ba675SRob Herring		};
279724ba675SRob Herring
280724ba675SRob Herring		pinctrl_usdhc2: usdhc2grp {
281724ba675SRob Herring			fsl,pins = <
282724ba675SRob Herring				MX6QDL_PAD_SD2_CMD__SD2_CMD		0x17059
283724ba675SRob Herring				MX6QDL_PAD_SD2_CLK__SD2_CLK		0x10059
284724ba675SRob Herring				MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x17059
285724ba675SRob Herring				MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
286724ba675SRob Herring				MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
287724ba675SRob Herring				MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
288724ba675SRob Herring				/* CD */
289724ba675SRob Herring				MX6QDL_PAD_NANDF_D2__GPIO2_IO02		0x1b0b0
290724ba675SRob Herring				/* WP */
291724ba675SRob Herring				MX6QDL_PAD_NANDF_D3__GPIO2_IO03		0x1f0b0
292724ba675SRob Herring			>;
293724ba675SRob Herring		};
294724ba675SRob Herring
295724ba675SRob Herring		pinctrl_usdhc3: usdhc3grp {
296724ba675SRob Herring			fsl,pins = <
297724ba675SRob Herring				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
298724ba675SRob Herring				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
299724ba675SRob Herring				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
300724ba675SRob Herring				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
301724ba675SRob Herring				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
302724ba675SRob Herring				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
303724ba675SRob Herring				/* CD */
304724ba675SRob Herring				MX6QDL_PAD_NANDF_D0__GPIO2_IO00		0x1b0b0
305724ba675SRob Herring				/* WP */
306724ba675SRob Herring				MX6QDL_PAD_NANDF_D1__GPIO2_IO01		0x1f0b0
307724ba675SRob Herring			>;
308724ba675SRob Herring		};
309724ba675SRob Herring	};
310724ba675SRob Herring};
311724ba675SRob Herring
312724ba675SRob Herring&ssi1 {
313724ba675SRob Herring	status = "okay";
314724ba675SRob Herring};
315724ba675SRob Herring
316724ba675SRob Herring&uart1 {
317724ba675SRob Herring	pinctrl-names = "default";
318724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart1>;
319724ba675SRob Herring	status = "okay";
320724ba675SRob Herring};
321724ba675SRob Herring
322724ba675SRob Herring&uart2 {
323724ba675SRob Herring	pinctrl-names = "default";
324724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart2>;
325724ba675SRob Herring	status = "okay";
326724ba675SRob Herring};
327724ba675SRob Herring
328724ba675SRob Herring&usbh1 {
329724ba675SRob Herring	vbus-supply = <&reg_usbh1_vbus>;
330724ba675SRob Herring	pinctrl-names = "default";
331724ba675SRob Herring	pinctrl-0 = <&pinctrl_usbh1>;
332724ba675SRob Herring	status = "okay";
333724ba675SRob Herring};
334724ba675SRob Herring
335724ba675SRob Herring&usbotg {
336724ba675SRob Herring	vbus-supply = <&reg_usb_otg_vbus>;
337724ba675SRob Herring	pinctrl-names = "default";
338724ba675SRob Herring	pinctrl-0 = <&pinctrl_usbotg>;
339724ba675SRob Herring	status = "okay";
340724ba675SRob Herring};
341724ba675SRob Herring
342724ba675SRob Herring&usdhc2 {
343724ba675SRob Herring	pinctrl-names = "default";
344724ba675SRob Herring	pinctrl-0 = <&pinctrl_usdhc2>;
345724ba675SRob Herring	bus-width = <4>;
346724ba675SRob Herring	cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
347724ba675SRob Herring	wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
348724ba675SRob Herring	status = "okay";
349724ba675SRob Herring};
350724ba675SRob Herring
351724ba675SRob Herring&usdhc3 {
352724ba675SRob Herring	pinctrl-names = "default";
353724ba675SRob Herring	pinctrl-0 = <&pinctrl_usdhc3>;
354724ba675SRob Herring	bus-width = <4>;
355724ba675SRob Herring	cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
356724ba675SRob Herring	wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
357724ba675SRob Herring	status = "okay";
358724ba675SRob Herring};
359