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