1/*
2 * Copyright 2013 Gateworks Corporation
3 *
4 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 or later at the following locations:
7 *
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
10 */
11
12/dts-v1/;
13#include <dt-bindings/gpio/gpio.h>
14#include "imx6q.dtsi"
15
16/ {
17	model = "Gateworks Ventana GW5400-A";
18	compatible = "gw,imx6q-gw5400-a", "gw,ventana", "fsl,imx6q";
19
20	/* these are used by bootloader for disabling nodes */
21	aliases {
22		i2c0 = &i2c1;
23		i2c1 = &i2c2;
24		i2c2 = &i2c3;
25		led0 = &led0;
26		led1 = &led1;
27		led2 = &led2;
28		ssi0 = &ssi1;
29		spi0 = &ecspi1;
30		usb0 = &usbh1;
31		usb1 = &usbotg;
32	};
33
34	chosen {
35		bootargs = "console=ttymxc1,115200";
36	};
37
38	leds {
39		compatible = "gpio-leds";
40		pinctrl-names = "default";
41		pinctrl-0 = <&pinctrl_gpio_leds>;
42
43		led0: user1 {
44			label = "user1";
45			gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 -> MX6_PANLEDG */
46			default-state = "on";
47			linux,default-trigger = "heartbeat";
48		};
49
50		led1: user2 {
51			label = "user2";
52			gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; /* 106 -> MX6_PANLEDR */
53			default-state = "off";
54		};
55
56		led2: user3 {
57			label = "user3";
58			gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; /* 111 -> MX6_LOCLED# */
59			default-state = "off";
60		};
61	};
62
63	memory@10000000 {
64		reg = <0x10000000 0x40000000>;
65	};
66
67	pps {
68		compatible = "pps-gpio";
69		pinctrl-names = "default";
70		pinctrl-0 = <&pinctrl_gpio_leds>;
71		gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
72		status = "okay";
73	};
74
75	regulators {
76		compatible = "simple-bus";
77		#address-cells = <1>;
78		#size-cells = <0>;
79
80		reg_1p0v: regulator@0 {
81			compatible = "regulator-fixed";
82			reg = <0>;
83			regulator-name = "1P0V";
84			regulator-min-microvolt = <1000000>;
85			regulator-max-microvolt = <1000000>;
86			regulator-always-on;
87		};
88
89		reg_3p3v: regulator@1 {
90			compatible = "regulator-fixed";
91			reg = <1>;
92			regulator-name = "3P3V";
93			regulator-min-microvolt = <3300000>;
94			regulator-max-microvolt = <3300000>;
95			regulator-always-on;
96		};
97
98		reg_usb_h1_vbus: regulator@2 {
99			compatible = "regulator-fixed";
100			reg = <2>;
101			regulator-name = "usb_h1_vbus";
102			regulator-min-microvolt = <5000000>;
103			regulator-max-microvolt = <5000000>;
104			regulator-always-on;
105		};
106
107		reg_usb_otg_vbus: regulator@3 {
108			compatible = "regulator-fixed";
109			reg = <3>;
110			regulator-name = "usb_otg_vbus";
111			regulator-min-microvolt = <5000000>;
112			regulator-max-microvolt = <5000000>;
113			gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
114			enable-active-high;
115		};
116	};
117
118	sound {
119		compatible = "fsl,imx6q-ventana-sgtl5000",
120			     "fsl,imx-audio-sgtl5000";
121		model = "sgtl5000-audio";
122		ssi-controller = <&ssi1>;
123		audio-codec = <&codec>;
124		audio-routing =
125			"MIC_IN", "Mic Jack",
126			"Mic Jack", "Mic Bias",
127			"Headphone Jack", "HP_OUT";
128		mux-int-port = <1>;
129		mux-ext-port = <4>;
130	};
131};
132
133&audmux {
134	pinctrl-names = "default";
135	pinctrl-0 = <&pinctrl_audmux>;
136	status = "okay";
137};
138
139&ecspi1 {
140	cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
141	pinctrl-names = "default";
142	pinctrl-0 = <&pinctrl_ecspi1>;
143	status = "okay";
144
145	flash: m25p80@0 {
146		compatible = "sst,w25q256", "jedec,spi-nor";
147		spi-max-frequency = <30000000>;
148		reg = <0>;
149	};
150};
151
152&fec {
153	pinctrl-names = "default";
154	pinctrl-0 = <&pinctrl_enet>;
155	phy-mode = "rgmii-id";
156	phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
157	status = "okay";
158};
159
160&hdmi {
161	ddc-i2c-bus = <&i2c3>;
162	status = "okay";
163};
164
165&i2c1 {
166	clock-frequency = <100000>;
167	pinctrl-names = "default";
168	pinctrl-0 = <&pinctrl_i2c1>;
169	status = "okay";
170
171	eeprom1: eeprom@50 {
172		compatible = "atmel,24c02";
173		reg = <0x50>;
174		pagesize = <16>;
175	};
176
177	eeprom2: eeprom@51 {
178		compatible = "atmel,24c02";
179		reg = <0x51>;
180		pagesize = <16>;
181	};
182
183	eeprom3: eeprom@52 {
184		compatible = "atmel,24c02";
185		reg = <0x52>;
186		pagesize = <16>;
187	};
188
189	eeprom4: eeprom@53 {
190		compatible = "atmel,24c02";
191		reg = <0x53>;
192		pagesize = <16>;
193	};
194
195	gpio: pca9555@23 {
196		compatible = "nxp,pca9555";
197		reg = <0x23>;
198		gpio-controller;
199		#gpio-cells = <2>;
200	};
201
202	rtc: ds1672@68 {
203		compatible = "dallas,ds1672";
204		reg = <0x68>;
205	};
206};
207
208&i2c2 {
209	clock-frequency = <100000>;
210	pinctrl-names = "default";
211	pinctrl-0 = <&pinctrl_i2c2>;
212	status = "okay";
213
214	pmic: pfuze100@8 {
215		compatible = "fsl,pfuze100";
216		reg = <0x08>;
217
218		regulators {
219			sw1a_reg: sw1ab {
220				regulator-min-microvolt = <300000>;
221				regulator-max-microvolt = <1875000>;
222				regulator-boot-on;
223				regulator-always-on;
224				regulator-ramp-delay = <6250>;
225			};
226
227			sw1c_reg: sw1c {
228				regulator-min-microvolt = <300000>;
229				regulator-max-microvolt = <1875000>;
230				regulator-boot-on;
231				regulator-always-on;
232				regulator-ramp-delay = <6250>;
233			};
234
235			sw2_reg: sw2 {
236				regulator-min-microvolt = <800000>;
237				regulator-max-microvolt = <3950000>;
238				regulator-boot-on;
239				regulator-always-on;
240			};
241
242			sw3a_reg: sw3a {
243				regulator-min-microvolt = <400000>;
244				regulator-max-microvolt = <1975000>;
245				regulator-boot-on;
246				regulator-always-on;
247			};
248
249			sw3b_reg: sw3b {
250				regulator-min-microvolt = <400000>;
251				regulator-max-microvolt = <1975000>;
252				regulator-boot-on;
253				regulator-always-on;
254			};
255
256			sw4_reg: sw4 {
257				regulator-min-microvolt = <800000>;
258				regulator-max-microvolt = <3300000>;
259			};
260
261			swbst_reg: swbst {
262				regulator-min-microvolt = <5000000>;
263				regulator-max-microvolt = <5150000>;
264			};
265
266			snvs_reg: vsnvs {
267				regulator-min-microvolt = <1000000>;
268				regulator-max-microvolt = <3000000>;
269				regulator-boot-on;
270				regulator-always-on;
271			};
272
273			vref_reg: vrefddr {
274				regulator-boot-on;
275				regulator-always-on;
276			};
277
278			vgen1_reg: vgen1 {
279				regulator-min-microvolt = <800000>;
280				regulator-max-microvolt = <1550000>;
281			};
282
283			vgen2_reg: vgen2 {
284				regulator-min-microvolt = <800000>;
285				regulator-max-microvolt = <1550000>;
286			};
287
288			vgen3_reg: vgen3 {
289				regulator-min-microvolt = <1800000>;
290				regulator-max-microvolt = <3300000>;
291			};
292
293			vgen4_reg: vgen4 {
294				regulator-min-microvolt = <1800000>;
295				regulator-max-microvolt = <3300000>;
296				regulator-always-on;
297			};
298
299			vgen5_reg: vgen5 {
300				regulator-min-microvolt = <1800000>;
301				regulator-max-microvolt = <3300000>;
302				regulator-always-on;
303			};
304
305			vgen6_reg: vgen6 {
306				regulator-min-microvolt = <1800000>;
307				regulator-max-microvolt = <3300000>;
308				regulator-always-on;
309			};
310		};
311	};
312};
313
314&i2c3 {
315	clock-frequency = <100000>;
316	pinctrl-names = "default";
317	pinctrl-0 = <&pinctrl_i2c3>;
318	status = "okay";
319
320	accelerometer: mma8450@1c {
321		compatible = "fsl,mma8450";
322		reg = <0x1c>;
323	};
324
325	codec: sgtl5000@a {
326		compatible = "fsl,sgtl5000";
327		reg = <0x0a>;
328		clocks = <&clks IMX6QDL_CLK_CKO>;
329		VDDA-supply = <&sw4_reg>;
330		VDDIO-supply = <&reg_3p3v>;
331	};
332
333	touchscreen: egalax_ts@4 {
334		compatible = "eeti,egalax_ts";
335		reg = <0x04>;
336		interrupt-parent = <&gpio7>;
337		interrupts = <12 2>;
338		wakeup-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
339	};
340};
341
342&ldb {
343	status = "okay";
344};
345
346&pcie {
347	reset-gpio = <&gpio1 29 GPIO_ACTIVE_LOW>;
348	status = "okay";
349};
350
351&ssi1 {
352	status = "okay";
353};
354
355&uart1 {
356	pinctrl-names = "default";
357	pinctrl-0 = <&pinctrl_uart1>;
358	status = "okay";
359};
360
361&uart2 {
362	pinctrl-names = "default";
363	pinctrl-0 = <&pinctrl_uart2>;
364	status = "okay";
365};
366
367&uart5 {
368	pinctrl-names = "default";
369	pinctrl-0 = <&pinctrl_uart5>;
370	status = "okay";
371};
372
373&usbotg {
374	vbus-supply = <&reg_usb_otg_vbus>;
375	pinctrl-names = "default";
376	pinctrl-0 = <&pinctrl_usbotg>;
377	disable-over-current;
378	status = "okay";
379};
380
381&usbh1 {
382	vbus-supply = <&reg_usb_h1_vbus>;
383	status = "okay";
384};
385
386&usdhc3 {
387	pinctrl-names = "default";
388	pinctrl-0 = <&pinctrl_usdhc3>;
389	cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
390	vmmc-supply = <&reg_3p3v>;
391	status = "okay";
392};
393
394&iomuxc {
395	pinctrl_audmux: audmuxgrp {
396		fsl,pins = <
397			MX6QDL_PAD_SD2_DAT0__AUD4_RXD		0x130b0
398			MX6QDL_PAD_SD2_DAT3__AUD4_TXC		0x130b0
399			MX6QDL_PAD_SD2_DAT2__AUD4_TXD		0x110b0
400			MX6QDL_PAD_SD2_DAT1__AUD4_TXFS		0x130b0
401			MX6QDL_PAD_GPIO_0__CCM_CLKO1		0x130b0 /* AUD4_MCK */
402		>;
403	};
404
405	pinctrl_ecspi1: ecspi1grp {
406		fsl,pins = <
407			MX6QDL_PAD_EIM_D17__ECSPI1_MISO		0x100b1
408			MX6QDL_PAD_EIM_D18__ECSPI1_MOSI		0x100b1
409			MX6QDL_PAD_EIM_D16__ECSPI1_SCLK		0x100b1
410			MX6QDL_PAD_EIM_D19__GPIO3_IO19		0x1b0b0 /* SPINOR_CS0# */
411		>;
412	};
413
414	pinctrl_enet: enetgrp {
415		fsl,pins = <
416			MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
417			MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
418			MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
419			MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
420			MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
421			MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
422			MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b030
423			MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
424			MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
425			MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
426			MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
427			MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
428			MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0
429			MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b0b0
430			MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0
431			MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
432		>;
433	};
434
435	pinctrl_gpio_leds: gpioledsgrp {
436		fsl,pins = <
437			MX6QDL_PAD_KEY_COL0__GPIO4_IO06		0x1b0b0 /* user1 led */
438			MX6QDL_PAD_KEY_COL2__GPIO4_IO10		0x1b0b0 /* user2 led */
439			MX6QDL_PAD_KEY_ROW4__GPIO4_IO15		0x1b0b0 /* user3 led */
440		>;
441	};
442
443	pinctrl_i2c1: i2c1grp {
444		fsl,pins = <
445			MX6QDL_PAD_EIM_D21__I2C1_SCL		0x4001b8b1
446			MX6QDL_PAD_EIM_D28__I2C1_SDA		0x4001b8b1
447		>;
448	};
449
450	pinctrl_i2c2: i2c2grp {
451		fsl,pins = <
452			MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
453			MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
454		>;
455	};
456
457	pinctrl_i2c3: i2c3grp {
458		fsl,pins = <
459			MX6QDL_PAD_GPIO_3__I2C3_SCL		0x4001b8b1
460			MX6QDL_PAD_GPIO_6__I2C3_SDA		0x4001b8b1
461		>;
462	};
463
464	pinctrl_pcie: pciegrp {
465		fsl,pins = <
466			MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28	0x1b0b0 /* PCIE IRQ */
467			MX6QDL_PAD_ENET_TXD1__GPIO1_IO29	0x1b0b0 /* PCIE RST */
468		>;
469	};
470
471	pinctrl_pps: ppsgrp {
472		fsl,pins = <
473			MX6QDL_PAD_GPIO_5__GPIO1_IO05		0x1b0b0 /* GPS_PPS */
474		>;
475	};
476
477	pinctrl_uart1: uart1grp {
478		fsl,pins = <
479			MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA	0x1b0b1
480			MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA	0x1b0b1
481		>;
482	};
483
484	pinctrl_uart2: uart2grp {
485		fsl,pins = <
486			MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA	0x1b0b1
487			MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA	0x1b0b1
488		>;
489	};
490
491	pinctrl_uart5: uart5grp {
492		fsl,pins = <
493			MX6QDL_PAD_KEY_COL1__UART5_TX_DATA	0x1b0b1
494			MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA	0x1b0b1
495		>;
496	};
497
498	pinctrl_usbotg: usbotggrp {
499		fsl,pins = <
500			MX6QDL_PAD_GPIO_1__USB_OTG_ID		0x17059
501			MX6QDL_PAD_EIM_D22__GPIO3_IO22		0x1b0b0 /* OTG_PWR_EN */
502		>;
503	};
504
505	pinctrl_usdhc3: usdhc3grp {
506		fsl,pins = <
507			MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
508			MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
509			MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
510			MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
511			MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
512			MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
513		>;
514	};
515};
516