imx6: add support for 3.14
[openwrt.git] / target / linux / imx6 / patches-3.14 / 0003-ARM-dts-add-Gateworks-Ventana-support.patch
1 From e3946fe8050534ccaf8c1266cb1fa90c7f3345c3 Mon Sep 17 00:00:00 2001
2 From: Tim Harvey <tharvey@gateworks.com>
3 Date: Fri, 7 Feb 2014 15:24:56 +0800
4 Subject: [PATCH] ARM: dts: add Gateworks Ventana support
5
6 The Gateworks Ventana product family consists of several baseboard designs
7 based on the Freescale i.MX6 family of processors.  Each baseboard has a
8 different set of possible features.
9
10 Signed-off-by: Tim Harvey <tharvey@gateworks.com>
11 Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
12 ---
13  arch/arm/boot/dts/Makefile            |   9 +
14  arch/arm/boot/dts/imx6dl-gw51xx.dts   |  19 ++
15  arch/arm/boot/dts/imx6dl-gw52xx.dts   |  19 ++
16  arch/arm/boot/dts/imx6dl-gw53xx.dts   |  19 ++
17  arch/arm/boot/dts/imx6dl-gw54xx.dts   |  19 ++
18  arch/arm/boot/dts/imx6q-gw51xx.dts    |  19 ++
19  arch/arm/boot/dts/imx6q-gw52xx.dts    |  23 ++
20  arch/arm/boot/dts/imx6q-gw53xx.dts    |  23 ++
21  arch/arm/boot/dts/imx6q-gw5400-a.dts  | 546 ++++++++++++++++++++++++++++++++
22  arch/arm/boot/dts/imx6q-gw54xx.dts    |  23 ++
23  arch/arm/boot/dts/imx6qdl-gw51xx.dtsi | 374 ++++++++++++++++++++++
24  arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | 490 ++++++++++++++++++++++++++++
25  arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | 553 ++++++++++++++++++++++++++++++++
26  arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 580 ++++++++++++++++++++++++++++++++++
27  14 files changed, 2716 insertions(+)
28  create mode 100644 arch/arm/boot/dts/imx6dl-gw51xx.dts
29  create mode 100644 arch/arm/boot/dts/imx6dl-gw52xx.dts
30  create mode 100644 arch/arm/boot/dts/imx6dl-gw53xx.dts
31  create mode 100644 arch/arm/boot/dts/imx6dl-gw54xx.dts
32  create mode 100644 arch/arm/boot/dts/imx6q-gw51xx.dts
33  create mode 100644 arch/arm/boot/dts/imx6q-gw52xx.dts
34  create mode 100644 arch/arm/boot/dts/imx6q-gw53xx.dts
35  create mode 100644 arch/arm/boot/dts/imx6q-gw5400-a.dts
36  create mode 100644 arch/arm/boot/dts/imx6q-gw54xx.dts
37  create mode 100644 arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
38  create mode 100644 arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
39  create mode 100644 arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
40  create mode 100644 arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
41
42 --- a/arch/arm/boot/dts/Makefile
43 +++ b/arch/arm/boot/dts/Makefile
44 @@ -154,12 +154,21 @@ dtb-$(CONFIG_ARCH_MXC) += \
45         imx53-qsb.dtb \
46         imx53-smd.dtb \
47         imx6dl-cubox-i.dtb \
48 +       imx6dl-gw51xx.dtb \
49 +       imx6dl-gw52xx.dtb \
50 +       imx6dl-gw53xx.dtb \
51 +       imx6dl-gw54xx.dtb \
52         imx6dl-hummingboard.dtb \
53         imx6dl-sabreauto.dtb \
54         imx6dl-sabresd.dtb \
55         imx6dl-wandboard.dtb \
56         imx6q-arm2.dtb \
57         imx6q-cubox-i.dtb \
58 +       imx6q-gw51xx.dtb \
59 +       imx6q-gw52xx.dtb \
60 +       imx6q-gw53xx.dtb \
61 +       imx6q-gw5400-a.dtb \
62 +       imx6q-gw54xx.dtb \
63         imx6q-phytec-pbab01.dtb \
64         imx6q-sabreauto.dtb \
65         imx6q-sabrelite.dtb \
66 --- /dev/null
67 +++ b/arch/arm/boot/dts/imx6dl-gw51xx.dts
68 @@ -0,0 +1,19 @@
69 +/*
70 + * Copyright 2013 Gateworks Corporation
71 + *
72 + * The code contained herein is licensed under the GNU General Public
73 + * License. You may obtain a copy of the GNU General Public License
74 + * Version 2 or later at the following locations:
75 + *
76 + * http://www.opensource.org/licenses/gpl-license.html
77 + * http://www.gnu.org/copyleft/gpl.html
78 + */
79 +
80 +/dts-v1/;
81 +#include "imx6dl.dtsi"
82 +#include "imx6qdl-gw51xx.dtsi"
83 +
84 +/ {
85 +       model = "Gateworks Ventana i.MX6 DualLite GW51XX";
86 +       compatible = "gw,imx6dl-gw51xx", "gw,ventana", "fsl,imx6dl";
87 +};
88 --- /dev/null
89 +++ b/arch/arm/boot/dts/imx6dl-gw52xx.dts
90 @@ -0,0 +1,19 @@
91 +/*
92 + * Copyright 2013 Gateworks Corporation
93 + *
94 + * The code contained herein is licensed under the GNU General Public
95 + * License. You may obtain a copy of the GNU General Public License
96 + * Version 2 or later at the following locations:
97 + *
98 + * http://www.opensource.org/licenses/gpl-license.html
99 + * http://www.gnu.org/copyleft/gpl.html
100 + */
101 +
102 +/dts-v1/;
103 +#include "imx6dl.dtsi"
104 +#include "imx6qdl-gw52xx.dtsi"
105 +
106 +/ {
107 +       model = "Gateworks Ventana i.MX6 DualLite GW52XX";
108 +       compatible = "gw,imx6dl-gw52xx", "gw,ventana", "fsl,imx6dl";
109 +};
110 --- /dev/null
111 +++ b/arch/arm/boot/dts/imx6dl-gw53xx.dts
112 @@ -0,0 +1,19 @@
113 +/*
114 + * Copyright 2013 Gateworks Corporation
115 + *
116 + * The code contained herein is licensed under the GNU General Public
117 + * License. You may obtain a copy of the GNU General Public License
118 + * Version 2 or later at the following locations:
119 + *
120 + * http://www.opensource.org/licenses/gpl-license.html
121 + * http://www.gnu.org/copyleft/gpl.html
122 + */
123 +
124 +/dts-v1/;
125 +#include "imx6dl.dtsi"
126 +#include "imx6qdl-gw53xx.dtsi"
127 +
128 +/ {
129 +       model = "Gateworks Ventana i.MX6 DualLite GW53XX";
130 +       compatible = "gw,imx6dl-gw53xx", "gw,ventana", "fsl,imx6dl";
131 +};
132 --- /dev/null
133 +++ b/arch/arm/boot/dts/imx6dl-gw54xx.dts
134 @@ -0,0 +1,19 @@
135 +/*
136 + * Copyright 2013 Gateworks Corporation
137 + *
138 + * The code contained herein is licensed under the GNU General Public
139 + * License. You may obtain a copy of the GNU General Public License
140 + * Version 2 or later at the following locations:
141 + *
142 + * http://www.opensource.org/licenses/gpl-license.html
143 + * http://www.gnu.org/copyleft/gpl.html
144 + */
145 +
146 +/dts-v1/;
147 +#include "imx6dl.dtsi"
148 +#include "imx6qdl-gw54xx.dtsi"
149 +
150 +/ {
151 +       model = "Gateworks Ventana i.MX6 DualLite GW54XX";
152 +       compatible = "gw,imx6dl-gw54xx", "gw,ventana", "fsl,imx6dl";
153 +};
154 --- /dev/null
155 +++ b/arch/arm/boot/dts/imx6q-gw51xx.dts
156 @@ -0,0 +1,19 @@
157 +/*
158 + * Copyright 2013 Gateworks Corporation
159 + *
160 + * The code contained herein is licensed under the GNU General Public
161 + * License. You may obtain a copy of the GNU General Public License
162 + * Version 2 or later at the following locations:
163 + *
164 + * http://www.opensource.org/licenses/gpl-license.html
165 + * http://www.gnu.org/copyleft/gpl.html
166 + */
167 +
168 +/dts-v1/;
169 +#include "imx6q.dtsi"
170 +#include "imx6qdl-gw54xx.dtsi"
171 +
172 +/ {
173 +       model = "Gateworks Ventana i.MX6 Quad GW51XX";
174 +       compatible = "gw,imx6q-gw51xx", "gw,ventana", "fsl,imx6q";
175 +};
176 --- /dev/null
177 +++ b/arch/arm/boot/dts/imx6q-gw52xx.dts
178 @@ -0,0 +1,23 @@
179 +/*
180 + * Copyright 2013 Gateworks Corporation
181 + *
182 + * The code contained herein is licensed under the GNU General Public
183 + * License. You may obtain a copy of the GNU General Public License
184 + * Version 2 or later at the following locations:
185 + *
186 + * http://www.opensource.org/licenses/gpl-license.html
187 + * http://www.gnu.org/copyleft/gpl.html
188 + */
189 +
190 +/dts-v1/;
191 +#include "imx6q.dtsi"
192 +#include "imx6qdl-gw52xx.dtsi"
193 +
194 +/ {
195 +       model = "Gateworks Ventana i.MX6 Quad GW52XX";
196 +       compatible = "gw,imx6q-gw52xx", "gw,ventana", "fsl,imx6q";
197 +};
198 +
199 +&sata {
200 +       status = "okay";
201 +};
202 --- /dev/null
203 +++ b/arch/arm/boot/dts/imx6q-gw53xx.dts
204 @@ -0,0 +1,23 @@
205 +/*
206 + * Copyright 2013 Gateworks Corporation
207 + *
208 + * The code contained herein is licensed under the GNU General Public
209 + * License. You may obtain a copy of the GNU General Public License
210 + * Version 2 or later at the following locations:
211 + *
212 + * http://www.opensource.org/licenses/gpl-license.html
213 + * http://www.gnu.org/copyleft/gpl.html
214 + */
215 +
216 +/dts-v1/;
217 +#include "imx6q.dtsi"
218 +#include "imx6qdl-gw53xx.dtsi"
219 +
220 +/ {
221 +       model = "Gateworks Ventana i.MX6 Quad GW53XX";
222 +       compatible = "gw,imx6q-gw53xx", "gw,ventana", "fsl,imx6q";
223 +};
224 +
225 +&sata {
226 +       status = "okay";
227 +};
228 --- /dev/null
229 +++ b/arch/arm/boot/dts/imx6q-gw5400-a.dts
230 @@ -0,0 +1,546 @@
231 +/*
232 + * Copyright 2013 Gateworks Corporation
233 + *
234 + * The code contained herein is licensed under the GNU General Public
235 + * License. You may obtain a copy of the GNU General Public License
236 + * Version 2 or later at the following locations:
237 + *
238 + * http://www.opensource.org/licenses/gpl-license.html
239 + * http://www.gnu.org/copyleft/gpl.html
240 + */
241 +
242 +/dts-v1/;
243 +#include "imx6q.dtsi"
244 +
245 +/ {
246 +       model = "Gateworks Ventana GW5400-A";
247 +       compatible = "gw,imx6q-gw5400-a", "gw,ventana", "fsl,imx6q";
248 +
249 +       /* these are used by bootloader for disabling nodes */
250 +       aliases {
251 +               ethernet0 = &fec;
252 +               ethernet1 = &eth1;
253 +               i2c0 = &i2c1;
254 +               i2c1 = &i2c2;
255 +               i2c2 = &i2c3;
256 +               led0 = &led0;
257 +               led1 = &led1;
258 +               led2 = &led2;
259 +               sky2 = &eth1;
260 +               ssi0 = &ssi1;
261 +               spi0 = &ecspi1;
262 +               usb0 = &usbh1;
263 +               usb1 = &usbotg;
264 +               usdhc2 = &usdhc3;
265 +       };
266 +
267 +       chosen {
268 +               bootargs = "console=ttymxc1,115200";
269 +       };
270 +
271 +       leds {
272 +               compatible = "gpio-leds";
273 +
274 +               led0: user1 {
275 +                       label = "user1";
276 +                       gpios = <&gpio4 6 0>; /* 102 -> MX6_PANLEDG */
277 +                       default-state = "on";
278 +                       linux,default-trigger = "heartbeat";
279 +               };
280 +
281 +               led1: user2 {
282 +                       label = "user2";
283 +                       gpios = <&gpio4 10 0>; /* 106 -> MX6_PANLEDR */
284 +                       default-state = "off";
285 +               };
286 +
287 +               led2: user3 {
288 +                       label = "user3";
289 +                       gpios = <&gpio4 15 1>; /* 111 -> MX6_LOCLED# */
290 +                       default-state = "off";
291 +               };
292 +       };
293 +
294 +       memory {
295 +               reg = <0x10000000 0x40000000>;
296 +       };
297 +
298 +       pps {
299 +               compatible = "pps-gpio";
300 +               gpios = <&gpio1 5 0>;
301 +               status = "okay";
302 +       };
303 +
304 +       regulators {
305 +               compatible = "simple-bus";
306 +               #address-cells = <1>;
307 +               #size-cells = <0>;
308 +
309 +               reg_1p0v: regulator@0 {
310 +                       compatible = "regulator-fixed";
311 +                       reg = <0>;
312 +                       regulator-name = "1P0V";
313 +                       regulator-min-microvolt = <1000000>;
314 +                       regulator-max-microvolt = <1000000>;
315 +                       regulator-always-on;
316 +               };
317 +
318 +               reg_3p3v: regulator@1 {
319 +                       compatible = "regulator-fixed";
320 +                       reg = <1>;
321 +                       regulator-name = "3P3V";
322 +                       regulator-min-microvolt = <3300000>;
323 +                       regulator-max-microvolt = <3300000>;
324 +                       regulator-always-on;
325 +               };
326 +
327 +               reg_usb_h1_vbus: regulator@2 {
328 +                       compatible = "regulator-fixed";
329 +                       reg = <2>;
330 +                       regulator-name = "usb_h1_vbus";
331 +                       regulator-min-microvolt = <5000000>;
332 +                       regulator-max-microvolt = <5000000>;
333 +                       regulator-always-on;
334 +               };
335 +
336 +               reg_usb_otg_vbus: regulator@3 {
337 +                       compatible = "regulator-fixed";
338 +                       reg = <3>;
339 +                       regulator-name = "usb_otg_vbus";
340 +                       regulator-min-microvolt = <5000000>;
341 +                       regulator-max-microvolt = <5000000>;
342 +                       gpio = <&gpio3 22 0>;
343 +                       enable-active-high;
344 +               };
345 +       };
346 +
347 +       sound {
348 +               compatible = "fsl,imx6q-sabrelite-sgtl5000",
349 +                            "fsl,imx-audio-sgtl5000";
350 +               model = "imx6q-sabrelite-sgtl5000";
351 +               ssi-controller = <&ssi1>;
352 +               audio-codec = <&codec>;
353 +               audio-routing =
354 +                       "MIC_IN", "Mic Jack",
355 +                       "Mic Jack", "Mic Bias",
356 +                       "Headphone Jack", "HP_OUT";
357 +               mux-int-port = <1>;
358 +               mux-ext-port = <4>;
359 +       };
360 +};
361 +
362 +&audmux {
363 +       pinctrl-names = "default";
364 +       pinctrl-0 = <&pinctrl_audmux>;
365 +       status = "okay";
366 +};
367 +
368 +&ecspi1 {
369 +       fsl,spi-num-chipselects = <1>;
370 +       cs-gpios = <&gpio3 19 0>;
371 +       pinctrl-names = "default";
372 +       pinctrl-0 = <&pinctrl_ecspi1>;
373 +       status = "okay";
374 +
375 +       flash: m25p80@0 {
376 +               compatible = "sst,w25q256";
377 +               spi-max-frequency = <30000000>;
378 +               reg = <0>;
379 +       };
380 +};
381 +
382 +&fec {
383 +       pinctrl-names = "default";
384 +       pinctrl-0 = <&pinctrl_enet>;
385 +       phy-mode = "rgmii";
386 +       phy-reset-gpios = <&gpio1 30 0>;
387 +       status = "okay";
388 +};
389 +
390 +&i2c1 {
391 +       clock-frequency = <100000>;
392 +       pinctrl-names = "default";
393 +       pinctrl-0 = <&pinctrl_i2c1>;
394 +       status = "okay";
395 +
396 +       eeprom1: eeprom@50 {
397 +               compatible = "atmel,24c02";
398 +               reg = <0x50>;
399 +               pagesize = <16>;
400 +       };
401 +
402 +       eeprom2: eeprom@51 {
403 +               compatible = "atmel,24c02";
404 +               reg = <0x51>;
405 +               pagesize = <16>;
406 +       };
407 +
408 +       eeprom3: eeprom@52 {
409 +               compatible = "atmel,24c02";
410 +               reg = <0x52>;
411 +               pagesize = <16>;
412 +       };
413 +
414 +       eeprom4: eeprom@53 {
415 +               compatible = "atmel,24c02";
416 +               reg = <0x53>;
417 +               pagesize = <16>;
418 +       };
419 +
420 +       gpio: pca9555@23 {
421 +               compatible = "nxp,pca9555";
422 +               reg = <0x23>;
423 +               gpio-controller;
424 +               #gpio-cells = <2>;
425 +       };
426 +
427 +       hwmon: gsc@29 {
428 +               compatible = "gw,gsp";
429 +               reg = <0x29>;
430 +       };
431 +
432 +       rtc: ds1672@68 {
433 +               compatible = "dallas,ds1672";
434 +               reg = <0x68>;
435 +       };
436 +};
437 +
438 +&i2c2 {
439 +       clock-frequency = <100000>;
440 +       pinctrl-names = "default";
441 +       pinctrl-0 = <&pinctrl_i2c2>;
442 +       status = "okay";
443 +
444 +       pmic: pfuze100@08 {
445 +               compatible = "fsl,pfuze100";
446 +               reg = <0x08>;
447 +
448 +               regulators {
449 +                       sw1a_reg: sw1ab {
450 +                               regulator-min-microvolt = <300000>;
451 +                               regulator-max-microvolt = <1875000>;
452 +                               regulator-boot-on;
453 +                               regulator-always-on;
454 +                               regulator-ramp-delay = <6250>;
455 +                       };
456 +
457 +                       sw1c_reg: sw1c {
458 +                               regulator-min-microvolt = <300000>;
459 +                               regulator-max-microvolt = <1875000>;
460 +                               regulator-boot-on;
461 +                               regulator-always-on;
462 +                               regulator-ramp-delay = <6250>;
463 +                       };
464 +
465 +                       sw2_reg: sw2 {
466 +                               regulator-min-microvolt = <800000>;
467 +                               regulator-max-microvolt = <3950000>;
468 +                               regulator-boot-on;
469 +                               regulator-always-on;
470 +                       };
471 +
472 +                       sw3a_reg: sw3a {
473 +                               regulator-min-microvolt = <400000>;
474 +                               regulator-max-microvolt = <1975000>;
475 +                               regulator-boot-on;
476 +                               regulator-always-on;
477 +                       };
478 +
479 +                       sw3b_reg: sw3b {
480 +                               regulator-min-microvolt = <400000>;
481 +                               regulator-max-microvolt = <1975000>;
482 +                               regulator-boot-on;
483 +                               regulator-always-on;
484 +                       };
485 +
486 +                       sw4_reg: sw4 {
487 +                               regulator-min-microvolt = <800000>;
488 +                               regulator-max-microvolt = <3300000>;
489 +                       };
490 +
491 +                       swbst_reg: swbst {
492 +                               regulator-min-microvolt = <5000000>;
493 +                               regulator-max-microvolt = <5150000>;
494 +                       };
495 +
496 +                       snvs_reg: vsnvs {
497 +                               regulator-min-microvolt = <1000000>;
498 +                               regulator-max-microvolt = <3000000>;
499 +                               regulator-boot-on;
500 +                               regulator-always-on;
501 +                       };
502 +
503 +                       vref_reg: vrefddr {
504 +                               regulator-boot-on;
505 +                               regulator-always-on;
506 +                       };
507 +
508 +                       vgen1_reg: vgen1 {
509 +                               regulator-min-microvolt = <800000>;
510 +                               regulator-max-microvolt = <1550000>;
511 +                       };
512 +
513 +                       vgen2_reg: vgen2 {
514 +                               regulator-min-microvolt = <800000>;
515 +                               regulator-max-microvolt = <1550000>;
516 +                       };
517 +
518 +                       vgen3_reg: vgen3 {
519 +                               regulator-min-microvolt = <1800000>;
520 +                               regulator-max-microvolt = <3300000>;
521 +                       };
522 +
523 +                       vgen4_reg: vgen4 {
524 +                               regulator-min-microvolt = <1800000>;
525 +                               regulator-max-microvolt = <3300000>;
526 +                               regulator-always-on;
527 +                       };
528 +
529 +                       vgen5_reg: vgen5 {
530 +                               regulator-min-microvolt = <1800000>;
531 +                               regulator-max-microvolt = <3300000>;
532 +                               regulator-always-on;
533 +                       };
534 +
535 +                       vgen6_reg: vgen6 {
536 +                               regulator-min-microvolt = <1800000>;
537 +                               regulator-max-microvolt = <3300000>;
538 +                               regulator-always-on;
539 +                       };
540 +               };
541 +       };
542 +
543 +       pciswitch: pex8609@3f {
544 +               compatible = "plx,pex8609";
545 +               reg = <0x3f>;
546 +       };
547 +
548 +       pciclkgen: si52147@6b {
549 +               compatible = "sil,si52147";
550 +               reg = <0x6b>;
551 +       };
552 +};
553 +
554 +&i2c3 {
555 +       clock-frequency = <100000>;
556 +       pinctrl-names = "default";
557 +       pinctrl-0 = <&pinctrl_i2c3>;
558 +       status = "okay";
559 +
560 +       accelerometer: mma8450@1c {
561 +               compatible = "fsl,mma8450";
562 +               reg = <0x1c>;
563 +       };
564 +
565 +       codec: sgtl5000@0a {
566 +               compatible = "fsl,sgtl5000";
567 +               reg = <0x0a>;
568 +               clocks = <&clks 201>;
569 +               VDDA-supply = <&sw4_reg>;
570 +               VDDIO-supply = <&reg_3p3v>;
571 +       };
572 +
573 +       hdmiin: adv7611@4c {
574 +               compatible = "adi,adv7611";
575 +               reg = <0x4c>;
576 +       };
577 +
578 +       touchscreen: egalax_ts@04 {
579 +               compatible = "eeti,egalax_ts";
580 +               reg = <0x04>;
581 +               interrupt-parent = <&gpio7>;
582 +               interrupts = <12 2>; /* gpio7_12 active low */
583 +               wakeup-gpios = <&gpio7 12 0>;
584 +       };
585 +
586 +       videoout: adv7393@2a {
587 +               compatible = "adi,adv7393";
588 +               reg = <0x2a>;
589 +       };
590 +
591 +       videoin: adv7180@20 {
592 +               compatible = "adi,adv7180";
593 +               reg = <0x20>;
594 +       };
595 +};
596 +
597 +&iomuxc {
598 +       pinctrl-names = "default";
599 +       pinctrl-0 = <&pinctrl_hog>;
600 +
601 +       imx6q-gw5400-a {
602 +               pinctrl_hog: hoggrp {
603 +                       fsl,pins = <
604 +                               MX6QDL_PAD_EIM_D22__GPIO3_IO22    0x80000000 /* OTG_PWR_EN */
605 +                               MX6QDL_PAD_EIM_D19__GPIO3_IO19    0x80000000 /* SPINOR_CS0# */
606 +                               MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x80000000 /* PCIE IRQ */
607 +                               MX6QDL_PAD_ENET_TXD1__GPIO1_IO29  0x80000000 /* PCIE RST */
608 +                               MX6QDL_PAD_GPIO_0__CCM_CLKO1      0x000130b0 /* AUD4_MCK */
609 +                               MX6QDL_PAD_GPIO_5__GPIO1_IO05     0x80000000 /* GPS_PPS */
610 +                               MX6QDL_PAD_GPIO_17__GPIO7_IO12    0x80000000 /* TOUCH_IRQ# */
611 +                               MX6QDL_PAD_KEY_COL0__GPIO4_IO06   0x80000000 /* user1 led */
612 +                               MX6QDL_PAD_KEY_COL2__GPIO4_IO10   0x80000000 /* user2 led */
613 +                               MX6QDL_PAD_KEY_ROW4__GPIO4_IO15   0x80000000 /* user3 led */
614 +                               MX6QDL_PAD_SD1_DAT0__GPIO1_IO16   0x80000000 /* USBHUB_RST# */
615 +                               MX6QDL_PAD_SD1_DAT3__GPIO1_IO21   0x80000000 /* MIPI_DIO */
616 +                        >;
617 +               };
618 +
619 +               pinctrl_audmux: audmuxgrp {
620 +                       fsl,pins = <
621 +                               MX6QDL_PAD_SD2_DAT0__AUD4_RXD           0x130b0
622 +                               MX6QDL_PAD_SD2_DAT3__AUD4_TXC           0x130b0
623 +                               MX6QDL_PAD_SD2_DAT2__AUD4_TXD           0x110b0
624 +                               MX6QDL_PAD_SD2_DAT1__AUD4_TXFS          0x130b0
625 +                       >;
626 +               };
627 +
628 +               pinctrl_ecspi1: ecspi1grp {
629 +                       fsl,pins = <
630 +                               MX6QDL_PAD_EIM_D17__ECSPI1_MISO         0x100b1
631 +                               MX6QDL_PAD_EIM_D18__ECSPI1_MOSI         0x100b1
632 +                               MX6QDL_PAD_EIM_D16__ECSPI1_SCLK         0x100b1
633 +                       >;
634 +               };
635 +
636 +               pinctrl_enet: enetgrp {
637 +                       fsl,pins = <
638 +                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
639 +                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
640 +                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
641 +                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
642 +                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
643 +                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
644 +                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
645 +                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
646 +                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
647 +                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
648 +                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
649 +                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
650 +                               MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
651 +                               MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
652 +                               MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
653 +                               MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
654 +                       >;
655 +               };
656 +
657 +               pinctrl_i2c1: i2c1grp {
658 +                       fsl,pins = <
659 +                               MX6QDL_PAD_EIM_D21__I2C1_SCL            0x4001b8b1
660 +                               MX6QDL_PAD_EIM_D28__I2C1_SDA            0x4001b8b1
661 +                       >;
662 +               };
663 +
664 +               pinctrl_i2c2: i2c2grp {
665 +                       fsl,pins = <
666 +                               MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
667 +                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
668 +                       >;
669 +               };
670 +
671 +               pinctrl_i2c3: i2c3grp {
672 +                       fsl,pins = <
673 +                               MX6QDL_PAD_GPIO_3__I2C3_SCL             0x4001b8b1
674 +                               MX6QDL_PAD_GPIO_6__I2C3_SDA             0x4001b8b1
675 +                       >;
676 +               };
677 +
678 +               pinctrl_uart1: uart1grp {
679 +                       fsl,pins = <
680 +                               MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA      0x1b0b1
681 +                               MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA      0x1b0b1
682 +                       >;
683 +               };
684 +
685 +               pinctrl_uart2: uart2grp {
686 +                       fsl,pins = <
687 +                               MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA      0x1b0b1
688 +                               MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA      0x1b0b1
689 +                       >;
690 +               };
691 +
692 +               pinctrl_uart5: uart5grp {
693 +                       fsl,pins = <
694 +                               MX6QDL_PAD_KEY_COL1__UART5_TX_DATA      0x1b0b1
695 +                               MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA      0x1b0b1
696 +                       >;
697 +               };
698 +
699 +               pinctrl_usbotg: usbotggrp {
700 +                       fsl,pins = <
701 +                               MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x17059
702 +                       >;
703 +               };
704 +
705 +               pinctrl_usdhc3: usdhc3grp {
706 +                       fsl,pins = <
707 +                               MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
708 +                               MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
709 +                               MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
710 +                               MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
711 +                               MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
712 +                               MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
713 +                       >;
714 +               };
715 +       };
716 +};
717 +
718 +&ldb {
719 +       status = "okay";
720 +       lvds-channel@0 {
721 +               crtcs = <&ipu1 0>, <&ipu1 1>, <&ipu2 0>, <&ipu2 1>;
722 +       };
723 +};
724 +
725 +&pcie {
726 +       reset-gpio = <&gpio1 29 0>;
727 +       status = "okay";
728 +
729 +       eth1: sky2@8 { /* MAC/PHY on bus 8 */
730 +               compatible = "marvell,sky2";
731 +       };
732 +};
733 +
734 +&ssi1 {
735 +       fsl,mode = "i2s-slave";
736 +       status = "okay";
737 +};
738 +
739 +&uart1 {
740 +       pinctrl-names = "default";
741 +       pinctrl-0 = <&pinctrl_uart1>;
742 +       status = "okay";
743 +};
744 +
745 +&uart2 {
746 +       pinctrl-names = "default";
747 +       pinctrl-0 = <&pinctrl_uart2>;
748 +       status = "okay";
749 +};
750 +
751 +&uart5 {
752 +       pinctrl-names = "default";
753 +       pinctrl-0 = <&pinctrl_uart5>;
754 +       status = "okay";
755 +};
756 +
757 +&usbotg {
758 +       vbus-supply = <&reg_usb_otg_vbus>;
759 +       pinctrl-names = "default";
760 +       pinctrl-0 = <&pinctrl_usbotg>;
761 +       disable-over-current;
762 +       status = "okay";
763 +};
764 +
765 +&usbh1 {
766 +       vbus-supply = <&reg_usb_h1_vbus>;
767 +       status = "okay";
768 +};
769 +
770 +&usdhc3 {
771 +       pinctrl-names = "default";
772 +       pinctrl-0 = <&pinctrl_usdhc3>;
773 +       cd-gpios = <&gpio7 0 0>;
774 +       vmmc-supply = <&reg_3p3v>;
775 +       status = "okay";
776 +};
777 --- /dev/null
778 +++ b/arch/arm/boot/dts/imx6q-gw54xx.dts
779 @@ -0,0 +1,23 @@
780 +/*
781 + * Copyright 2013 Gateworks Corporation
782 + *
783 + * The code contained herein is licensed under the GNU General Public
784 + * License. You may obtain a copy of the GNU General Public License
785 + * Version 2 or later at the following locations:
786 + *
787 + * http://www.opensource.org/licenses/gpl-license.html
788 + * http://www.gnu.org/copyleft/gpl.html
789 + */
790 +
791 +/dts-v1/;
792 +#include "imx6q.dtsi"
793 +#include "imx6qdl-gw54xx.dtsi"
794 +
795 +/ {
796 +       model = "Gateworks Ventana i.MX6 Quad GW54XX";
797 +       compatible = "gw,imx6q-gw54xx", "gw,ventana", "fsl,imx6q";
798 +};
799 +
800 +&sata {
801 +       status = "okay";
802 +};
803 --- /dev/null
804 +++ b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
805 @@ -0,0 +1,374 @@
806 +/*
807 + * Copyright 2013 Gateworks Corporation
808 + *
809 + * The code contained herein is licensed under the GNU General Public
810 + * License. You may obtain a copy of the GNU General Public License
811 + * Version 2 or later at the following locations:
812 + *
813 + * http://www.opensource.org/licenses/gpl-license.html
814 + * http://www.gnu.org/copyleft/gpl.html
815 + */
816 +
817 +/ {
818 +       /* these are used by bootloader for disabling nodes */
819 +       aliases {
820 +               can0 = &can1;
821 +               ethernet0 = &fec;
822 +               led0 = &led0;
823 +               led1 = &led1;
824 +               nand = &gpmi;
825 +               usb0 = &usbh1;
826 +               usb1 = &usbotg;
827 +       };
828 +
829 +       chosen {
830 +               bootargs = "console=ttymxc1,115200";
831 +       };
832 +
833 +       leds {
834 +               compatible = "gpio-leds";
835 +
836 +               led0: user1 {
837 +                       label = "user1";
838 +                       gpios = <&gpio4 6 0>; /* 102 -> MX6_PANLEDG */
839 +                       default-state = "on";
840 +                       linux,default-trigger = "heartbeat";
841 +               };
842 +
843 +               led1: user2 {
844 +                       label = "user2";
845 +                       gpios = <&gpio4 7 0>; /* 103 -> MX6_PANLEDR */
846 +                       default-state = "off";
847 +               };
848 +       };
849 +
850 +       memory {
851 +               reg = <0x10000000 0x20000000>;
852 +       };
853 +
854 +       pps {
855 +               compatible = "pps-gpio";
856 +               gpios = <&gpio1 26 0>;
857 +               status = "okay";
858 +       };
859 +
860 +       regulators {
861 +               compatible = "simple-bus";
862 +               #address-cells = <1>;
863 +               #size-cells = <0>;
864 +
865 +               reg_3p3v: regulator@0 {
866 +                       compatible = "regulator-fixed";
867 +                       reg = <0>;
868 +                       regulator-name = "3P3V";
869 +                       regulator-min-microvolt = <3300000>;
870 +                       regulator-max-microvolt = <3300000>;
871 +                       regulator-always-on;
872 +               };
873 +
874 +               reg_5p0v: regulator@1 {
875 +                       compatible = "regulator-fixed";
876 +                       reg = <1>;
877 +                       regulator-name = "5P0V";
878 +                       regulator-min-microvolt = <5000000>;
879 +                       regulator-max-microvolt = <5000000>;
880 +                       regulator-always-on;
881 +               };
882 +
883 +               reg_usb_otg_vbus: regulator@2 {
884 +                       compatible = "regulator-fixed";
885 +                       reg = <2>;
886 +                       regulator-name = "usb_otg_vbus";
887 +                       regulator-min-microvolt = <5000000>;
888 +                       regulator-max-microvolt = <5000000>;
889 +                       gpio = <&gpio3 22 0>;
890 +                       enable-active-high;
891 +               };
892 +       };
893 +};
894 +
895 +&fec {
896 +       pinctrl-names = "default";
897 +       pinctrl-0 = <&pinctrl_enet>;
898 +       phy-mode = "rgmii";
899 +       phy-reset-gpios = <&gpio1 30 0>;
900 +       status = "okay";
901 +};
902 +
903 +&gpmi {
904 +       pinctrl-names = "default";
905 +       pinctrl-0 = <&pinctrl_gpmi_nand>;
906 +       status = "okay";
907 +};
908 +
909 +&i2c1 {
910 +       clock-frequency = <100000>;
911 +       pinctrl-names = "default";
912 +       pinctrl-0 = <&pinctrl_i2c1>;
913 +       status = "okay";
914 +
915 +       eeprom1: eeprom@50 {
916 +               compatible = "atmel,24c02";
917 +               reg = <0x50>;
918 +               pagesize = <16>;
919 +       };
920 +
921 +       eeprom2: eeprom@51 {
922 +               compatible = "atmel,24c02";
923 +               reg = <0x51>;
924 +               pagesize = <16>;
925 +       };
926 +
927 +       eeprom3: eeprom@52 {
928 +               compatible = "atmel,24c02";
929 +               reg = <0x52>;
930 +               pagesize = <16>;
931 +       };
932 +
933 +       eeprom4: eeprom@53 {
934 +               compatible = "atmel,24c02";
935 +               reg = <0x53>;
936 +               pagesize = <16>;
937 +       };
938 +
939 +       gpio: pca9555@23 {
940 +               compatible = "nxp,pca9555";
941 +               reg = <0x23>;
942 +               gpio-controller;
943 +               #gpio-cells = <2>;
944 +       };
945 +
946 +       hwmon: gsc@29 {
947 +               compatible = "gw,gsp";
948 +               reg = <0x29>;
949 +       };
950 +
951 +       rtc: ds1672@68 {
952 +               compatible = "dallas,ds1672";
953 +               reg = <0x68>;
954 +       };
955 +};
956 +
957 +&i2c2 {
958 +       clock-frequency = <100000>;
959 +       pinctrl-names = "default";
960 +       pinctrl-0 = <&pinctrl_i2c2>;
961 +       status = "okay";
962 +
963 +       pmic: ltc3676@3c {
964 +               compatible = "ltc,ltc3676";
965 +               reg = <0x3c>;
966 +
967 +               regulators {
968 +                       sw1_reg: ltc3676__sw1 {
969 +                               regulator-min-microvolt = <1175000>;
970 +                               regulator-max-microvolt = <1175000>;
971 +                               regulator-boot-on;
972 +                               regulator-always-on;
973 +                       };
974 +
975 +                       sw2_reg: ltc3676__sw2 {
976 +                               regulator-min-microvolt = <1800000>;
977 +                               regulator-max-microvolt = <1800000>;
978 +                               regulator-boot-on;
979 +                               regulator-always-on;
980 +                       };
981 +
982 +                       sw3_reg: ltc3676__sw3 {
983 +                               regulator-min-microvolt = <1175000>;
984 +                               regulator-max-microvolt = <1175000>;
985 +                               regulator-boot-on;
986 +                               regulator-always-on;
987 +                       };
988 +
989 +                       sw4_reg: ltc3676__sw4 {
990 +                               regulator-min-microvolt = <1500000>;
991 +                               regulator-max-microvolt = <1500000>;
992 +                               regulator-boot-on;
993 +                               regulator-always-on;
994 +                       };
995 +
996 +                       ldo2_reg: ltc3676__ldo2 {
997 +                               regulator-min-microvolt = <2500000>;
998 +                               regulator-max-microvolt = <2500000>;
999 +                               regulator-boot-on;
1000 +                               regulator-always-on;
1001 +                       };
1002 +
1003 +                       ldo4_reg: ltc3676__ldo4 {
1004 +                               regulator-min-microvolt = <3000000>;
1005 +                               regulator-max-microvolt = <3000000>;
1006 +                       };
1007 +               };
1008 +       };
1009 +};
1010 +
1011 +&i2c3 {
1012 +       clock-frequency = <100000>;
1013 +       pinctrl-names = "default";
1014 +       pinctrl-0 = <&pinctrl_i2c3>;
1015 +       status = "okay";
1016 +
1017 +       videoin: adv7180@20 {
1018 +               compatible = "adi,adv7180";
1019 +               reg = <0x20>;
1020 +       };
1021 +};
1022 +
1023 +&iomuxc {
1024 +       pinctrl-names = "default";
1025 +       pinctrl-0 = <&pinctrl_hog>;
1026 +
1027 +       imx6qdl-gw51xx {
1028 +               pinctrl_hog: hoggrp {
1029 +                       fsl,pins = <
1030 +                               MX6QDL_PAD_EIM_A19__GPIO2_IO19   0x80000000 /* MEZZ_DIO0 */
1031 +                               MX6QDL_PAD_EIM_A20__GPIO2_IO18   0x80000000 /* MEZZ_DIO1 */
1032 +                               MX6QDL_PAD_EIM_D22__GPIO3_IO22   0x80000000 /* OTG_PWR_EN */
1033 +                               MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x80000000 /* GPS_PPS */
1034 +                               MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x80000000 /* PHY Reset */
1035 +                               MX6QDL_PAD_GPIO_0__GPIO1_IO00    0x80000000 /* PCIE_RST# */
1036 +                               MX6QDL_PAD_KEY_COL0__GPIO4_IO06  0x80000000 /* user1 led */
1037 +                               MX6QDL_PAD_KEY_ROW0__GPIO4_IO07  0x80000000 /* user2 led */
1038 +                        >;
1039 +               };
1040 +
1041 +               pinctrl_enet: enetgrp {
1042 +                       fsl,pins = <
1043 +                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
1044 +                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
1045 +                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
1046 +                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
1047 +                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
1048 +                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
1049 +                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
1050 +                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
1051 +                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
1052 +                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
1053 +                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
1054 +                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
1055 +                               MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
1056 +                               MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
1057 +                               MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
1058 +                               MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
1059 +                       >;
1060 +               };
1061 +
1062 +               pinctrl_gpmi_nand: gpminandgrp {
1063 +                       fsl,pins = <
1064 +                               MX6QDL_PAD_NANDF_CLE__NAND_CLE          0xb0b1
1065 +                               MX6QDL_PAD_NANDF_ALE__NAND_ALE          0xb0b1
1066 +                               MX6QDL_PAD_NANDF_WP_B__NAND_WP_B        0xb0b1
1067 +                               MX6QDL_PAD_NANDF_RB0__NAND_READY_B      0xb000
1068 +                               MX6QDL_PAD_NANDF_CS0__NAND_CE0_B        0xb0b1
1069 +                               MX6QDL_PAD_NANDF_CS1__NAND_CE1_B        0xb0b1
1070 +                               MX6QDL_PAD_SD4_CMD__NAND_RE_B           0xb0b1
1071 +                               MX6QDL_PAD_SD4_CLK__NAND_WE_B           0xb0b1
1072 +                               MX6QDL_PAD_NANDF_D0__NAND_DATA00        0xb0b1
1073 +                               MX6QDL_PAD_NANDF_D1__NAND_DATA01        0xb0b1
1074 +                               MX6QDL_PAD_NANDF_D2__NAND_DATA02        0xb0b1
1075 +                               MX6QDL_PAD_NANDF_D3__NAND_DATA03        0xb0b1
1076 +                               MX6QDL_PAD_NANDF_D4__NAND_DATA04        0xb0b1
1077 +                               MX6QDL_PAD_NANDF_D5__NAND_DATA05        0xb0b1
1078 +                               MX6QDL_PAD_NANDF_D6__NAND_DATA06        0xb0b1
1079 +                               MX6QDL_PAD_NANDF_D7__NAND_DATA07        0xb0b1
1080 +                       >;
1081 +               };
1082 +
1083 +               pinctrl_i2c1: i2c1grp {
1084 +                       fsl,pins = <
1085 +                               MX6QDL_PAD_EIM_D21__I2C1_SCL            0x4001b8b1
1086 +                               MX6QDL_PAD_EIM_D28__I2C1_SDA            0x4001b8b1
1087 +                       >;
1088 +               };
1089 +
1090 +               pinctrl_i2c2: i2c2grp {
1091 +                       fsl,pins = <
1092 +                               MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
1093 +                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
1094 +                       >;
1095 +               };
1096 +
1097 +               pinctrl_i2c3: i2c3grp {
1098 +                       fsl,pins = <
1099 +                               MX6QDL_PAD_GPIO_3__I2C3_SCL             0x4001b8b1
1100 +                               MX6QDL_PAD_GPIO_6__I2C3_SDA             0x4001b8b1
1101 +                       >;
1102 +               };
1103 +
1104 +               pinctrl_uart1: uart1grp {
1105 +                       fsl,pins = <
1106 +                               MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA      0x1b0b1
1107 +                               MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA      0x1b0b1
1108 +                       >;
1109 +               };
1110 +
1111 +               pinctrl_uart2: uart2grp {
1112 +                       fsl,pins = <
1113 +                               MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA      0x1b0b1
1114 +                               MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA      0x1b0b1
1115 +                       >;
1116 +               };
1117 +
1118 +               pinctrl_uart3: uart3grp {
1119 +                       fsl,pins = <
1120 +                               MX6QDL_PAD_EIM_D24__UART3_TX_DATA       0x1b0b1
1121 +                               MX6QDL_PAD_EIM_D25__UART3_RX_DATA       0x1b0b1
1122 +                       >;
1123 +               };
1124 +
1125 +               pinctrl_uart5: uart5grp {
1126 +                       fsl,pins = <
1127 +                               MX6QDL_PAD_KEY_COL1__UART5_TX_DATA      0x1b0b1
1128 +                               MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA      0x1b0b1
1129 +                       >;
1130 +               };
1131 +
1132 +               pinctrl_usbotg: usbotggrp {
1133 +                       fsl,pins = <
1134 +                               MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x17059
1135 +                       >;
1136 +               };
1137 +       };
1138 +};
1139 +
1140 +&pcie {
1141 +       reset-gpio = <&gpio1 0 0>;
1142 +       status = "okay";
1143 +};
1144 +
1145 +&uart1 {
1146 +       pinctrl-names = "default";
1147 +       pinctrl-0 = <&pinctrl_uart1>;
1148 +       status = "okay";
1149 +};
1150 +
1151 +&uart2 {
1152 +       pinctrl-names = "default";
1153 +       pinctrl-0 = <&pinctrl_uart2>;
1154 +       status = "okay";
1155 +};
1156 +
1157 +&uart3 {
1158 +       pinctrl-names = "default";
1159 +       pinctrl-0 = <&pinctrl_uart3>;
1160 +       status = "okay";
1161 +};
1162 +
1163 +&uart5 {
1164 +       pinctrl-names = "default";
1165 +       pinctrl-0 = <&pinctrl_uart5>;
1166 +       status = "okay";
1167 +};
1168 +
1169 +&usbotg {
1170 +       vbus-supply = <&reg_usb_otg_vbus>;
1171 +       pinctrl-names = "default";
1172 +       pinctrl-0 = <&pinctrl_usbotg>;
1173 +       disable-over-current;
1174 +       status = "okay";
1175 +};
1176 +
1177 +&usbh1 {
1178 +       status = "okay";
1179 +};
1180 --- /dev/null
1181 +++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
1182 @@ -0,0 +1,490 @@
1183 +/*
1184 + * Copyright 2013 Gateworks Corporation
1185 + *
1186 + * The code contained herein is licensed under the GNU General Public
1187 + * License. You may obtain a copy of the GNU General Public License
1188 + * Version 2 or later at the following locations:
1189 + *
1190 + * http://www.opensource.org/licenses/gpl-license.html
1191 + * http://www.gnu.org/copyleft/gpl.html
1192 + */
1193 +
1194 +/ {
1195 +       /* these are used by bootloader for disabling nodes */
1196 +       aliases {
1197 +               ethernet0 = &fec;
1198 +               led0 = &led0;
1199 +               led1 = &led1;
1200 +               led2 = &led2;
1201 +               nand = &gpmi;
1202 +               ssi0 = &ssi1;
1203 +               usb0 = &usbh1;
1204 +               usb1 = &usbotg;
1205 +               usdhc2 = &usdhc3;
1206 +       };
1207 +
1208 +       chosen {
1209 +               bootargs = "console=ttymxc1,115200";
1210 +       };
1211 +
1212 +       leds {
1213 +               compatible = "gpio-leds";
1214 +
1215 +               led0: user1 {
1216 +                       label = "user1";
1217 +                       gpios = <&gpio4 6 0>; /* 102 -> MX6_PANLEDG */
1218 +                       default-state = "on";
1219 +                       linux,default-trigger = "heartbeat";
1220 +               };
1221 +
1222 +               led1: user2 {
1223 +                       label = "user2";
1224 +                       gpios = <&gpio4 7 0>; /* 103 -> MX6_PANLEDR */
1225 +                       default-state = "off";
1226 +               };
1227 +
1228 +               led2: user3 {
1229 +                       label = "user3";
1230 +                       gpios = <&gpio4 15 1>; /* 111 - MX6_LOCLED# */
1231 +                       default-state = "off";
1232 +               };
1233 +       };
1234 +
1235 +       memory {
1236 +               reg = <0x10000000 0x20000000>;
1237 +       };
1238 +
1239 +       pps {
1240 +               compatible = "pps-gpio";
1241 +               gpios = <&gpio1 26 0>;
1242 +               status = "okay";
1243 +       };
1244 +
1245 +       regulators {
1246 +               compatible = "simple-bus";
1247 +               #address-cells = <1>;
1248 +               #size-cells = <0>;
1249 +
1250 +               reg_1p0v: regulator@0 {
1251 +                       compatible = "regulator-fixed";
1252 +                       reg = <0>;
1253 +                       regulator-name = "1P0V";
1254 +                       regulator-min-microvolt = <1000000>;
1255 +                       regulator-max-microvolt = <1000000>;
1256 +                       regulator-always-on;
1257 +               };
1258 +
1259 +               /* remove this fixed regulator once ltc3676__sw2 driver available */
1260 +               reg_1p8v: regulator@1 {
1261 +                       compatible = "regulator-fixed";
1262 +                       reg = <1>;
1263 +                       regulator-name = "1P8V";
1264 +                       regulator-min-microvolt = <1800000>;
1265 +                       regulator-max-microvolt = <1800000>;
1266 +                       regulator-always-on;
1267 +               };
1268 +
1269 +               reg_3p3v: regulator@2 {
1270 +                       compatible = "regulator-fixed";
1271 +                       reg = <2>;
1272 +                       regulator-name = "3P3V";
1273 +                       regulator-min-microvolt = <3300000>;
1274 +                       regulator-max-microvolt = <3300000>;
1275 +                       regulator-always-on;
1276 +               };
1277 +
1278 +               reg_5p0v: regulator@3 {
1279 +                       compatible = "regulator-fixed";
1280 +                       reg = <3>;
1281 +                       regulator-name = "5P0V";
1282 +                       regulator-min-microvolt = <5000000>;
1283 +                       regulator-max-microvolt = <5000000>;
1284 +                       regulator-always-on;
1285 +               };
1286 +
1287 +               reg_usb_otg_vbus: regulator@4 {
1288 +                       compatible = "regulator-fixed";
1289 +                       reg = <4>;
1290 +                       regulator-name = "usb_otg_vbus";
1291 +                       regulator-min-microvolt = <5000000>;
1292 +                       regulator-max-microvolt = <5000000>;
1293 +                       gpio = <&gpio3 22 0>;
1294 +                       enable-active-high;
1295 +               };
1296 +       };
1297 +
1298 +       sound {
1299 +               compatible = "fsl,imx6q-sabrelite-sgtl5000",
1300 +                            "fsl,imx-audio-sgtl5000";
1301 +               model = "imx6q-sabrelite-sgtl5000";
1302 +               ssi-controller = <&ssi1>;
1303 +               audio-codec = <&codec>;
1304 +               audio-routing =
1305 +                       "MIC_IN", "Mic Jack",
1306 +                       "Mic Jack", "Mic Bias",
1307 +                       "Headphone Jack", "HP_OUT";
1308 +               mux-int-port = <1>;
1309 +               mux-ext-port = <4>;
1310 +       };
1311 +};
1312 +
1313 +&audmux {
1314 +       pinctrl-names = "default";
1315 +       pinctrl-0 = <&pinctrl_audmux>;
1316 +       status = "okay";
1317 +};
1318 +
1319 +&fec {
1320 +       pinctrl-names = "default";
1321 +       pinctrl-0 = <&pinctrl_enet>;
1322 +       phy-mode = "rgmii";
1323 +       phy-reset-gpios = <&gpio1 30 0>;
1324 +       status = "okay";
1325 +};
1326 +
1327 +&gpmi {
1328 +       pinctrl-names = "default";
1329 +       pinctrl-0 = <&pinctrl_gpmi_nand>;
1330 +       status = "okay";
1331 +};
1332 +
1333 +&i2c1 {
1334 +       clock-frequency = <100000>;
1335 +       pinctrl-names = "default";
1336 +       pinctrl-0 = <&pinctrl_i2c1>;
1337 +       status = "okay";
1338 +
1339 +       eeprom1: eeprom@50 {
1340 +               compatible = "atmel,24c02";
1341 +               reg = <0x50>;
1342 +               pagesize = <16>;
1343 +       };
1344 +
1345 +       eeprom2: eeprom@51 {
1346 +               compatible = "atmel,24c02";
1347 +               reg = <0x51>;
1348 +               pagesize = <16>;
1349 +       };
1350 +
1351 +       eeprom3: eeprom@52 {
1352 +               compatible = "atmel,24c02";
1353 +               reg = <0x52>;
1354 +               pagesize = <16>;
1355 +       };
1356 +
1357 +       eeprom4: eeprom@53 {
1358 +               compatible = "atmel,24c02";
1359 +               reg = <0x53>;
1360 +               pagesize = <16>;
1361 +       };
1362 +
1363 +       gpio: pca9555@23 {
1364 +               compatible = "nxp,pca9555";
1365 +               reg = <0x23>;
1366 +               gpio-controller;
1367 +               #gpio-cells = <2>;
1368 +       };
1369 +
1370 +       hwmon: gsc@29 {
1371 +               compatible = "gw,gsp";
1372 +               reg = <0x29>;
1373 +       };
1374 +
1375 +       rtc: ds1672@68 {
1376 +               compatible = "dallas,ds1672";
1377 +               reg = <0x68>;
1378 +       };
1379 +};
1380 +
1381 +&i2c2 {
1382 +       clock-frequency = <100000>;
1383 +       pinctrl-names = "default";
1384 +       pinctrl-0 = <&pinctrl_i2c2>;
1385 +       status = "okay";
1386 +
1387 +       pciswitch: pex8609@3f {
1388 +               compatible = "plx,pex8609";
1389 +               reg = <0x3f>;
1390 +       };
1391 +
1392 +       pmic: ltc3676@3c {
1393 +               compatible = "ltc,ltc3676";
1394 +               reg = <0x3c>;
1395 +
1396 +               regulators {
1397 +                       sw1_reg: ltc3676__sw1 {
1398 +                               regulator-min-microvolt = <1175000>;
1399 +                               regulator-max-microvolt = <1175000>;
1400 +                               regulator-boot-on;
1401 +                               regulator-always-on;
1402 +                       };
1403 +
1404 +                       sw2_reg: ltc3676__sw2 {
1405 +                               regulator-min-microvolt = <1800000>;
1406 +                               regulator-max-microvolt = <1800000>;
1407 +                               regulator-boot-on;
1408 +                               regulator-always-on;
1409 +                       };
1410 +
1411 +                       sw3_reg: ltc3676__sw3 {
1412 +                               regulator-min-microvolt = <1175000>;
1413 +                               regulator-max-microvolt = <1175000>;
1414 +                               regulator-boot-on;
1415 +                               regulator-always-on;
1416 +                       };
1417 +
1418 +                       sw4_reg: ltc3676__sw4 {
1419 +                               regulator-min-microvolt = <1500000>;
1420 +                               regulator-max-microvolt = <1500000>;
1421 +                               regulator-boot-on;
1422 +                               regulator-always-on;
1423 +                       };
1424 +
1425 +                       ldo2_reg: ltc3676__ldo2 {
1426 +                               regulator-min-microvolt = <2500000>;
1427 +                               regulator-max-microvolt = <2500000>;
1428 +                               regulator-boot-on;
1429 +                               regulator-always-on;
1430 +                       };
1431 +
1432 +                       ldo3_reg: ltc3676__ldo3 {
1433 +                               regulator-min-microvolt = <1800000>;
1434 +                               regulator-max-microvolt = <1800000>;
1435 +                               regulator-boot-on;
1436 +                               regulator-always-on;
1437 +                       };
1438 +
1439 +                       ldo4_reg: ltc3676__ldo4 {
1440 +                               regulator-min-microvolt = <3000000>;
1441 +                               regulator-max-microvolt = <3000000>;
1442 +                       };
1443 +               };
1444 +       };
1445 +};
1446 +
1447 +&i2c3 {
1448 +       clock-frequency = <100000>;
1449 +       pinctrl-names = "default";
1450 +       pinctrl-0 = <&pinctrl_i2c3>;
1451 +       status = "okay";
1452 +
1453 +       accelerometer: fxos8700@1e {
1454 +               compatible = "fsl,fxos8700";
1455 +               reg = <0x13>;
1456 +       };
1457 +
1458 +       codec: sgtl5000@0a {
1459 +               compatible = "fsl,sgtl5000";
1460 +               reg = <0x0a>;
1461 +               clocks = <&clks 169>;
1462 +               VDDA-supply = <&reg_1p8v>;
1463 +               VDDIO-supply = <&reg_3p3v>;
1464 +       };
1465 +
1466 +       touchscreen: egalax_ts@04 {
1467 +               compatible = "eeti,egalax_ts";
1468 +               reg = <0x04>;
1469 +               interrupt-parent = <&gpio7>;
1470 +               interrupts = <12 2>; /* gpio7_12 active low */
1471 +               wakeup-gpios = <&gpio7 12 0>;
1472 +       };
1473 +
1474 +       videoin: adv7180@20 {
1475 +               compatible = "adi,adv7180";
1476 +               reg = <0x20>;
1477 +       };
1478 +};
1479 +
1480 +&iomuxc {
1481 +       pinctrl-names = "default";
1482 +       pinctrl-0 = <&pinctrl_hog>;
1483 +
1484 +       imx6qdl-gw52xx {
1485 +               pinctrl_hog: hoggrp {
1486 +                       fsl,pins = <
1487 +                               MX6QDL_PAD_EIM_A19__GPIO2_IO19   0x80000000 /* MEZZ_DIO0 */
1488 +                               MX6QDL_PAD_EIM_A20__GPIO2_IO18   0x80000000 /* MEZZ_DIO1 */
1489 +                               MX6QDL_PAD_EIM_D22__GPIO3_IO22   0x80000000 /* OTG_PWR_EN */
1490 +                               MX6QDL_PAD_EIM_D31__GPIO3_IO31   0x80000000 /* VIDDEC_PDN# */
1491 +                               MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x80000000 /* PHY Reset */
1492 +                               MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 /* PCIE_RST# */
1493 +                               MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x80000000 /* GPS_PWDN */
1494 +                               MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x80000000 /* GPS_PPS */
1495 +                               MX6QDL_PAD_GPIO_0__CCM_CLKO1     0x000130b0 /* AUD4_MCK */
1496 +                               MX6QDL_PAD_GPIO_2__GPIO1_IO02    0x80000000 /* USB_SEL_PCI */
1497 +                               MX6QDL_PAD_GPIO_17__GPIO7_IO12   0x80000000 /* TOUCH_IRQ# */
1498 +                               MX6QDL_PAD_KEY_COL0__GPIO4_IO06  0x80000000 /* user1 led */
1499 +                               MX6QDL_PAD_KEY_ROW0__GPIO4_IO07  0x80000000 /* user2 led */
1500 +                               MX6QDL_PAD_KEY_ROW4__GPIO4_IO15  0x80000000 /* user3 led */
1501 +                               MX6QDL_PAD_SD2_CMD__GPIO1_IO11   0x80000000 /* LVDS_TCH# */
1502 +                               MX6QDL_PAD_SD3_DAT5__GPIO7_IO00  0x80000000 /* SD3_CD# */
1503 +                               MX6QDL_PAD_SD4_DAT3__GPIO2_IO11  0x80000000 /* UART2_EN# */
1504 +                        >;
1505 +               };
1506 +
1507 +               pinctrl_audmux: audmuxgrp {
1508 +                       fsl,pins = <
1509 +                               MX6QDL_PAD_SD2_DAT0__AUD4_RXD           0x130b0
1510 +                               MX6QDL_PAD_SD2_DAT3__AUD4_TXC           0x130b0
1511 +                               MX6QDL_PAD_SD2_DAT2__AUD4_TXD           0x110b0
1512 +                               MX6QDL_PAD_SD2_DAT1__AUD4_TXFS          0x130b0
1513 +                       >;
1514 +               };
1515 +
1516 +               pinctrl_enet: enetgrp {
1517 +                       fsl,pins = <
1518 +                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
1519 +                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
1520 +                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
1521 +                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
1522 +                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
1523 +                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
1524 +                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
1525 +                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
1526 +                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
1527 +                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
1528 +                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
1529 +                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
1530 +                               MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
1531 +                               MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
1532 +                               MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
1533 +                               MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
1534 +                       >;
1535 +               };
1536 +
1537 +               pinctrl_gpmi_nand: gpminandgrp {
1538 +                       fsl,pins = <
1539 +                               MX6QDL_PAD_NANDF_CLE__NAND_CLE          0xb0b1
1540 +                               MX6QDL_PAD_NANDF_ALE__NAND_ALE          0xb0b1
1541 +                               MX6QDL_PAD_NANDF_WP_B__NAND_WP_B        0xb0b1
1542 +                               MX6QDL_PAD_NANDF_RB0__NAND_READY_B      0xb000
1543 +                               MX6QDL_PAD_NANDF_CS0__NAND_CE0_B        0xb0b1
1544 +                               MX6QDL_PAD_NANDF_CS1__NAND_CE1_B        0xb0b1
1545 +                               MX6QDL_PAD_SD4_CMD__NAND_RE_B           0xb0b1
1546 +                               MX6QDL_PAD_SD4_CLK__NAND_WE_B           0xb0b1
1547 +                               MX6QDL_PAD_NANDF_D0__NAND_DATA00        0xb0b1
1548 +                               MX6QDL_PAD_NANDF_D1__NAND_DATA01        0xb0b1
1549 +                               MX6QDL_PAD_NANDF_D2__NAND_DATA02        0xb0b1
1550 +                               MX6QDL_PAD_NANDF_D3__NAND_DATA03        0xb0b1
1551 +                               MX6QDL_PAD_NANDF_D4__NAND_DATA04        0xb0b1
1552 +                               MX6QDL_PAD_NANDF_D5__NAND_DATA05        0xb0b1
1553 +                               MX6QDL_PAD_NANDF_D6__NAND_DATA06        0xb0b1
1554 +                               MX6QDL_PAD_NANDF_D7__NAND_DATA07        0xb0b1
1555 +                       >;
1556 +               };
1557 +
1558 +               pinctrl_i2c1: i2c1grp {
1559 +                       fsl,pins = <
1560 +                               MX6QDL_PAD_EIM_D21__I2C1_SCL            0x4001b8b1
1561 +                               MX6QDL_PAD_EIM_D28__I2C1_SDA            0x4001b8b1
1562 +                       >;
1563 +               };
1564 +
1565 +               pinctrl_i2c2: i2c2grp {
1566 +                       fsl,pins = <
1567 +                               MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
1568 +                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
1569 +                       >;
1570 +               };
1571 +
1572 +               pinctrl_i2c3: i2c3grp {
1573 +                       fsl,pins = <
1574 +                               MX6QDL_PAD_GPIO_3__I2C3_SCL             0x4001b8b1
1575 +                               MX6QDL_PAD_GPIO_6__I2C3_SDA             0x4001b8b1
1576 +                       >;
1577 +               };
1578 +
1579 +               pinctrl_uart1: uart1grp {
1580 +                       fsl,pins = <
1581 +                               MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA      0x1b0b1
1582 +                               MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA      0x1b0b1
1583 +                       >;
1584 +               };
1585 +
1586 +               pinctrl_uart2: uart2grp {
1587 +                       fsl,pins = <
1588 +                               MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA      0x1b0b1
1589 +                               MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA      0x1b0b1
1590 +                       >;
1591 +               };
1592 +
1593 +               pinctrl_uart5: uart5grp {
1594 +                       fsl,pins = <
1595 +                               MX6QDL_PAD_KEY_COL1__UART5_TX_DATA      0x1b0b1
1596 +                               MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA      0x1b0b1
1597 +                       >;
1598 +               };
1599 +
1600 +               pinctrl_usbotg: usbotggrp {
1601 +                       fsl,pins = <
1602 +                               MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x17059
1603 +                       >;
1604 +               };
1605 +
1606 +               pinctrl_usdhc3: usdhc3grp {
1607 +                       fsl,pins = <
1608 +                               MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
1609 +                               MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
1610 +                               MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
1611 +                               MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
1612 +                               MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
1613 +                               MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
1614 +                       >;
1615 +               };
1616 +       };
1617 +};
1618 +
1619 +&ldb {
1620 +       status = "okay";
1621 +       lvds-channel@0 {
1622 +               crtcs = <&ipu1 0>, <&ipu1 1>;
1623 +       };
1624 +};
1625 +
1626 +&pcie {
1627 +       reset-gpio = <&gpio1 29 0>;
1628 +       status = "okay";
1629 +};
1630 +
1631 +&ssi1 {
1632 +       fsl,mode = "i2s-slave";
1633 +       status = "okay";
1634 +};
1635 +
1636 +&uart1 {
1637 +       pinctrl-names = "default";
1638 +       pinctrl-0 = <&pinctrl_uart1>;
1639 +       status = "okay";
1640 +};
1641 +
1642 +&uart2 {
1643 +       pinctrl-names = "default";
1644 +       pinctrl-0 = <&pinctrl_uart2>;
1645 +       status = "okay";
1646 +};
1647 +
1648 +&uart5 {
1649 +       pinctrl-names = "default";
1650 +       pinctrl-0 = <&pinctrl_uart5>;
1651 +       status = "okay";
1652 +};
1653 +
1654 +&usbotg {
1655 +       vbus-supply = <&reg_usb_otg_vbus>;
1656 +       pinctrl-names = "default";
1657 +       pinctrl-0 = <&pinctrl_usbotg>;
1658 +       disable-over-current;
1659 +       status = "okay";
1660 +};
1661 +
1662 +&usbh1 {
1663 +       status = "okay";
1664 +};
1665 +
1666 +&usdhc3 {
1667 +       pinctrl-names = "default";
1668 +       pinctrl-0 = <&pinctrl_usdhc3>;
1669 +       cd-gpios = <&gpio7 0 0>;
1670 +       vmmc-supply = <&reg_3p3v>;
1671 +       status = "okay";
1672 +};
1673 --- /dev/null
1674 +++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
1675 @@ -0,0 +1,553 @@
1676 +/*
1677 + * Copyright 2013 Gateworks Corporation
1678 + *
1679 + * The code contained herein is licensed under the GNU General Public
1680 + * License. You may obtain a copy of the GNU General Public License
1681 + * Version 2 or later at the following locations:
1682 + *
1683 + * http://www.opensource.org/licenses/gpl-license.html
1684 + * http://www.gnu.org/copyleft/gpl.html
1685 + */
1686 +
1687 +/ {
1688 +       /* these are used by bootloader for disabling nodes */
1689 +       aliases {
1690 +               can0 = &can1;
1691 +               ethernet0 = &fec;
1692 +               ethernet1 = &eth1;
1693 +               led0 = &led0;
1694 +               led1 = &led1;
1695 +               led2 = &led2;
1696 +               nand = &gpmi;
1697 +               sky2 = &eth1;
1698 +               ssi0 = &ssi1;
1699 +               usb0 = &usbh1;
1700 +               usb1 = &usbotg;
1701 +               usdhc2 = &usdhc3;
1702 +       };
1703 +
1704 +       chosen {
1705 +               bootargs = "console=ttymxc1,115200";
1706 +       };
1707 +
1708 +       leds {
1709 +               compatible = "gpio-leds";
1710 +
1711 +               led0: user1 {
1712 +                       label = "user1";
1713 +                       gpios = <&gpio4 6 0>; /* 102 -> MX6_PANLEDG */
1714 +                       default-state = "on";
1715 +                       linux,default-trigger = "heartbeat";
1716 +               };
1717 +
1718 +               led1: user2 {
1719 +                       label = "user2";
1720 +                       gpios = <&gpio4 7 0>; /* 103 -> MX6_PANLEDR */
1721 +                       default-state = "off";
1722 +               };
1723 +
1724 +               led2: user3 {
1725 +                       label = "user3";
1726 +                       gpios = <&gpio4 15 1>; /* 111 -> MX6_LOCLED# */
1727 +                       default-state = "off";
1728 +               };
1729 +       };
1730 +
1731 +       memory {
1732 +               reg = <0x10000000 0x40000000>;
1733 +       };
1734 +
1735 +       pps {
1736 +               compatible = "pps-gpio";
1737 +               gpios = <&gpio1 26 0>;
1738 +               status = "okay";
1739 +       };
1740 +
1741 +       regulators {
1742 +               compatible = "simple-bus";
1743 +               #address-cells = <1>;
1744 +               #size-cells = <0>;
1745 +
1746 +               reg_1p0v: regulator@0 {
1747 +                       compatible = "regulator-fixed";
1748 +                       reg = <0>;
1749 +                       regulator-name = "1P0V";
1750 +                       regulator-min-microvolt = <1000000>;
1751 +                       regulator-max-microvolt = <1000000>;
1752 +                       regulator-always-on;
1753 +               };
1754 +
1755 +               /* remove when pmic 1p8 regulator available */
1756 +               reg_1p8v: regulator@1 {
1757 +                       compatible = "regulator-fixed";
1758 +                       reg = <1>;
1759 +                       regulator-name = "1P8V";
1760 +                       regulator-min-microvolt = <1800000>;
1761 +                       regulator-max-microvolt = <1800000>;
1762 +                       regulator-always-on;
1763 +               };
1764 +
1765 +               reg_3p3v: regulator@2 {
1766 +                       compatible = "regulator-fixed";
1767 +                       reg = <2>;
1768 +                       regulator-name = "3P3V";
1769 +                       regulator-min-microvolt = <3300000>;
1770 +                       regulator-max-microvolt = <3300000>;
1771 +                       regulator-always-on;
1772 +               };
1773 +
1774 +               reg_usb_h1_vbus: regulator@3 {
1775 +                       compatible = "regulator-fixed";
1776 +                       reg = <3>;
1777 +                       regulator-name = "usb_h1_vbus";
1778 +                       regulator-min-microvolt = <5000000>;
1779 +                       regulator-max-microvolt = <5000000>;
1780 +                       regulator-always-on;
1781 +               };
1782 +
1783 +               reg_usb_otg_vbus: regulator@4 {
1784 +                       compatible = "regulator-fixed";
1785 +                       reg = <4>;
1786 +                       regulator-name = "usb_otg_vbus";
1787 +                       regulator-min-microvolt = <5000000>;
1788 +                       regulator-max-microvolt = <5000000>;
1789 +                       gpio = <&gpio3 22 0>;
1790 +                       enable-active-high;
1791 +               };
1792 +       };
1793 +
1794 +       sound {
1795 +               compatible = "fsl,imx6q-sabrelite-sgtl5000",
1796 +                            "fsl,imx-audio-sgtl5000";
1797 +               model = "imx6q-sabrelite-sgtl5000";
1798 +               ssi-controller = <&ssi1>;
1799 +               audio-codec = <&codec>;
1800 +               audio-routing =
1801 +                       "MIC_IN", "Mic Jack",
1802 +                       "Mic Jack", "Mic Bias",
1803 +                       "Headphone Jack", "HP_OUT";
1804 +               mux-int-port = <1>;
1805 +               mux-ext-port = <4>;
1806 +       };
1807 +};
1808 +
1809 +&audmux {
1810 +       pinctrl-names = "default";
1811 +       pinctrl-0 = <&pinctrl_audmux>;
1812 +       status = "okay";
1813 +};
1814 +
1815 +&can1 {
1816 +       pinctrl-names = "default";
1817 +       pinctrl-0 = <&pinctrl_flexcan1>;
1818 +       status = "okay";
1819 +};
1820 +
1821 +&fec {
1822 +       pinctrl-names = "default";
1823 +       pinctrl-0 = <&pinctrl_enet>;
1824 +       phy-mode = "rgmii";
1825 +       phy-reset-gpios = <&gpio1 30 0>;
1826 +       status = "okay";
1827 +};
1828 +
1829 +&gpmi {
1830 +       pinctrl-names = "default";
1831 +       pinctrl-0 = <&pinctrl_gpmi_nand>;
1832 +       status = "okay";
1833 +};
1834 +
1835 +&i2c1 {
1836 +       clock-frequency = <100000>;
1837 +       pinctrl-names = "default";
1838 +       pinctrl-0 = <&pinctrl_i2c1>;
1839 +       status = "okay";
1840 +
1841 +       eeprom1: eeprom@50 {
1842 +               compatible = "atmel,24c02";
1843 +               reg = <0x50>;
1844 +               pagesize = <16>;
1845 +       };
1846 +
1847 +       eeprom2: eeprom@51 {
1848 +               compatible = "atmel,24c02";
1849 +               reg = <0x51>;
1850 +               pagesize = <16>;
1851 +       };
1852 +
1853 +       eeprom3: eeprom@52 {
1854 +               compatible = "atmel,24c02";
1855 +               reg = <0x52>;
1856 +               pagesize = <16>;
1857 +       };
1858 +
1859 +       eeprom4: eeprom@53 {
1860 +               compatible = "atmel,24c02";
1861 +               reg = <0x53>;
1862 +               pagesize = <16>;
1863 +       };
1864 +
1865 +       gpio: pca9555@23 {
1866 +               compatible = "nxp,pca9555";
1867 +               reg = <0x23>;
1868 +               gpio-controller;
1869 +               #gpio-cells = <2>;
1870 +       };
1871 +
1872 +       hwmon: gsc@29 {
1873 +               compatible = "gw,gsp";
1874 +               reg = <0x29>;
1875 +       };
1876 +
1877 +       rtc: ds1672@68 {
1878 +               compatible = "dallas,ds1672";
1879 +               reg = <0x68>;
1880 +       };
1881 +};
1882 +
1883 +&i2c2 {
1884 +       clock-frequency = <100000>;
1885 +       pinctrl-names = "default";
1886 +       pinctrl-0 = <&pinctrl_i2c2>;
1887 +       status = "okay";
1888 +
1889 +       pciclkgen: si53156@6b {
1890 +               compatible = "sil,si53156";
1891 +               reg = <0x6b>;
1892 +       };
1893 +
1894 +       pciswitch: pex8606@3f {
1895 +               compatible = "plx,pex8606";
1896 +               reg = <0x3f>;
1897 +       };
1898 +
1899 +       pmic: ltc3676@3c {
1900 +               compatible = "ltc,ltc3676";
1901 +               reg = <0x3c>;
1902 +
1903 +               regulators {
1904 +                       /* VDD_SOC */
1905 +                       sw1_reg: ltc3676__sw1 {
1906 +                               regulator-min-microvolt = <1175000>;
1907 +                               regulator-max-microvolt = <1175000>;
1908 +                               regulator-boot-on;
1909 +                               regulator-always-on;
1910 +                       };
1911 +
1912 +                       /* VDD_1P8 */
1913 +                       sw2_reg: ltc3676__sw2 {
1914 +                               regulator-min-microvolt = <1800000>;
1915 +                               regulator-max-microvolt = <1800000>;
1916 +                               regulator-boot-on;
1917 +                               regulator-always-on;
1918 +                       };
1919 +
1920 +                       /* VDD_ARM */
1921 +                       sw3_reg: ltc3676__sw3 {
1922 +                               regulator-min-microvolt = <1175000>;
1923 +                               regulator-max-microvolt = <1175000>;
1924 +                               regulator-boot-on;
1925 +                               regulator-always-on;
1926 +                       };
1927 +
1928 +                       /* VDD_DDR */
1929 +                       sw4_reg: ltc3676__sw4 {
1930 +                               regulator-min-microvolt = <1500000>;
1931 +                               regulator-max-microvolt = <1500000>;
1932 +                               regulator-boot-on;
1933 +                               regulator-always-on;
1934 +                       };
1935 +
1936 +                       /* VDD_2P5 */
1937 +                       ldo2_reg: ltc3676__ldo2 {
1938 +                               regulator-min-microvolt = <2500000>;
1939 +                               regulator-max-microvolt = <2500000>;
1940 +                               regulator-boot-on;
1941 +                               regulator-always-on;
1942 +                       };
1943 +
1944 +                       /* VDD_1P8 */
1945 +                       ldo3_reg: ltc3676__ldo3 {
1946 +                               regulator-min-microvolt = <1800000>;
1947 +                               regulator-max-microvolt = <1800000>;
1948 +                               regulator-boot-on;
1949 +                               regulator-always-on;
1950 +                       };
1951 +
1952 +                       /* VDD_HIGH */
1953 +                       ldo4_reg: ltc3676__ldo4 {
1954 +                               regulator-min-microvolt = <3000000>;
1955 +                               regulator-max-microvolt = <3000000>;
1956 +                       };
1957 +               };
1958 +       };
1959 +};
1960 +
1961 +&i2c3 {
1962 +       clock-frequency = <100000>;
1963 +       pinctrl-names = "default";
1964 +       pinctrl-0 = <&pinctrl_i2c3>;
1965 +       status = "okay";
1966 +
1967 +       accelerometer: fxos8700@1e {
1968 +               compatible = "fsl,fxos8700";
1969 +               reg = <0x1e>;
1970 +       };
1971 +
1972 +       codec: sgtl5000@0a {
1973 +               compatible = "fsl,sgtl5000";
1974 +               reg = <0x0a>;
1975 +               clocks = <&clks 201>;
1976 +               VDDA-supply = <&reg_1p8v>;
1977 +               VDDIO-supply = <&reg_3p3v>;
1978 +       };
1979 +
1980 +       hdmiin: adv7611@4c {
1981 +               compatible = "adi,adv7611";
1982 +               reg = <0x4c>;
1983 +       };
1984 +
1985 +       touchscreen: egalax_ts@04 {
1986 +               compatible = "eeti,egalax_ts";
1987 +               reg = <0x04>;
1988 +               interrupt-parent = <&gpio1>;
1989 +               interrupts = <11 2>; /* gpio1_11 active low */
1990 +               wakeup-gpios = <&gpio1 11 0>;
1991 +       };
1992 +
1993 +       videoout: adv7393@2a {
1994 +               compatible = "adi,adv7393";
1995 +               reg = <0x2a>;
1996 +       };
1997 +
1998 +       videoin: adv7180@20 {
1999 +               compatible = "adi,adv7180";
2000 +               reg = <0x20>;
2001 +       };
2002 +};
2003 +
2004 +&iomuxc {
2005 +       pinctrl-names = "default";
2006 +       pinctrl-0 = <&pinctrl_hog>;
2007 +
2008 +       imx6qdl-gw53xx {
2009 +               pinctrl_hog: hoggrp {
2010 +                       fsl,pins = <
2011 +                               MX6QDL_PAD_EIM_A19__GPIO2_IO19    0x80000000 /* PCIE6EXP_DIO0 */
2012 +                               MX6QDL_PAD_EIM_A20__GPIO2_IO18    0x80000000 /* PCIE6EXP_DIO1 */
2013 +                               MX6QDL_PAD_EIM_D22__GPIO3_IO22    0x80000000 /* OTG_PWR_EN */
2014 +                               MX6QDL_PAD_ENET_RXD0__GPIO1_IO27  0x80000000 /* GPS_SHDN */
2015 +                               MX6QDL_PAD_ENET_RXD1__GPIO1_IO26  0x80000000 /* GPS_PPS */
2016 +                               MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x80000000 /* PCIE IRQ */
2017 +                               MX6QDL_PAD_ENET_TXD1__GPIO1_IO29  0x80000000 /* PCIE RST */
2018 +                               MX6QDL_PAD_GPIO_0__CCM_CLKO1      0x000130b0 /* AUD4_MCK */
2019 +                               MX6QDL_PAD_GPIO_2__GPIO1_IO02     0x80000000 /* CAN_STBY */
2020 +                               MX6QDL_PAD_GPIO_8__GPIO1_IO08     0x80000000 /* PMIC_IRQ# */
2021 +                               MX6QDL_PAD_GPIO_9__GPIO1_IO09     0x80000000 /* HUB_RST# */
2022 +                               MX6QDL_PAD_GPIO_17__GPIO7_IO12    0x80000000 /* PCIE_WDIS# */
2023 +                               MX6QDL_PAD_GPIO_19__GPIO4_IO05    0x80000000 /* ACCEL_IRQ# */
2024 +                               MX6QDL_PAD_KEY_COL0__GPIO4_IO06   0x80000000 /* user1 led */
2025 +                               MX6QDL_PAD_KEY_COL4__GPIO4_IO14   0x80000000 /* USBOTG_OC# */
2026 +                               MX6QDL_PAD_KEY_ROW0__GPIO4_IO07   0x80000000 /* user2 led */
2027 +                               MX6QDL_PAD_KEY_ROW4__GPIO4_IO15   0x80000000 /* user3 led */
2028 +                               MX6QDL_PAD_SD2_CMD__GPIO1_IO11    0x80000000 /* TOUCH_IRQ# */
2029 +                               MX6QDL_PAD_SD3_DAT5__GPIO7_IO00   0x80000000 /* SD3_DET# */
2030 +                        >;
2031 +               };
2032 +
2033 +               pinctrl_audmux: audmuxgrp {
2034 +                       fsl,pins = <
2035 +                               MX6QDL_PAD_SD2_DAT0__AUD4_RXD           0x130b0
2036 +                               MX6QDL_PAD_SD2_DAT3__AUD4_TXC           0x130b0
2037 +                               MX6QDL_PAD_SD2_DAT2__AUD4_TXD           0x110b0
2038 +                               MX6QDL_PAD_SD2_DAT1__AUD4_TXFS          0x130b0
2039 +                       >;
2040 +               };
2041 +
2042 +               pinctrl_enet: enetgrp {
2043 +                       fsl,pins = <
2044 +                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
2045 +                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
2046 +                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
2047 +                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
2048 +                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
2049 +                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
2050 +                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
2051 +                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
2052 +                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
2053 +                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
2054 +                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
2055 +                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
2056 +                               MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
2057 +                               MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
2058 +                               MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
2059 +                               MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
2060 +                       >;
2061 +               };
2062 +
2063 +               pinctrl_flexcan1: flexcan1grp {
2064 +                       fsl,pins = <
2065 +                               MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX        0x80000000
2066 +                               MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX        0x80000000
2067 +                       >;
2068 +               };
2069 +
2070 +               pinctrl_gpmi_nand: gpminandgrp {
2071 +                       fsl,pins = <
2072 +                               MX6QDL_PAD_NANDF_CLE__NAND_CLE          0xb0b1
2073 +                               MX6QDL_PAD_NANDF_ALE__NAND_ALE          0xb0b1
2074 +                               MX6QDL_PAD_NANDF_WP_B__NAND_WP_B        0xb0b1
2075 +                               MX6QDL_PAD_NANDF_RB0__NAND_READY_B      0xb000
2076 +                               MX6QDL_PAD_NANDF_CS0__NAND_CE0_B        0xb0b1
2077 +                               MX6QDL_PAD_NANDF_CS1__NAND_CE1_B        0xb0b1
2078 +                               MX6QDL_PAD_SD4_CMD__NAND_RE_B           0xb0b1
2079 +                               MX6QDL_PAD_SD4_CLK__NAND_WE_B           0xb0b1
2080 +                               MX6QDL_PAD_NANDF_D0__NAND_DATA00        0xb0b1
2081 +                               MX6QDL_PAD_NANDF_D1__NAND_DATA01        0xb0b1
2082 +                               MX6QDL_PAD_NANDF_D2__NAND_DATA02        0xb0b1
2083 +                               MX6QDL_PAD_NANDF_D3__NAND_DATA03        0xb0b1
2084 +                               MX6QDL_PAD_NANDF_D4__NAND_DATA04        0xb0b1
2085 +                               MX6QDL_PAD_NANDF_D5__NAND_DATA05        0xb0b1
2086 +                               MX6QDL_PAD_NANDF_D6__NAND_DATA06        0xb0b1
2087 +                               MX6QDL_PAD_NANDF_D7__NAND_DATA07        0xb0b1
2088 +                       >;
2089 +               };
2090 +
2091 +               pinctrl_i2c1: i2c1grp {
2092 +                       fsl,pins = <
2093 +                               MX6QDL_PAD_EIM_D21__I2C1_SCL            0x4001b8b1
2094 +                               MX6QDL_PAD_EIM_D28__I2C1_SDA            0x4001b8b1
2095 +                       >;
2096 +               };
2097 +
2098 +               pinctrl_i2c2: i2c2grp {
2099 +                       fsl,pins = <
2100 +                               MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
2101 +                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
2102 +                       >;
2103 +               };
2104 +
2105 +               pinctrl_i2c3: i2c3grp {
2106 +                       fsl,pins = <
2107 +                               MX6QDL_PAD_GPIO_3__I2C3_SCL             0x4001b8b1
2108 +                               MX6QDL_PAD_GPIO_6__I2C3_SDA             0x4001b8b1
2109 +                       >;
2110 +               };
2111 +
2112 +               pinctrl_uart1: uart1grp {
2113 +                       fsl,pins = <
2114 +                               MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA      0x1b0b1
2115 +                               MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA      0x1b0b1
2116 +                       >;
2117 +               };
2118 +
2119 +               pinctrl_uart2: uart2grp {
2120 +                       fsl,pins = <
2121 +                               MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA      0x1b0b1
2122 +                               MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA      0x1b0b1
2123 +                       >;
2124 +               };
2125 +
2126 +               pinctrl_uart5: uart5grp {
2127 +                       fsl,pins = <
2128 +                               MX6QDL_PAD_KEY_COL1__UART5_TX_DATA      0x1b0b1
2129 +                               MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA      0x1b0b1
2130 +                       >;
2131 +               };
2132 +
2133 +               pinctrl_usbotg: usbotggrp {
2134 +                       fsl,pins = <
2135 +                               MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x17059
2136 +                       >;
2137 +               };
2138 +
2139 +               pinctrl_usdhc3: usdhc3grp {
2140 +                       fsl,pins = <
2141 +                               MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
2142 +                               MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
2143 +                               MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
2144 +                               MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
2145 +                               MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
2146 +                               MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
2147 +                       >;
2148 +               };
2149 +       };
2150 +};
2151 +
2152 +&ldb {
2153 +       status = "okay";
2154 +
2155 +       lvds-channel@1 {
2156 +               fsl,data-mapping = "spwg";
2157 +               fsl,data-width = <18>;
2158 +               status = "okay";
2159 +
2160 +               display-timings {
2161 +                       native-mode = <&timing0>;
2162 +                       timing0: hsd100pxn1 {
2163 +                               clock-frequency = <65000000>;
2164 +                               hactive = <1024>;
2165 +                               vactive = <768>;
2166 +                               hback-porch = <220>;
2167 +                               hfront-porch = <40>;
2168 +                               vback-porch = <21>;
2169 +                               vfront-porch = <7>;
2170 +                               hsync-len = <60>;
2171 +                               vsync-len = <10>;
2172 +                       };
2173 +               };
2174 +       };
2175 +};
2176 +
2177 +&pcie {
2178 +       reset-gpio = <&gpio1 29 0>;
2179 +       status = "okay";
2180 +
2181 +       eth1: sky2@8 { /* MAC/PHY on bus 8 */
2182 +               compatible = "marvell,sky2";
2183 +       };
2184 +};
2185 +
2186 +&ssi1 {
2187 +       fsl,mode = "i2s-slave";
2188 +       status = "okay";
2189 +};
2190 +
2191 +&uart1 {
2192 +       pinctrl-names = "default";
2193 +       pinctrl-0 = <&pinctrl_uart1>;
2194 +       status = "okay";
2195 +};
2196 +
2197 +&uart2 {
2198 +       pinctrl-names = "default";
2199 +       pinctrl-0 = <&pinctrl_uart2>;
2200 +       status = "okay";
2201 +};
2202 +
2203 +&uart5 {
2204 +       pinctrl-names = "default";
2205 +       pinctrl-0 = <&pinctrl_uart5>;
2206 +       status = "okay";
2207 +};
2208 +
2209 +&usbotg {
2210 +       vbus-supply = <&reg_usb_otg_vbus>;
2211 +       pinctrl-names = "default";
2212 +       pinctrl-0 = <&pinctrl_usbotg>;
2213 +       disable-over-current;
2214 +       status = "okay";
2215 +};
2216 +
2217 +&usbh1 {
2218 +       vbus-supply = <&reg_usb_h1_vbus>;
2219 +       status = "okay";
2220 +};
2221 +
2222 +&usdhc3 {
2223 +       pinctrl-names = "default";
2224 +       pinctrl-0 = <&pinctrl_usdhc3>;
2225 +       cd-gpios = <&gpio7 0 0>;
2226 +       vmmc-supply = <&reg_3p3v>;
2227 +       status = "okay";
2228 +};
2229 --- /dev/null
2230 +++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
2231 @@ -0,0 +1,580 @@
2232 +/*
2233 + * Copyright 2013 Gateworks Corporation
2234 + *
2235 + * The code contained herein is licensed under the GNU General Public
2236 + * License. You may obtain a copy of the GNU General Public License
2237 + * Version 2 or later at the following locations:
2238 + *
2239 + * http://www.opensource.org/licenses/gpl-license.html
2240 + * http://www.gnu.org/copyleft/gpl.html
2241 + */
2242 +
2243 +/ {
2244 +       /* these are used by bootloader for disabling nodes */
2245 +       aliases {
2246 +               can0 = &can1;
2247 +               ethernet0 = &fec;
2248 +               ethernet1 = &eth1;
2249 +               led0 = &led0;
2250 +               led1 = &led1;
2251 +               led2 = &led2;
2252 +               nand = &gpmi;
2253 +               sky2 = &eth1;
2254 +               ssi0 = &ssi1;
2255 +               usb0 = &usbh1;
2256 +               usb1 = &usbotg;
2257 +               usdhc2 = &usdhc3;
2258 +       };
2259 +
2260 +       chosen {
2261 +               bootargs = "console=ttymxc1,115200";
2262 +       };
2263 +
2264 +       leds {
2265 +               compatible = "gpio-leds";
2266 +
2267 +               led0: user1 {
2268 +                       label = "user1";
2269 +                       gpios = <&gpio4 6 0>; /* 102 -> MX6_PANLEDG */
2270 +                       default-state = "on";
2271 +                       linux,default-trigger = "heartbeat";
2272 +               };
2273 +
2274 +               led1: user2 {
2275 +                       label = "user2";
2276 +                       gpios = <&gpio4 7 0>; /* 103 -> MX6_PANLEDR */
2277 +                       default-state = "off";
2278 +               };
2279 +
2280 +               led2: user3 {
2281 +                       label = "user3";
2282 +                       gpios = <&gpio4 15 1>; /* 111 -> MX6_LOCLED# */
2283 +                       default-state = "off";
2284 +               };
2285 +       };
2286 +
2287 +       memory {
2288 +               reg = <0x10000000 0x40000000>;
2289 +       };
2290 +
2291 +       pps {
2292 +               compatible = "pps-gpio";
2293 +               gpios = <&gpio1 26 0>;
2294 +               status = "okay";
2295 +       };
2296 +
2297 +       regulators {
2298 +               compatible = "simple-bus";
2299 +               #address-cells = <1>;
2300 +               #size-cells = <0>;
2301 +
2302 +               reg_1p0v: regulator@0 {
2303 +                       compatible = "regulator-fixed";
2304 +                       reg = <0>;
2305 +                       regulator-name = "1P0V";
2306 +                       regulator-min-microvolt = <1000000>;
2307 +                       regulator-max-microvolt = <1000000>;
2308 +                       regulator-always-on;
2309 +               };
2310 +
2311 +               reg_3p3v: regulator@1 {
2312 +                       compatible = "regulator-fixed";
2313 +                       reg = <1>;
2314 +                       regulator-name = "3P3V";
2315 +                       regulator-min-microvolt = <3300000>;
2316 +                       regulator-max-microvolt = <3300000>;
2317 +                       regulator-always-on;
2318 +               };
2319 +
2320 +               reg_usb_h1_vbus: regulator@2 {
2321 +                       compatible = "regulator-fixed";
2322 +                       reg = <2>;
2323 +                       regulator-name = "usb_h1_vbus";
2324 +                       regulator-min-microvolt = <5000000>;
2325 +                       regulator-max-microvolt = <5000000>;
2326 +                       regulator-always-on;
2327 +               };
2328 +
2329 +               reg_usb_otg_vbus: regulator@3 {
2330 +                       compatible = "regulator-fixed";
2331 +                       reg = <3>;
2332 +                       regulator-name = "usb_otg_vbus";
2333 +                       regulator-min-microvolt = <5000000>;
2334 +                       regulator-max-microvolt = <5000000>;
2335 +                       gpio = <&gpio3 22 0>;
2336 +                       enable-active-high;
2337 +               };
2338 +       };
2339 +
2340 +       sound {
2341 +               compatible = "fsl,imx6q-sabrelite-sgtl5000",
2342 +                            "fsl,imx-audio-sgtl5000";
2343 +               model = "imx6q-sabrelite-sgtl5000";
2344 +               ssi-controller = <&ssi1>;
2345 +               audio-codec = <&codec>;
2346 +               audio-routing =
2347 +                       "MIC_IN", "Mic Jack",
2348 +                       "Mic Jack", "Mic Bias",
2349 +                       "Headphone Jack", "HP_OUT";
2350 +               mux-int-port = <1>;
2351 +               mux-ext-port = <4>;
2352 +       };
2353 +};
2354 +
2355 +&audmux {
2356 +       pinctrl-names = "default";
2357 +       pinctrl-0 = <&pinctrl_audmux>; /* AUD4<->sgtl5000 */
2358 +       status = "okay";
2359 +};
2360 +
2361 +&can1 {
2362 +       pinctrl-names = "default";
2363 +       pinctrl-0 = <&pinctrl_flexcan1>;
2364 +       status = "okay";
2365 +};
2366 +
2367 +&fec {
2368 +       pinctrl-names = "default";
2369 +       pinctrl-0 = <&pinctrl_enet>;
2370 +       phy-mode = "rgmii";
2371 +       phy-reset-gpios = <&gpio1 30 0>;
2372 +       status = "okay";
2373 +};
2374 +
2375 +&gpmi {
2376 +       pinctrl-names = "default";
2377 +       pinctrl-0 = <&pinctrl_gpmi_nand>;
2378 +       status = "okay";
2379 +};
2380 +
2381 +&i2c1 {
2382 +       clock-frequency = <100000>;
2383 +       pinctrl-names = "default";
2384 +       pinctrl-0 = <&pinctrl_i2c1>;
2385 +       status = "okay";
2386 +
2387 +       eeprom1: eeprom@50 {
2388 +               compatible = "atmel,24c02";
2389 +               reg = <0x50>;
2390 +               pagesize = <16>;
2391 +       };
2392 +
2393 +       eeprom2: eeprom@51 {
2394 +               compatible = "atmel,24c02";
2395 +               reg = <0x51>;
2396 +               pagesize = <16>;
2397 +       };
2398 +
2399 +       eeprom3: eeprom@52 {
2400 +               compatible = "atmel,24c02";
2401 +               reg = <0x52>;
2402 +               pagesize = <16>;
2403 +       };
2404 +
2405 +       eeprom4: eeprom@53 {
2406 +               compatible = "atmel,24c02";
2407 +               reg = <0x53>;
2408 +               pagesize = <16>;
2409 +       };
2410 +
2411 +       gpio: pca9555@23 {
2412 +               compatible = "nxp,pca9555";
2413 +               reg = <0x23>;
2414 +               gpio-controller;
2415 +               #gpio-cells = <2>;
2416 +       };
2417 +
2418 +       hwmon: gsc@29 {
2419 +               compatible = "gw,gsp";
2420 +               reg = <0x29>;
2421 +       };
2422 +
2423 +       rtc: ds1672@68 {
2424 +               compatible = "dallas,ds1672";
2425 +               reg = <0x68>;
2426 +       };
2427 +};
2428 +
2429 +&i2c2 {
2430 +       clock-frequency = <100000>;
2431 +       pinctrl-names = "default";
2432 +       pinctrl-0 = <&pinctrl_i2c2>;
2433 +       status = "okay";
2434 +
2435 +       pmic: pfuze100@08 {
2436 +               compatible = "fsl,pfuze100";
2437 +               reg = <0x08>;
2438 +
2439 +               regulators {
2440 +                       sw1a_reg: sw1ab {
2441 +                               regulator-min-microvolt = <300000>;
2442 +                               regulator-max-microvolt = <1875000>;
2443 +                               regulator-boot-on;
2444 +                               regulator-always-on;
2445 +                               regulator-ramp-delay = <6250>;
2446 +                       };
2447 +
2448 +                       sw1c_reg: sw1c {
2449 +                               regulator-min-microvolt = <300000>;
2450 +                               regulator-max-microvolt = <1875000>;
2451 +                               regulator-boot-on;
2452 +                               regulator-always-on;
2453 +                               regulator-ramp-delay = <6250>;
2454 +                       };
2455 +
2456 +                       sw2_reg: sw2 {
2457 +                               regulator-min-microvolt = <800000>;
2458 +                               regulator-max-microvolt = <3950000>;
2459 +                               regulator-boot-on;
2460 +                               regulator-always-on;
2461 +                       };
2462 +
2463 +                       sw3a_reg: sw3a {
2464 +                               regulator-min-microvolt = <400000>;
2465 +                               regulator-max-microvolt = <1975000>;
2466 +                               regulator-boot-on;
2467 +                               regulator-always-on;
2468 +                       };
2469 +
2470 +                       sw3b_reg: sw3b {
2471 +                               regulator-min-microvolt = <400000>;
2472 +                               regulator-max-microvolt = <1975000>;
2473 +                               regulator-boot-on;
2474 +                               regulator-always-on;
2475 +                       };
2476 +
2477 +                       sw4_reg: sw4 {
2478 +                               regulator-min-microvolt = <800000>;
2479 +                               regulator-max-microvolt = <3300000>;
2480 +                       };
2481 +
2482 +                       swbst_reg: swbst {
2483 +                               regulator-min-microvolt = <5000000>;
2484 +                               regulator-max-microvolt = <5150000>;
2485 +                       };
2486 +
2487 +                       snvs_reg: vsnvs {
2488 +                               regulator-min-microvolt = <1000000>;
2489 +                               regulator-max-microvolt = <3000000>;
2490 +                               regulator-boot-on;
2491 +                               regulator-always-on;
2492 +                       };
2493 +
2494 +                       vref_reg: vrefddr {
2495 +                               regulator-boot-on;
2496 +                               regulator-always-on;
2497 +                       };
2498 +
2499 +                       vgen1_reg: vgen1 {
2500 +                               regulator-min-microvolt = <800000>;
2501 +                               regulator-max-microvolt = <1550000>;
2502 +                       };
2503 +
2504 +                       vgen2_reg: vgen2 {
2505 +                               regulator-min-microvolt = <800000>;
2506 +                               regulator-max-microvolt = <1550000>;
2507 +                       };
2508 +
2509 +                       vgen3_reg: vgen3 {
2510 +                               regulator-min-microvolt = <1800000>;
2511 +                               regulator-max-microvolt = <3300000>;
2512 +                       };
2513 +
2514 +                       vgen4_reg: vgen4 {
2515 +                               regulator-min-microvolt = <1800000>;
2516 +                               regulator-max-microvolt = <3300000>;
2517 +                               regulator-always-on;
2518 +                       };
2519 +
2520 +                       vgen5_reg: vgen5 {
2521 +                               regulator-min-microvolt = <1800000>;
2522 +                               regulator-max-microvolt = <3300000>;
2523 +                               regulator-always-on;
2524 +                       };
2525 +
2526 +                       vgen6_reg: vgen6 {
2527 +                               regulator-min-microvolt = <1800000>;
2528 +                               regulator-max-microvolt = <3300000>;
2529 +                               regulator-always-on;
2530 +                       };
2531 +               };
2532 +       };
2533 +
2534 +       pciswitch: pex8609@3f {
2535 +               compatible = "plx,pex8609";
2536 +               reg = <0x3f>;
2537 +       };
2538 +
2539 +       pciclkgen: si52147@6b {
2540 +               compatible = "sil,si52147";
2541 +               reg = <0x6b>;
2542 +       };
2543 +};
2544 +
2545 +&i2c3 {
2546 +       clock-frequency = <100000>;
2547 +       pinctrl-names = "default";
2548 +       pinctrl-0 = <&pinctrl_i2c3>;
2549 +       status = "okay";
2550 +
2551 +       accelerometer: fxos8700@1e {
2552 +               compatible = "fsl,fxos8700";
2553 +               reg = <0x1e>;
2554 +       };
2555 +
2556 +       codec: sgtl5000@0a {
2557 +               compatible = "fsl,sgtl5000";
2558 +               reg = <0x0a>;
2559 +               clocks = <&clks 201>;
2560 +               VDDA-supply = <&sw4_reg>;
2561 +               VDDIO-supply = <&reg_3p3v>;
2562 +       };
2563 +
2564 +       hdmiin: adv7611@4c {
2565 +               compatible = "adi,adv7611";
2566 +               reg = <0x4c>;
2567 +       };
2568 +
2569 +       touchscreen: egalax_ts@04 {
2570 +               compatible = "eeti,egalax_ts";
2571 +               reg = <0x04>;
2572 +               interrupt-parent = <&gpio7>;
2573 +               interrupts = <12 2>; /* gpio7_12 active low */
2574 +               wakeup-gpios = <&gpio7 12 0>;
2575 +       };
2576 +
2577 +       videoout: adv7393@2a {
2578 +               compatible = "adi,adv7393";
2579 +               reg = <0x2a>;
2580 +       };
2581 +
2582 +       videoin: adv7180@20 {
2583 +               compatible = "adi,adv7180";
2584 +               reg = <0x20>;
2585 +       };
2586 +};
2587 +
2588 +&iomuxc {
2589 +       pinctrl-names = "default";
2590 +       pinctrl-0 = <&pinctrl_hog>;
2591 +
2592 +       imx6qdl-gw54xx {
2593 +               pinctrl_hog: hoggrp {
2594 +                       fsl,pins = <
2595 +                               MX6QDL_PAD_EIM_D22__GPIO3_IO22    0x80000000 /* OTG_PWR_EN */
2596 +                               MX6QDL_PAD_EIM_D19__GPIO3_IO19    0x80000000 /* SPINOR_CS0# */
2597 +                               MX6QDL_PAD_ENET_RXD1__GPIO1_IO26  0x80000000 /* GPS_PPS */
2598 +                               MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x80000000 /* PCIE IRQ */
2599 +                               MX6QDL_PAD_ENET_TXD1__GPIO1_IO29  0x80000000 /* PCIE RST */
2600 +                               MX6QDL_PAD_GPIO_0__CCM_CLKO1      0x000130b0 /* AUD4_MCK */
2601 +                               MX6QDL_PAD_GPIO_2__GPIO1_IO02     0x80000000 /* CAN_STBY */
2602 +                               MX6QDL_PAD_GPIO_17__GPIO7_IO12    0x80000000 /* TOUCH_IRQ# */
2603 +                               MX6QDL_PAD_KEY_COL0__GPIO4_IO06   0x80000000 /* user1 led */
2604 +                               MX6QDL_PAD_KEY_ROW0__GPIO4_IO07   0x80000000 /* user2 led */
2605 +                               MX6QDL_PAD_KEY_ROW4__GPIO4_IO15   0x80000000 /* user3 led */
2606 +                               MX6QDL_PAD_SD1_DAT0__GPIO1_IO16   0x80000000 /* USBHUB_RST# */
2607 +                               MX6QDL_PAD_SD1_DAT3__GPIO1_IO21   0x80000000 /* MIPI_DIO */
2608 +                        >;
2609 +               };
2610 +
2611 +               pinctrl_audmux: audmuxgrp {
2612 +                       fsl,pins = <
2613 +                               MX6QDL_PAD_SD2_DAT0__AUD4_RXD           0x130b0
2614 +                               MX6QDL_PAD_SD2_DAT3__AUD4_TXC           0x130b0
2615 +                               MX6QDL_PAD_SD2_DAT2__AUD4_TXD           0x110b0
2616 +                               MX6QDL_PAD_SD2_DAT1__AUD4_TXFS          0x130b0
2617 +                       >;
2618 +               };
2619 +
2620 +               pinctrl_enet: enetgrp {
2621 +                       fsl,pins = <
2622 +                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
2623 +                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
2624 +                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
2625 +                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
2626 +                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
2627 +                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
2628 +                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
2629 +                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
2630 +                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
2631 +                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
2632 +                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
2633 +                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
2634 +                               MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
2635 +                               MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
2636 +                               MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
2637 +                               MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
2638 +                       >;
2639 +               };
2640 +
2641 +               pinctrl_flexcan1: flexcan1grp {
2642 +                       fsl,pins = <
2643 +                               MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX        0x80000000
2644 +                               MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX        0x80000000
2645 +                       >;
2646 +               };
2647 +
2648 +               pinctrl_gpmi_nand: gpminandgrp {
2649 +                       fsl,pins = <
2650 +                               MX6QDL_PAD_NANDF_CLE__NAND_CLE          0xb0b1
2651 +                               MX6QDL_PAD_NANDF_ALE__NAND_ALE          0xb0b1
2652 +                               MX6QDL_PAD_NANDF_WP_B__NAND_WP_B        0xb0b1
2653 +                               MX6QDL_PAD_NANDF_RB0__NAND_READY_B      0xb000
2654 +                               MX6QDL_PAD_NANDF_CS0__NAND_CE0_B        0xb0b1
2655 +                               MX6QDL_PAD_NANDF_CS1__NAND_CE1_B        0xb0b1
2656 +                               MX6QDL_PAD_SD4_CMD__NAND_RE_B           0xb0b1
2657 +                               MX6QDL_PAD_SD4_CLK__NAND_WE_B           0xb0b1
2658 +                               MX6QDL_PAD_NANDF_D0__NAND_DATA00        0xb0b1
2659 +                               MX6QDL_PAD_NANDF_D1__NAND_DATA01        0xb0b1
2660 +                               MX6QDL_PAD_NANDF_D2__NAND_DATA02        0xb0b1
2661 +                               MX6QDL_PAD_NANDF_D3__NAND_DATA03        0xb0b1
2662 +                               MX6QDL_PAD_NANDF_D4__NAND_DATA04        0xb0b1
2663 +                               MX6QDL_PAD_NANDF_D5__NAND_DATA05        0xb0b1
2664 +                               MX6QDL_PAD_NANDF_D6__NAND_DATA06        0xb0b1
2665 +                               MX6QDL_PAD_NANDF_D7__NAND_DATA07        0xb0b1
2666 +                       >;
2667 +               };
2668 +
2669 +               pinctrl_i2c1: i2c1grp {
2670 +                       fsl,pins = <
2671 +                               MX6QDL_PAD_EIM_D21__I2C1_SCL            0x4001b8b1
2672 +                               MX6QDL_PAD_EIM_D28__I2C1_SDA            0x4001b8b1
2673 +                       >;
2674 +               };
2675 +
2676 +               pinctrl_i2c2: i2c2grp {
2677 +                       fsl,pins = <
2678 +                               MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
2679 +                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
2680 +                       >;
2681 +               };
2682 +
2683 +               pinctrl_i2c3: i2c3grp {
2684 +                       fsl,pins = <
2685 +                               MX6QDL_PAD_GPIO_3__I2C3_SCL             0x4001b8b1
2686 +                               MX6QDL_PAD_GPIO_6__I2C3_SDA             0x4001b8b1
2687 +                       >;
2688 +               };
2689 +
2690 +               pinctrl_uart1: uart1grp {
2691 +                       fsl,pins = <
2692 +                               MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA      0x1b0b1
2693 +                               MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA      0x1b0b1
2694 +                       >;
2695 +               };
2696 +
2697 +               pinctrl_uart2: uart2grp {
2698 +                       fsl,pins = <
2699 +                               MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA      0x1b0b1
2700 +                               MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA      0x1b0b1
2701 +                       >;
2702 +               };
2703 +
2704 +               pinctrl_uart5: uart5grp {
2705 +                       fsl,pins = <
2706 +                               MX6QDL_PAD_KEY_COL1__UART5_TX_DATA      0x1b0b1
2707 +                               MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA      0x1b0b1
2708 +                       >;
2709 +               };
2710 +
2711 +               pinctrl_usbotg: usbotggrp {
2712 +                       fsl,pins = <
2713 +                               MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x17059
2714 +                       >;
2715 +               };
2716 +
2717 +               pinctrl_usdhc3: usdhc3grp {
2718 +                       fsl,pins = <
2719 +                               MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
2720 +                               MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
2721 +                               MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
2722 +                               MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
2723 +                               MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
2724 +                               MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
2725 +                       >;
2726 +               };
2727 +       };
2728 +};
2729 +
2730 +&ldb {
2731 +       status = "okay";
2732 +
2733 +       lvds-channel@1 {
2734 +               fsl,data-mapping = "spwg";
2735 +               fsl,data-width = <18>;
2736 +               status = "okay";
2737 +
2738 +               display-timings {
2739 +                       native-mode = <&timing0>;
2740 +                       timing0: hsd100pxn1 {
2741 +                               clock-frequency = <65000000>;
2742 +                               hactive = <1024>;
2743 +                               vactive = <768>;
2744 +                               hback-porch = <220>;
2745 +                               hfront-porch = <40>;
2746 +                               vback-porch = <21>;
2747 +                               vfront-porch = <7>;
2748 +                               hsync-len = <60>;
2749 +                               vsync-len = <10>;
2750 +                       };
2751 +               };
2752 +       };
2753 +};
2754 +
2755 +&pcie {
2756 +       reset-gpio = <&gpio1 29 0>;
2757 +       status = "okay";
2758 +
2759 +       eth1: sky2@8 { /* MAC/PHY on bus 8 */
2760 +               compatible = "marvell,sky2";
2761 +       };
2762 +};
2763 +
2764 +&ssi1 {
2765 +       fsl,mode = "i2s-slave";
2766 +       status = "okay";
2767 +};
2768 +
2769 +&ssi2 {
2770 +       fsl,mode = "i2s-slave";
2771 +       status = "okay";
2772 +};
2773 +
2774 +&uart1 {
2775 +       pinctrl-names = "default";
2776 +       pinctrl-0 = <&pinctrl_uart1>;
2777 +       status = "okay";
2778 +};
2779 +
2780 +&uart2 {
2781 +       pinctrl-names = "default";
2782 +       pinctrl-0 = <&pinctrl_uart2>;
2783 +       status = "okay";
2784 +};
2785 +
2786 +&uart5 {
2787 +       pinctrl-names = "default";
2788 +       pinctrl-0 = <&pinctrl_uart5>;
2789 +       status = "okay";
2790 +};
2791 +
2792 +&usbotg {
2793 +       vbus-supply = <&reg_usb_otg_vbus>;
2794 +       pinctrl-names = "default";
2795 +       pinctrl-0 = <&pinctrl_usbotg>;
2796 +       disable-over-current;
2797 +       status = "okay";
2798 +};
2799 +
2800 +&usbh1 {
2801 +       vbus-supply = <&reg_usb_h1_vbus>;
2802 +       status = "okay";
2803 +};
2804 +
2805 +&usdhc3 {
2806 +       pinctrl-names = "default";
2807 +       pinctrl-0 = <&pinctrl_usdhc3>;
2808 +       cd-gpios = <&gpio7 0 0>;
2809 +       vmmc-supply = <&reg_3p3v>;
2810 +       status = "okay";
2811 +};