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