1270866Simp/*
2270866Simp * Copyright 2013 Data Modul AG
3270866Simp *
4270866Simp * The code contained herein is licensed under the GNU General Public
5270866Simp * License. You may obtain a copy of the GNU General Public License
6270866Simp * Version 2 or later at the following locations:
7270866Simp *
8270866Simp * http://www.opensource.org/licenses/gpl-license.html
9270866Simp * http://www.gnu.org/copyleft/gpl.html
10270866Simp */
11270866Simp
12270866Simp/dts-v1/;
13270866Simp
14270866Simp#include <dt-bindings/gpio/gpio.h>
15270866Simp#include "imx6q.dtsi"
16270866Simp
17270866Simp/ {
18270866Simp	model = "Data Modul eDM-QMX6 Board";
19270866Simp	compatible = "dmo,imx6q-edmqmx6", "fsl,imx6q";
20270866Simp
21270866Simp	chosen {
22270866Simp		stdout-path = &uart2;
23270866Simp	};
24270866Simp
25270866Simp	aliases {
26270866Simp		gpio7 = &stmpe_gpio1;
27270866Simp		gpio8 = &stmpe_gpio2;
28270866Simp		stmpe-i2c0 = &stmpe1;
29270866Simp		stmpe-i2c1 = &stmpe2;
30270866Simp	};
31270866Simp
32270866Simp	memory {
33270866Simp		reg = <0x10000000 0x80000000>;
34270866Simp	};
35270866Simp
36270866Simp	regulators {
37270866Simp		compatible = "simple-bus";
38270866Simp		#address-cells = <1>;
39270866Simp		#size-cells = <0>;
40270866Simp
41270866Simp		reg_3p3v: regulator@0 {
42270866Simp			compatible = "regulator-fixed";
43270866Simp			reg = <0>;
44270866Simp			regulator-name = "3P3V";
45270866Simp			regulator-min-microvolt = <3300000>;
46270866Simp			regulator-max-microvolt = <3300000>;
47270866Simp			regulator-always-on;
48270866Simp		};
49270866Simp
50270866Simp		reg_usb_otg_switch: regulator@1 {
51270866Simp			compatible = "regulator-fixed";
52270866Simp			reg = <1>;
53270866Simp			regulator-name = "usb_otg_switch";
54270866Simp			regulator-min-microvolt = <5000000>;
55270866Simp			regulator-max-microvolt = <5000000>;
56270866Simp			gpio = <&gpio7 12 0>;
57270866Simp			regulator-boot-on;
58270866Simp			regulator-always-on;
59270866Simp		};
60270866Simp
61270866Simp		reg_usb_host1: regulator@2 {
62270866Simp			compatible = "regulator-fixed";
63270866Simp			reg = <2>;
64270866Simp			regulator-name = "usb_host1_en";
65270866Simp			regulator-min-microvolt = <3300000>;
66270866Simp			regulator-max-microvolt = <3300000>;
67270866Simp			gpio = <&gpio3 31 0>;
68270866Simp			enable-active-high;
69270866Simp		};
70270866Simp	};
71270866Simp
72270866Simp	gpio-leds {
73270866Simp		compatible = "gpio-leds";
74270866Simp
75270866Simp		led-blue {
76270866Simp			label = "blue";
77270866Simp			gpios = <&stmpe_gpio1 8 GPIO_ACTIVE_HIGH>;
78270866Simp			linux,default-trigger = "heartbeat";
79270866Simp		};
80270866Simp
81270866Simp		led-green {
82270866Simp			label = "green";
83270866Simp			gpios = <&stmpe_gpio1 9 GPIO_ACTIVE_HIGH>;
84270866Simp		};
85270866Simp
86270866Simp		led-pink {
87270866Simp			label = "pink";
88270866Simp			gpios = <&stmpe_gpio1 10 GPIO_ACTIVE_HIGH>;
89270866Simp		};
90270866Simp
91270866Simp		led-red {
92270866Simp			label = "red";
93270866Simp			gpios = <&stmpe_gpio1 11 GPIO_ACTIVE_HIGH>;
94270866Simp		};
95270866Simp	};
96270866Simp};
97270866Simp
98270866Simp&can1 {
99270866Simp	pinctrl-names = "default";
100270866Simp	pinctrl-0 = <&pinctrl_can1>;
101270866Simp	status = "okay";
102270866Simp};
103270866Simp
104270866Simp&ecspi5 {
105270866Simp	pinctrl-names = "default";
106270866Simp	pinctrl-0 = <&pinctrl_ecspi5>;
107270866Simp	fsl,spi-num-chipselects = <1>;
108270866Simp	cs-gpios = <&gpio1 12 0>;
109270866Simp	status = "okay";
110270866Simp
111270866Simp	flash: m25p80@0 {
112295436Sandrew		compatible = "m25p80", "jedec,spi-nor";
113270866Simp		spi-max-frequency = <40000000>;
114270866Simp		reg = <0>;
115270866Simp	};
116270866Simp};
117270866Simp
118270866Simp&fec {
119270866Simp	pinctrl-names = "default";
120270866Simp	pinctrl-0 = <&pinctrl_enet>;
121270866Simp	phy-mode = "rgmii";
122270866Simp	phy-reset-gpios = <&gpio1 25 0>;
123270866Simp	phy-supply = <&vgen2_1v2_eth>;
124270866Simp	status = "okay";
125270866Simp};
126270866Simp
127270866Simp&i2c1 {
128270866Simp	clock-frequency = <100000>;
129270866Simp	pinctrl-names = "default";
130270866Simp	pinctrl-0 = <&pinctrl_i2c1>;
131270866Simp	status = "okay";
132270866Simp};
133270866Simp
134270866Simp&i2c2 {
135270866Simp	clock-frequency = <100000>;
136270866Simp	pinctrl-names = "default";
137270866Simp	pinctrl-0 = <&pinctrl_i2c2
138270866Simp		     &pinctrl_stmpe1
139270866Simp		     &pinctrl_stmpe2
140270866Simp		     &pinctrl_pfuze>;
141270866Simp	status = "okay";
142270866Simp
143270866Simp	pmic: pfuze100@08 {
144270866Simp		compatible = "fsl,pfuze100";
145270866Simp		reg = <0x08>;
146270866Simp		interrupt-parent = <&gpio3>;
147270866Simp		interrupts = <20 8>;
148270866Simp
149270866Simp		regulators {
150270866Simp			sw1a_reg: sw1ab {
151270866Simp				regulator-min-microvolt = <300000>;
152270866Simp				regulator-max-microvolt = <1875000>;
153270866Simp				regulator-boot-on;
154270866Simp				regulator-always-on;
155270866Simp			};
156270866Simp
157270866Simp			sw1c_reg: sw1c {
158270866Simp				regulator-min-microvolt = <300000>;
159270866Simp				regulator-max-microvolt = <1875000>;
160270866Simp				regulator-boot-on;
161270866Simp				regulator-always-on;
162270866Simp			};
163270866Simp
164270866Simp			sw2_reg: sw2 {
165270866Simp				regulator-min-microvolt = <800000>;
166270866Simp				regulator-max-microvolt = <3300000>;
167270866Simp				regulator-boot-on;
168270866Simp				regulator-always-on;
169270866Simp			};
170270866Simp
171270866Simp			sw3a_reg: sw3a {
172270866Simp				regulator-min-microvolt = <400000>;
173270866Simp				regulator-max-microvolt = <1975000>;
174270866Simp				regulator-boot-on;
175270866Simp				regulator-always-on;
176270866Simp			};
177270866Simp
178270866Simp			sw3b_reg: sw3b {
179270866Simp				regulator-min-microvolt = <400000>;
180270866Simp				regulator-max-microvolt = <1975000>;
181270866Simp				regulator-boot-on;
182270866Simp				regulator-always-on;
183270866Simp			};
184270866Simp
185270866Simp			sw4_reg: sw4 {
186270866Simp				regulator-min-microvolt = <400000>;
187270866Simp				regulator-max-microvolt = <1975000>;
188270866Simp				regulator-always-on;
189270866Simp			};
190270866Simp
191270866Simp			swbst_reg: swbst {
192270866Simp				regulator-min-microvolt = <5000000>;
193270866Simp				regulator-max-microvolt = <5150000>;
194270866Simp				regulator-always-on;
195270866Simp			};
196270866Simp
197270866Simp			snvs_reg: vsnvs {
198270866Simp				regulator-min-microvolt = <1000000>;
199270866Simp				regulator-max-microvolt = <3000000>;
200270866Simp				regulator-boot-on;
201270866Simp				regulator-always-on;
202270866Simp			};
203270866Simp
204270866Simp			vref_reg: vrefddr {
205270866Simp				regulator-boot-on;
206270866Simp				regulator-always-on;
207270866Simp			};
208270866Simp
209270866Simp			vgen1_reg: vgen1 {
210270866Simp				regulator-min-microvolt = <800000>;
211270866Simp				regulator-max-microvolt = <1550000>;
212270866Simp			};
213270866Simp
214270866Simp			vgen2_1v2_eth: vgen2 {
215270866Simp				regulator-min-microvolt = <800000>;
216270866Simp				regulator-max-microvolt = <1550000>;
217270866Simp			};
218270866Simp
219270866Simp			vdd_high_in: vgen3 {
220270866Simp				regulator-min-microvolt = <1800000>;
221270866Simp				regulator-max-microvolt = <3300000>;
222270866Simp				regulator-boot-on;
223270866Simp				regulator-always-on;
224270866Simp			};
225270866Simp
226270866Simp			vgen4_reg: vgen4 {
227270866Simp				regulator-min-microvolt = <1800000>;
228270866Simp				regulator-max-microvolt = <3300000>;
229270866Simp				regulator-always-on;
230270866Simp			};
231270866Simp
232270866Simp			vgen5_reg: vgen5 {
233270866Simp				regulator-min-microvolt = <1800000>;
234270866Simp				regulator-max-microvolt = <3300000>;
235270866Simp				regulator-always-on;
236270866Simp			};
237270866Simp
238270866Simp			vgen6_reg: vgen6 {
239270866Simp				regulator-min-microvolt = <1800000>;
240270866Simp				regulator-max-microvolt = <3300000>;
241270866Simp				regulator-always-on;
242270866Simp			};
243270866Simp		};
244270866Simp	};
245270866Simp
246270866Simp	stmpe1: stmpe1601@40 {
247270866Simp		compatible = "st,stmpe1601";
248270866Simp		reg = <0x40>;
249270866Simp		interrupts = <30 0>;
250270866Simp		interrupt-parent = <&gpio3>;
251270866Simp		vcc-supply = <&sw2_reg>;
252270866Simp		vio-supply = <&sw2_reg>;
253270866Simp
254270866Simp		stmpe_gpio1: stmpe_gpio {
255270866Simp			#gpio-cells = <2>;
256270866Simp			compatible = "st,stmpe-gpio";
257270866Simp		};
258270866Simp	};
259270866Simp
260270866Simp	stmpe2: stmpe1601@44 {
261270866Simp		compatible = "st,stmpe1601";
262270866Simp		reg = <0x44>;
263270866Simp		interrupts = <2 0>;
264270866Simp		interrupt-parent = <&gpio5>;
265270866Simp		vcc-supply = <&sw2_reg>;
266270866Simp		vio-supply = <&sw2_reg>;
267270866Simp
268270866Simp		stmpe_gpio2: stmpe_gpio {
269270866Simp			#gpio-cells = <2>;
270270866Simp			compatible = "st,stmpe-gpio";
271270866Simp		};
272270866Simp	};
273270866Simp
274270866Simp	temp1: ad7414@4c {
275270866Simp		compatible = "ad,ad7414";
276270866Simp		reg = <0x4c>;
277270866Simp	};
278270866Simp
279270866Simp	temp2: ad7414@4d {
280270866Simp		compatible = "ad,ad7414";
281270866Simp		reg = <0x4d>;
282270866Simp	};
283270866Simp
284270866Simp	rtc: m41t62@68 {
285270866Simp		compatible = "stm,m41t62";
286270866Simp		reg = <0x68>;
287270866Simp	};
288270866Simp};
289270866Simp
290270866Simp&i2c3 {
291270866Simp	clock-frequency = <100000>;
292270866Simp	pinctrl-names = "default";
293270866Simp	pinctrl-0 = <&pinctrl_i2c3>;
294270866Simp	status = "okay";
295270866Simp};
296270866Simp
297270866Simp&iomuxc {
298270866Simp	pinctrl-names = "default";
299270866Simp	pinctrl-0 = <&pinctrl_hog>;
300270866Simp
301270866Simp	imx6q-dmo-edmqmx6 {
302270866Simp		pinctrl_hog: hoggrp {
303270866Simp			fsl,pins = <
304270866Simp				MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x80000000
305270866Simp				MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x80000000
306270866Simp			>;
307270866Simp		};
308270866Simp
309270866Simp		pinctrl_can1: can1grp {
310270866Simp			fsl,pins = <
311270866Simp				MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX	0x1b0b0
312270866Simp				MX6QDL_PAD_GPIO_7__FLEXCAN1_TX		0x1b0b0
313270866Simp			>;
314270866Simp		};
315270866Simp
316270866Simp		pinctrl_ecspi5: ecspi5rp-1 {
317270866Simp			fsl,pins = <
318270866Simp				MX6QDL_PAD_SD1_DAT0__ECSPI5_MISO	0x80000000
319270866Simp				MX6QDL_PAD_SD1_CMD__ECSPI5_MOSI		0x80000000
320270866Simp				MX6QDL_PAD_SD1_CLK__ECSPI5_SCLK		0x80000000
321270866Simp				MX6QDL_PAD_SD2_DAT3__GPIO1_IO12		0x80000000
322270866Simp			>;
323270866Simp		};
324270866Simp
325270866Simp		pinctrl_enet: enetgrp {
326270866Simp			fsl,pins = <
327270866Simp				MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b0b0
328270866Simp				MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b0b0
329270866Simp				MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b0b0
330270866Simp				MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b0b0
331270866Simp				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b0b0
332270866Simp				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b0b0
333270866Simp				MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b0b0
334270866Simp				MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b0b0
335270866Simp				MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b0b0
336270866Simp				MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b0b0
337270866Simp				MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b0b0
338270866Simp				MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b0b0
339270866Simp				MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0
340270866Simp				MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b0b0
341270866Simp				MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0
342270866Simp				MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25	0x1b0b0
343270866Simp				MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
344270866Simp			>;
345270866Simp		};
346270866Simp
347270866Simp		pinctrl_i2c1: i2c1grp {
348270866Simp			fsl,pins = <
349270866Simp				MX6QDL_PAD_EIM_D21__I2C1_SCL		0x4001b8b1
350270866Simp				MX6QDL_PAD_EIM_D28__I2C1_SDA		0x4001b8b1
351270866Simp			>;
352270866Simp		};
353270866Simp
354270866Simp		pinctrl_i2c2: i2c2grp {
355270866Simp			fsl,pins = <
356270866Simp				MX6QDL_PAD_EIM_EB2__I2C2_SCL		0x4001b8b1
357270866Simp				MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
358270866Simp			>;
359270866Simp		};
360270866Simp
361270866Simp		pinctrl_i2c3: i2c3grp {
362270866Simp			fsl,pins = <
363270866Simp				MX6QDL_PAD_EIM_D17__I2C3_SCL		0x4001b8b1
364270866Simp				MX6QDL_PAD_GPIO_6__I2C3_SDA		0x4001b8b1
365270866Simp			>;
366270866Simp		};
367270866Simp
368270866Simp		pinctrl_pcie: pciegrp {
369270866Simp			fsl,pins = <
370270866Simp				MX6QDL_PAD_KEY_COL1__GPIO4_IO08		0x100b1
371270866Simp			>;
372270866Simp		};
373270866Simp
374270866Simp		pinctrl_pfuze: pfuze100grp1 {
375270866Simp			fsl,pins = <
376270866Simp				MX6QDL_PAD_EIM_D20__GPIO3_IO20		0x80000000
377270866Simp			>;
378270866Simp		};
379270866Simp
380270866Simp		pinctrl_stmpe1: stmpe1grp {
381270866Simp			fsl,pins = <MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x80000000>;
382270866Simp		};
383270866Simp
384270866Simp		pinctrl_stmpe2: stmpe2grp {
385270866Simp			fsl,pins = <MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x80000000>;
386270866Simp		};
387270866Simp
388270866Simp		pinctrl_uart1: uart1grp {
389270866Simp			fsl,pins = <
390270866Simp				MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA	0x1b0b1
391270866Simp				MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA	0x1b0b1
392270866Simp			>;
393270866Simp		};
394270866Simp
395270866Simp		pinctrl_uart2: uart2grp {
396270866Simp			fsl,pins = <
397270866Simp				MX6QDL_PAD_EIM_D26__UART2_TX_DATA	0x1b0b1
398270866Simp				MX6QDL_PAD_EIM_D27__UART2_RX_DATA	0x1b0b1
399270866Simp			>;
400270866Simp		};
401270866Simp
402270866Simp		pinctrl_usbotg: usbotggrp {
403270866Simp			fsl,pins = <
404270866Simp				MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID	0x17059
405270866Simp			>;
406270866Simp		};
407270866Simp
408270866Simp		pinctrl_usdhc3: usdhc3grp {
409270866Simp			fsl,pins = <
410270866Simp				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
411270866Simp				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
412270866Simp				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
413270866Simp				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
414270866Simp				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
415270866Simp				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
416270866Simp			>;
417270866Simp		};
418270866Simp
419270866Simp		pinctrl_usdhc4: usdhc4grp {
420270866Simp			fsl,pins = <
421270866Simp				MX6QDL_PAD_SD4_CMD__SD4_CMD		0x17059
422270866Simp				MX6QDL_PAD_SD4_CLK__SD4_CLK		0x10059
423270866Simp				MX6QDL_PAD_SD4_DAT0__SD4_DATA0		0x17059
424270866Simp				MX6QDL_PAD_SD4_DAT1__SD4_DATA1		0x17059
425270866Simp				MX6QDL_PAD_SD4_DAT2__SD4_DATA2		0x17059
426270866Simp				MX6QDL_PAD_SD4_DAT3__SD4_DATA3		0x17059
427270866Simp				MX6QDL_PAD_SD4_DAT4__SD4_DATA4		0x17059
428270866Simp				MX6QDL_PAD_SD4_DAT5__SD4_DATA5		0x17059
429270866Simp				MX6QDL_PAD_SD4_DAT6__SD4_DATA6		0x17059
430270866Simp				MX6QDL_PAD_SD4_DAT7__SD4_DATA7		0x17059
431270866Simp			>;
432270866Simp		};
433270866Simp	};
434270866Simp};
435270866Simp
436270866Simp&pcie {
437270866Simp	pinctrl-names = "default";
438270866Simp	pinctrl-0 = <&pinctrl_pcie>;
439270866Simp	reset-gpio = <&gpio4 8 0>;
440270866Simp	status = "okay";
441270866Simp};
442270866Simp
443270866Simp&sata {
444270866Simp	status = "okay";
445270866Simp};
446270866Simp
447270866Simp&uart1 {
448270866Simp	pinctrl-names = "default";
449270866Simp	pinctrl-0 = <&pinctrl_uart1>;
450270866Simp	status = "okay";
451270866Simp};
452270866Simp
453270866Simp&uart2 {
454270866Simp	pinctrl-names = "default";
455270866Simp	pinctrl-0 = <&pinctrl_uart2>;
456270866Simp	status = "okay";
457270866Simp};
458270866Simp
459270866Simp&usbh1 {
460270866Simp	vbus-supply = <&reg_usb_host1>;
461270866Simp	disable-over-current;
462270866Simp	dr_mode = "host";
463270866Simp	status = "okay";
464270866Simp};
465270866Simp
466270866Simp&usbotg {
467270866Simp	pinctrl-names = "default";
468270866Simp	pinctrl-0 = <&pinctrl_usbotg>;
469270866Simp	disable-over-current;
470270866Simp	status = "okay";
471270866Simp};
472270866Simp
473270866Simp&usdhc3 {
474270866Simp	pinctrl-names = "default";
475270866Simp	pinctrl-0 = <&pinctrl_usdhc3>;
476270866Simp	vmmc-supply = <&reg_3p3v>;
477270866Simp	status = "okay";
478270866Simp};
479270866Simp
480270866Simp&usdhc4 {
481270866Simp	pinctrl-names = "default";
482270866Simp	pinctrl-0 = <&pinctrl_usdhc4>;
483270866Simp	vmmc-supply = <&reg_3p3v>;
484270866Simp	non-removable;
485270866Simp	bus-width = <8>;
486270866Simp	status = "okay";
487270866Simp};
488