Merge branch 'pm-cpufreq'
[cascardo/linux.git] / arch / arm / boot / dts / imx6qdl-gw53xx.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                 pinctrl-names = "default";
41                 pinctrl-0 = <&pinctrl_gpio_leds>;
42
43                 led0: user1 {
44                         label = "user1";
45                         gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* MX6_PANLEDG */
46                         default-state = "on";
47                         linux,default-trigger = "heartbeat";
48                 };
49
50                 led1: user2 {
51                         label = "user2";
52                         gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>; /* MX6_PANLEDR */
53                         default-state = "off";
54                 };
55
56                 led2: user3 {
57                         label = "user3";
58                         gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; /* MX6_LOCLED# */
59                         default-state = "off";
60                 };
61         };
62
63         memory {
64                 reg = <0x10000000 0x40000000>;
65         };
66
67         pps {
68                 compatible = "pps-gpio";
69                 pinctrl-names = "default";
70                 pinctrl-0 = <&pinctrl_pps>;
71                 gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
72                 status = "okay";
73         };
74
75         regulators {
76                 compatible = "simple-bus";
77                 #address-cells = <1>;
78                 #size-cells = <0>;
79
80                 reg_1p0v: regulator@0 {
81                         compatible = "regulator-fixed";
82                         reg = <0>;
83                         regulator-name = "1P0V";
84                         regulator-min-microvolt = <1000000>;
85                         regulator-max-microvolt = <1000000>;
86                         regulator-always-on;
87                 };
88
89                 /* remove when pmic 1p8 regulator available */
90                 reg_1p8v: regulator@1 {
91                         compatible = "regulator-fixed";
92                         reg = <1>;
93                         regulator-name = "1P8V";
94                         regulator-min-microvolt = <1800000>;
95                         regulator-max-microvolt = <1800000>;
96                         regulator-always-on;
97                 };
98
99                 reg_3p3v: regulator@2 {
100                         compatible = "regulator-fixed";
101                         reg = <2>;
102                         regulator-name = "3P3V";
103                         regulator-min-microvolt = <3300000>;
104                         regulator-max-microvolt = <3300000>;
105                         regulator-always-on;
106                 };
107
108                 reg_usb_h1_vbus: regulator@3 {
109                         compatible = "regulator-fixed";
110                         reg = <3>;
111                         regulator-name = "usb_h1_vbus";
112                         regulator-min-microvolt = <5000000>;
113                         regulator-max-microvolt = <5000000>;
114                         regulator-always-on;
115                 };
116
117                 reg_usb_otg_vbus: regulator@4 {
118                         compatible = "regulator-fixed";
119                         reg = <4>;
120                         regulator-name = "usb_otg_vbus";
121                         regulator-min-microvolt = <5000000>;
122                         regulator-max-microvolt = <5000000>;
123                         gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
124                         enable-active-high;
125                 };
126         };
127
128         sound {
129                 compatible = "fsl,imx6q-ventana-sgtl5000",
130                              "fsl,imx-audio-sgtl5000";
131                 model = "sgtl5000-audio";
132                 ssi-controller = <&ssi1>;
133                 audio-codec = <&codec>;
134                 audio-routing =
135                         "MIC_IN", "Mic Jack",
136                         "Mic Jack", "Mic Bias",
137                         "Headphone Jack", "HP_OUT";
138                 mux-int-port = <1>;
139                 mux-ext-port = <4>;
140         };
141 };
142
143 &audmux {
144         pinctrl-names = "default";
145         pinctrl-0 = <&pinctrl_audmux>;
146         status = "okay";
147 };
148
149 &can1 {
150         pinctrl-names = "default";
151         pinctrl-0 = <&pinctrl_flexcan1>;
152         status = "okay";
153 };
154
155 &clks {
156         assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
157                           <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
158         assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
159                           <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
160 };
161
162 &fec {
163         pinctrl-names = "default";
164         pinctrl-0 = <&pinctrl_enet>;
165         phy-mode = "rgmii-id";
166         phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
167         status = "okay";
168 };
169
170 &gpmi {
171         pinctrl-names = "default";
172         pinctrl-0 = <&pinctrl_gpmi_nand>;
173         status = "okay";
174 };
175
176 &hdmi {
177         ddc-i2c-bus = <&i2c3>;
178         status = "okay";
179 };
180
181 &i2c1 {
182         clock-frequency = <100000>;
183         pinctrl-names = "default";
184         pinctrl-0 = <&pinctrl_i2c1>;
185         status = "okay";
186
187         eeprom1: eeprom@50 {
188                 compatible = "atmel,24c02";
189                 reg = <0x50>;
190                 pagesize = <16>;
191         };
192
193         eeprom2: eeprom@51 {
194                 compatible = "atmel,24c02";
195                 reg = <0x51>;
196                 pagesize = <16>;
197         };
198
199         eeprom3: eeprom@52 {
200                 compatible = "atmel,24c02";
201                 reg = <0x52>;
202                 pagesize = <16>;
203         };
204
205         eeprom4: eeprom@53 {
206                 compatible = "atmel,24c02";
207                 reg = <0x53>;
208                 pagesize = <16>;
209         };
210
211         gpio: pca9555@23 {
212                 compatible = "nxp,pca9555";
213                 reg = <0x23>;
214                 gpio-controller;
215                 #gpio-cells = <2>;
216         };
217
218         rtc: ds1672@68 {
219                 compatible = "dallas,ds1672";
220                 reg = <0x68>;
221         };
222 };
223
224 &i2c2 {
225         clock-frequency = <100000>;
226         pinctrl-names = "default";
227         pinctrl-0 = <&pinctrl_i2c2>;
228         status = "okay";
229 };
230
231 &i2c3 {
232         clock-frequency = <100000>;
233         pinctrl-names = "default";
234         pinctrl-0 = <&pinctrl_i2c3>;
235         status = "okay";
236
237         codec: sgtl5000@0a {
238                 compatible = "fsl,sgtl5000";
239                 reg = <0x0a>;
240                 clocks = <&clks IMX6QDL_CLK_CKO>;
241                 VDDA-supply = <&reg_1p8v>;
242                 VDDIO-supply = <&reg_3p3v>;
243         };
244
245         touchscreen: egalax_ts@04 {
246                 compatible = "eeti,egalax_ts";
247                 reg = <0x04>;
248                 interrupt-parent = <&gpio1>;
249                 interrupts = <11 2>;
250                 wakeup-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
251         };
252 };
253
254 &ldb {
255         status = "okay";
256
257         lvds-channel@0 {
258                 fsl,data-mapping = "spwg";
259                 fsl,data-width = <18>;
260                 status = "okay";
261
262                 display-timings {
263                         native-mode = <&timing0>;
264                         timing0: hsd100pxn1 {
265                                 clock-frequency = <65000000>;
266                                 hactive = <1024>;
267                                 vactive = <768>;
268                                 hback-porch = <220>;
269                                 hfront-porch = <40>;
270                                 vback-porch = <21>;
271                                 vfront-porch = <7>;
272                                 hsync-len = <60>;
273                                 vsync-len = <10>;
274                         };
275                 };
276         };
277 };
278
279 &pcie {
280         pinctrl-names = "default";
281         pinctrl-0 = <&pinctrl_pcie>;
282         reset-gpio = <&gpio1 29 GPIO_ACTIVE_LOW>;
283         status = "okay";
284
285         eth1: sky2@8 { /* MAC/PHY on bus 8 */
286                 compatible = "marvell,sky2";
287         };
288 };
289
290 &pwm2 {
291         pinctrl-names = "default";
292         pinctrl-0 = <&pinctrl_pwm2>; /* MX6_DIO1 */
293         status = "disabled";
294 };
295
296 &pwm3 {
297         pinctrl-names = "default";
298         pinctrl-0 = <&pinctrl_pwm3>; /* MX6_DIO2 */
299         status = "disabled";
300 };
301
302 &pwm4 {
303         pinctrl-names = "default";
304         pinctrl-0 = <&pinctrl_pwm4>;
305         status = "okay";
306 };
307
308 &ssi1 {
309         status = "okay";
310 };
311
312 &uart1 {
313         pinctrl-names = "default";
314         pinctrl-0 = <&pinctrl_uart1>;
315         uart-has-rtscts;
316         rts-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
317         status = "okay";
318 };
319
320 &uart2 {
321         pinctrl-names = "default";
322         pinctrl-0 = <&pinctrl_uart2>;
323         status = "okay";
324 };
325
326 &uart5 {
327         pinctrl-names = "default";
328         pinctrl-0 = <&pinctrl_uart5>;
329         status = "okay";
330 };
331
332 &usbotg {
333         vbus-supply = <&reg_usb_otg_vbus>;
334         pinctrl-names = "default";
335         pinctrl-0 = <&pinctrl_usbotg>;
336         disable-over-current;
337         status = "okay";
338 };
339
340 &usbh1 {
341         vbus-supply = <&reg_usb_h1_vbus>;
342         status = "okay";
343 };
344
345 &usdhc3 {
346         pinctrl-names = "default", "state_100mhz", "state_200mhz";
347         pinctrl-0 = <&pinctrl_usdhc3>;
348         pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
349         pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
350         cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
351         vmmc-supply = <&reg_3p3v>;
352         no-1-8-v; /* firmware will remove if board revision supports */
353         status = "okay";
354 };
355
356 &wdog1 {
357         pinctrl-names = "default";
358         pinctrl-0 = <&pinctrl_wdog>;
359         fsl,ext-reset-output;
360 };
361
362 &iomuxc {
363         imx6qdl-gw53xx {
364                 pinctrl_audmux: audmuxgrp {
365                         fsl,pins = <
366                                 MX6QDL_PAD_SD2_DAT0__AUD4_RXD           0x130b0
367                                 MX6QDL_PAD_SD2_DAT3__AUD4_TXC           0x130b0
368                                 MX6QDL_PAD_SD2_DAT2__AUD4_TXD           0x110b0
369                                 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS          0x130b0
370                                 MX6QDL_PAD_GPIO_0__CCM_CLKO1            0x130b0 /* AUD4_MCK */
371                         >;
372                 };
373
374                 pinctrl_enet: enetgrp {
375                         fsl,pins = <
376                                 MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
377                                 MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
378                                 MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
379                                 MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
380                                 MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
381                                 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
382                                 MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
383                                 MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
384                                 MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
385                                 MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
386                                 MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
387                                 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
388                                 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
389                                 MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
390                                 MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
391                                 MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
392                         >;
393                 };
394
395                 pinctrl_flexcan1: flexcan1grp {
396                         fsl,pins = <
397                                 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX        0x1b0b1
398                                 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX        0x1b0b1
399                                 MX6QDL_PAD_GPIO_2__GPIO1_IO02           0x4001b0b0 /* CAN_STBY */
400                         >;
401                 };
402
403                 pinctrl_gpio_leds: gpioledsgrp {
404                         fsl,pins = <
405                                 MX6QDL_PAD_KEY_COL0__GPIO4_IO06   0x1b0b0
406                                 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07   0x1b0b0
407                                 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15   0x1b0b0
408                         >;
409                 };
410
411                 pinctrl_gpmi_nand: gpminandgrp {
412                         fsl,pins = <
413                                 MX6QDL_PAD_NANDF_CLE__NAND_CLE          0xb0b1
414                                 MX6QDL_PAD_NANDF_ALE__NAND_ALE          0xb0b1
415                                 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B        0xb0b1
416                                 MX6QDL_PAD_NANDF_RB0__NAND_READY_B      0xb000
417                                 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B        0xb0b1
418                                 MX6QDL_PAD_SD4_CMD__NAND_RE_B           0xb0b1
419                                 MX6QDL_PAD_SD4_CLK__NAND_WE_B           0xb0b1
420                                 MX6QDL_PAD_NANDF_D0__NAND_DATA00        0xb0b1
421                                 MX6QDL_PAD_NANDF_D1__NAND_DATA01        0xb0b1
422                                 MX6QDL_PAD_NANDF_D2__NAND_DATA02        0xb0b1
423                                 MX6QDL_PAD_NANDF_D3__NAND_DATA03        0xb0b1
424                                 MX6QDL_PAD_NANDF_D4__NAND_DATA04        0xb0b1
425                                 MX6QDL_PAD_NANDF_D5__NAND_DATA05        0xb0b1
426                                 MX6QDL_PAD_NANDF_D6__NAND_DATA06        0xb0b1
427                                 MX6QDL_PAD_NANDF_D7__NAND_DATA07        0xb0b1
428                         >;
429                 };
430
431                 pinctrl_i2c1: i2c1grp {
432                         fsl,pins = <
433                                 MX6QDL_PAD_EIM_D21__I2C1_SCL            0x4001b8b1
434                                 MX6QDL_PAD_EIM_D28__I2C1_SDA            0x4001b8b1
435                         >;
436                 };
437
438                 pinctrl_i2c2: i2c2grp {
439                         fsl,pins = <
440                                 MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
441                                 MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
442                         >;
443                 };
444
445                 pinctrl_i2c3: i2c3grp {
446                         fsl,pins = <
447                                 MX6QDL_PAD_GPIO_3__I2C3_SCL             0x4001b8b1
448                                 MX6QDL_PAD_GPIO_6__I2C3_SDA             0x4001b8b1
449                         >;
450                 };
451
452                 pinctrl_pcie: pciegrp {
453                         fsl,pins = <
454                                 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0 /* PCIE IRQ */
455                                 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29  0x1b0b0 /* PCIE RST */
456                         >;
457                 };
458
459                 pinctrl_pps: ppsgrp {
460                         fsl,pins = <
461                                 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x1b0b1
462                         >;
463                 };
464
465                 pinctrl_pwm2: pwm2grp {
466                         fsl,pins = <
467                                 MX6QDL_PAD_SD1_DAT2__PWM2_OUT           0x1b0b1
468                         >;
469                 };
470
471                 pinctrl_pwm3: pwm3grp {
472                         fsl,pins = <
473                                 MX6QDL_PAD_SD1_DAT1__PWM3_OUT           0x1b0b1
474                         >;
475                 };
476
477                 pinctrl_pwm4: pwm4grp {
478                         fsl,pins = <
479                                 MX6QDL_PAD_SD1_CMD__PWM4_OUT            0x1b0b1
480                         >;
481                 };
482
483                 pinctrl_uart1: uart1grp {
484                         fsl,pins = <
485                                 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA      0x1b0b1
486                                 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA      0x1b0b1
487                                 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01         0x4001b0b1 /* TEN */
488                         >;
489                 };
490
491                 pinctrl_uart2: uart2grp {
492                         fsl,pins = <
493                                 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA      0x1b0b1
494                                 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA      0x1b0b1
495                         >;
496                 };
497
498                 pinctrl_uart5: uart5grp {
499                         fsl,pins = <
500                                 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA      0x1b0b1
501                                 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA      0x1b0b1
502                         >;
503                 };
504
505                 pinctrl_usbotg: usbotggrp {
506                         fsl,pins = <
507                                 MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x17059
508                                 MX6QDL_PAD_EIM_D22__GPIO3_IO22          0x1b0b0 /* PWR_EN */
509                                 MX6QDL_PAD_KEY_COL4__GPIO4_IO14         0x1b0b0 /* OC */
510                         >;
511                 };
512
513                 pinctrl_usdhc3: usdhc3grp {
514                         fsl,pins = <
515                                 MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
516                                 MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
517                                 MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
518                                 MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
519                                 MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
520                                 MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
521                                 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00         0x17059 /* CD */
522                                 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT       0x17059
523                         >;
524                 };
525
526                 pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
527                         fsl,pins = <
528                                 MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
529                                 MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
530                                 MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x170b9
531                                 MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x170b9
532                                 MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x170b9
533                                 MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x170b9
534                                 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00         0x170b9 /* CD */
535                                 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT       0x170b9
536                         >;
537                 };
538
539                 pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
540                         fsl,pins = <
541                                 MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
542                                 MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
543                                 MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x170f9
544                                 MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x170f9
545                                 MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x170f9
546                                 MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x170f9
547                                 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00         0x170f9 /* CD */
548                                 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT       0x170f9
549                         >;
550                 };
551
552                 pinctrl_wdog: wdoggrp {
553                         fsl,pins = <
554                                 MX6QDL_PAD_DISP0_DAT8__WDOG1_B          0x1b0b0
555                         >;
556                 };
557         };
558 };