GNU Linux-libre 4.19.264-gnu1
[releases.git] / arch / arm / boot / dts / imx28-tx28.dts
1 /*
2  * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
3  * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
4  *
5  * This file is dual-licensed: you can use it either under the terms
6  * of the GPL or the X11 license, at your option. Note that this dual
7  * licensing only applies to this file, and not this project as a
8  * whole.
9  *
10  *  a) This file is free software; you can redistribute it and/or
11  *     modify it under the terms of the GNU General Public License
12  *     version 2 as published by the Free Software Foundation.
13  *
14  *     This file is distributed in the hope that it will be useful,
15  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *     GNU General Public License for more details.
18  *
19  * Or, alternatively,
20  *
21  *  b) Permission is hereby granted, free of charge, to any person
22  *     obtaining a copy of this software and associated documentation
23  *     files (the "Software"), to deal in the Software without
24  *     restriction, including without limitation the rights to use,
25  *     copy, modify, merge, publish, distribute, sublicense, and/or
26  *     sell copies of the Software, and to permit persons to whom the
27  *     Software is furnished to do so, subject to the following
28  *     conditions:
29  *
30  *     The above copyright notice and this permission notice shall be
31  *     included in all copies or substantial portions of the Software.
32  *
33  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40  *     OTHER DEALINGS IN THE SOFTWARE.
41  */
42
43 /dts-v1/;
44 #include "imx28.dtsi"
45 #include <dt-bindings/gpio/gpio.h>
46 #include <dt-bindings/interrupt-controller/irq.h>
47
48 / {
49         model = "Ka-Ro electronics TX28 module";
50         compatible = "karo,tx28", "fsl,imx28";
51
52         aliases {
53                 can0 = &can0;
54                 can1 = &can1;
55                 display = &display0;
56                 ds1339 = &ds1339;
57                 gpio5 = &gpio5;
58                 lcdif = &lcdif;
59                 lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
60                 lcdif_24bit_pins = &lcdif_24bit_pins_a;
61                 reg_can_xcvr = &reg_can_xcvr;
62                 spi_gpio = &spi_gpio;
63                 spi_mxs = &ssp3;
64                 stk5led = &user_led;
65                 usbotg = &usb0;
66         };
67
68         memory@40000000 {
69                 reg = <0x40000000 0>; /* will be filled in by U-Boot */
70         };
71
72         onewire {
73                 compatible = "w1-gpio";
74                 gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
75                 status = "disabled";
76         };
77
78         reg_usb0_vbus: regulator-usb0-vbus {
79                 compatible = "regulator-fixed";
80                 regulator-name = "usb0_vbus";
81                 regulator-min-microvolt = <5000000>;
82                 regulator-max-microvolt = <5000000>;
83                 gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
84                 enable-active-high;
85         };
86
87         reg_usb1_vbus: regulator-usb1-vbus {
88                 compatible = "regulator-fixed";
89                 regulator-name = "usb1_vbus";
90                 regulator-min-microvolt = <5000000>;
91                 regulator-max-microvolt = <5000000>;
92                 gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
93                 enable-active-high;
94         };
95
96         reg_2p5v: regulator-2p5v {
97                 compatible = "regulator-fixed";
98                 regulator-name = "2P5V";
99                 regulator-min-microvolt = <2500000>;
100                 regulator-max-microvolt = <2500000>;
101                 regulator-always-on;
102         };
103
104         reg_3p3v: regulator-3p3v {
105                 compatible = "regulator-fixed";
106                 regulator-name = "3P3V";
107                 regulator-min-microvolt = <3300000>;
108                 regulator-max-microvolt = <3300000>;
109                 regulator-always-on;
110         };
111
112         reg_can_xcvr: regulator-can-xcvr {
113                 compatible = "regulator-fixed";
114                 regulator-name = "CAN XCVR";
115                 regulator-min-microvolt = <3300000>;
116                 regulator-max-microvolt = <3300000>;
117                 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
118                 pinctrl-names = "default";
119                 pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
120         };
121
122         reg_lcd: regulator-lcd-power {
123                 compatible = "regulator-fixed";
124                 regulator-name = "LCD POWER";
125                 regulator-min-microvolt = <3300000>;
126                 regulator-max-microvolt = <3300000>;
127                 gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
128                 enable-active-high;
129         };
130
131         reg_lcd_reset: regulator-lcd-reset {
132                 compatible = "regulator-fixed";
133                 regulator-name = "LCD RESET";
134                 regulator-min-microvolt = <3300000>;
135                 regulator-max-microvolt = <3300000>;
136                 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
137                 startup-delay-us = <300000>;
138                 enable-active-high;
139                 regulator-always-on;
140                 regulator-boot-on;
141         };
142
143         mclk: clock-mclk {
144                 compatible = "fixed-clock";
145                 #clock-cells = <0>;
146                 clock-frequency = <26000000>;
147         };
148
149         sound {
150                 compatible = "fsl,imx28-tx28-sgtl5000",
151                              "fsl,mxs-audio-sgtl5000";
152                 model = "imx28-tx28-sgtl5000";
153                 saif-controllers = <&saif0 &saif1>;
154                 audio-codec = <&sgtl5000>;
155         };
156
157         leds {
158                 compatible = "gpio-leds";
159
160                 user_led: user {
161                         label = "Heartbeat";
162                         gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
163                         linux,default-trigger = "heartbeat";
164                 };
165         };
166
167         backlight {
168                 compatible = "pwm-backlight";
169                 pwms = <&pwm 0 500000>;
170                 /*
171                  * a silly way to create a 1:1 relationship between the
172                  * PWM value and the actual duty cycle
173                  */
174                 brightness-levels = < 0  1  2  3  4  5  6  7  8  9
175                                      10 11 12 13 14 15 16 17 18 19
176                                      20 21 22 23 24 25 26 27 28 29
177                                      30 31 32 33 34 35 36 37 38 39
178                                      40 41 42 43 44 45 46 47 48 49
179                                      50 51 52 53 54 55 56 57 58 59
180                                      60 61 62 63 64 65 66 67 68 69
181                                      70 71 72 73 74 75 76 77 78 79
182                                      80 81 82 83 84 85 86 87 88 89
183                                      90 91 92 93 94 95 96 97 98 99
184                                     100>;
185                 default-brightness-level = <50>;
186         };
187
188         matrix_keypad: matrix-keypad {
189                 compatible = "gpio-matrix-keypad";
190                 col-gpios = <
191                         &gpio5 0 GPIO_ACTIVE_HIGH
192                         &gpio5 1 GPIO_ACTIVE_HIGH
193                         &gpio5 2 GPIO_ACTIVE_HIGH
194                         &gpio5 3 GPIO_ACTIVE_HIGH
195                 >;
196                 row-gpios = <
197                         &gpio5 4 GPIO_ACTIVE_HIGH
198                         &gpio5 5 GPIO_ACTIVE_HIGH
199                         &gpio5 6 GPIO_ACTIVE_HIGH
200                         &gpio5 7 GPIO_ACTIVE_HIGH
201                 >;
202                 /* sample keymap */
203                 linux,keymap = <
204                         0x00000074 /* row 0, col 0, KEY_POWER */
205                         0x00010052 /* row 0, col 1, KEY_KP0 */
206                         0x0002004f /* row 0, col 2, KEY_KP1 */
207                         0x00030050 /* row 0, col 3, KEY_KP2 */
208                         0x01000051 /* row 1, col 0, KEY_KP3 */
209                         0x0101004b /* row 1, col 1, KEY_KP4 */
210                         0x0102004c /* row 1, col 2, KEY_KP5 */
211                         0x0103004d /* row 1, col 3, KEY_KP6 */
212                         0x02000047 /* row 2, col 0, KEY_KP7 */
213                         0x02010048 /* row 2, col 1, KEY_KP8 */
214                         0x02020049 /* row 2, col 2, KEY_KP9 */
215                 >;
216                 gpio-activelow;
217                 wakeup-source;
218                 debounce-delay-ms = <100>;
219                 col-scan-delay-us = <5000>;
220                 linux,no-autorepeat;
221         };
222
223         spi_gpio: spi-gpio {
224                 compatible = "spi-gpio";
225                 #address-cells = <1>;
226                 #size-cells = <0>;
227                 pinctrl-names = "default";
228                 pinctrl-0 = <&tx28_spi_gpio_pins>;
229
230                 gpio-sck = <&gpio2 24 GPIO_ACTIVE_HIGH>;
231                 gpio-mosi = <&gpio2 25 GPIO_ACTIVE_HIGH>;
232                 gpio-miso = <&gpio2 26 GPIO_ACTIVE_HIGH>;
233                 num-chipselects = <3>;
234                 cs-gpios = <
235                         &gpio2 27 GPIO_ACTIVE_LOW
236                         &gpio3 8 GPIO_ACTIVE_LOW
237                         &gpio3 9 GPIO_ACTIVE_LOW
238                 >;
239                 /* enable this and disable ssp3 below, if you need full duplex SPI transfer */
240                 status = "disabled";
241
242                 spi@0 {
243                         compatible = "spidev";
244                         reg = <0>;
245                         spi-max-frequency = <57600000>;
246                 };
247
248                 spi@1 {
249                         compatible = "spidev";
250                         reg = <1>;
251                         spi-max-frequency = <57600000>;
252                 };
253
254                 spi@2 {
255                         compatible = "spidev";
256                         reg = <2>;
257                         spi-max-frequency = <57600000>;
258                 };
259         };
260 };
261
262 /* 2nd TX-Std UART - (A)UART1  */
263 &auart1 {
264         pinctrl-names = "default";
265         pinctrl-0 = <&auart1_pins_a>;
266         status = "okay";
267 };
268
269 /* 3rd TX-Std UART - (A)UART3  */
270 &auart3 {
271         pinctrl-names = "default";
272         pinctrl-0 = <&auart3_pins_a>;
273         status = "okay";
274 };
275
276 &can0 {
277         pinctrl-names = "default";
278         pinctrl-0 = <&can0_pins_a>;
279         xceiver-supply = <&reg_can_xcvr>;
280         status = "okay";
281 };
282
283 &can1 {
284         pinctrl-names = "default";
285         pinctrl-0 = <&can1_pins_a>;
286         xceiver-supply = <&reg_can_xcvr>;
287         status = "okay";
288 };
289
290 &digctl {
291         status = "okay";
292 };
293
294 /* 1st TX-Std UART - (D)UART */
295 &duart {
296         pinctrl-names = "default";
297         pinctrl-0 = <&duart_4pins_a>;
298         status = "okay";
299 };
300
301 &gpmi {
302         pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
303         nand-on-flash-bbt;
304         status = "okay";
305 };
306
307 &i2c0 {
308         pinctrl-names = "default";
309         pinctrl-0 = <&i2c0_pins_a>;
310         clock-frequency = <400000>;
311         status = "okay";
312
313         sgtl5000: sgtl5000@a {
314                 compatible = "fsl,sgtl5000";
315                 reg = <0x0a>;
316                 VDDA-supply = <&reg_2p5v>;
317                 VDDIO-supply = <&reg_3p3v>;
318                 clocks = <&mclk>;
319         };
320
321         gpio5: pca953x@20 {
322                 compatible = "nxp,pca9554";
323                 reg = <0x20>;
324                 pinctrl-names = "default";
325                 pinctrl-0 = <&tx28_pca9554_pins>;
326                 interrupt-parent = <&gpio3>;
327                 interrupts = <28 IRQ_TYPE_NONE>;
328                 gpio-controller;
329                 #gpio-cells = <2>;
330                 interrupt-controller;
331                 #interrupt-cells = <2>;
332         };
333
334         polytouch: edt-ft5x06@38 {
335                 compatible = "edt,edt-ft5x06";
336                 reg = <0x38>;
337                 pinctrl-names = "default";
338                 pinctrl-0 = <&tx28_edt_ft5x06_pins>;
339                 interrupt-parent = <&gpio2>;
340                 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
341                 reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
342                 wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
343                 wakeup-source;
344         };
345
346         touchscreen: tsc2007@48 {
347                 compatible = "ti,tsc2007";
348                 reg = <0x48>;
349                 pinctrl-names = "default";
350                 pinctrl-0 = <&tx28_tsc2007_pins>;
351                 interrupt-parent = <&gpio3>;
352                 interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
353                 pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
354                 ti,x-plate-ohms = /bits/ 16 <660>;
355         };
356
357         ds1339: rtc@68 {
358                 compatible = "mxim,ds1339";
359                 reg = <0x68>;
360                 trickle-resistor-ohms = <250>;
361                 trickle-diode-disable;
362         };
363 };
364
365 &lcdif {
366         pinctrl-names = "default";
367         pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
368         lcd-supply = <&reg_lcd>;
369         display = <&display0>;
370         status = "okay";
371
372         display0: display0 {
373                 bits-per-pixel = <32>;
374                 bus-width = <24>;
375                 display-timings {
376                         native-mode = <&timing5>;
377                         timing0: timing0 {
378                                 panel-name = "VGA";
379                                 clock-frequency = <25175000>;
380                                 hactive = <640>;
381                                 vactive = <480>;
382                                 hback-porch = <48>;
383                                 hsync-len = <96>;
384                                 hfront-porch = <16>;
385                                 vback-porch = <33>;
386                                 vsync-len = <2>;
387                                 vfront-porch = <10>;
388                                 hsync-active = <0>;
389                                 vsync-active = <0>;
390                                 de-active = <1>;
391                                 pixelclk-active = <1>;
392                         };
393
394                         timing1: timing1 {
395                                 panel-name = "ETV570";
396                                 clock-frequency = <25175000>;
397                                 hactive = <640>;
398                                 vactive = <480>;
399                                 hback-porch = <114>;
400                                 hsync-len = <30>;
401                                 hfront-porch = <16>;
402                                 vback-porch = <32>;
403                                 vsync-len = <3>;
404                                 vfront-porch = <10>;
405                                 hsync-active = <0>;
406                                 vsync-active = <0>;
407                                 de-active = <1>;
408                                 pixelclk-active = <1>;
409                         };
410
411                         timing2: timing2 {
412                                 panel-name = "ET0350";
413                                 clock-frequency = <6500000>;
414                                 hactive = <320>;
415                                 vactive = <240>;
416                                 hback-porch = <34>;
417                                 hsync-len = <34>;
418                                 hfront-porch = <20>;
419                                 vback-porch = <15>;
420                                 vsync-len = <3>;
421                                 vfront-porch = <4>;
422                                 hsync-active = <0>;
423                                 vsync-active = <0>;
424                                 de-active = <1>;
425                                 pixelclk-active = <1>;
426                         };
427
428                         timing3: timing3 {
429                                 panel-name = "ET0430";
430                                 clock-frequency = <9000000>;
431                                 hactive = <480>;
432                                 vactive = <272>;
433                                 hback-porch = <2>;
434                                 hsync-len = <41>;
435                                 hfront-porch = <2>;
436                                 vback-porch = <2>;
437                                 vsync-len = <10>;
438                                 vfront-porch = <2>;
439                                 hsync-active = <0>;
440                                 vsync-active = <0>;
441                                 de-active = <1>;
442                                 pixelclk-active = <1>;
443                         };
444
445                         timing4: timing4 {
446                                 panel-name = "ET0500", "ET0700";
447                                 clock-frequency = <33260000>;
448                                 hactive = <800>;
449                                 vactive = <480>;
450                                 hback-porch = <88>;
451                                 hsync-len = <128>;
452                                 hfront-porch = <40>;
453                                 vback-porch = <33>;
454                                 vsync-len = <2>;
455                                 vfront-porch = <10>;
456                                 hsync-active = <0>;
457                                 vsync-active = <0>;
458                                 de-active = <1>;
459                                 pixelclk-active = <1>;
460                         };
461
462                         timing5: timing5 {
463                                 panel-name = "ETQ570";
464                                 clock-frequency = <6400000>;
465                                 hactive = <320>;
466                                 vactive = <240>;
467                                 hback-porch = <38>;
468                                 hsync-len = <30>;
469                                 hfront-porch = <30>;
470                                 vback-porch = <16>;
471                                 vsync-len = <3>;
472                                 vfront-porch = <4>;
473                                 hsync-active = <0>;
474                                 vsync-active = <0>;
475                                 de-active = <1>;
476                                 pixelclk-active = <1>;
477                         };
478                 };
479         };
480 };
481
482 &lradc {
483         fsl,lradc-touchscreen-wires = <4>;
484         status = "okay";
485 };
486
487 &mac0 {
488         phy-mode = "rmii";
489         pinctrl-names = "default", "gpio_mode";
490         pinctrl-0 = <&mac0_pins_a>;
491         pinctrl-1 = <&tx28_mac0_pins_gpio>;
492         status = "okay";
493 };
494
495 &mac1 {
496         phy-mode = "rmii";
497         pinctrl-names = "default";
498         pinctrl-0 = <&mac1_pins_a>;
499         /* not enabled by default */
500 };
501
502 &mxs_rtc {
503         status = "okay";
504 };
505
506 &ocotp {
507         status = "okay";
508 };
509
510 &pwm {
511         pinctrl-names = "default";
512         pinctrl-0 = <&pwm0_pins_a>;
513         status = "okay";
514 };
515
516 &pinctrl {
517         pinctrl-names = "default";
518         pinctrl-0 = <&hog_pins_a>;
519
520         hog_pins_a: hog@0 {
521                 reg = <0>;
522                 fsl,pinmux-ids = <
523                         MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
524                 >;
525                 fsl,drive-strength = <MXS_DRIVE_4mA>;
526                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
527                 fsl,pull-up = <MXS_PULL_DISABLE>;
528         };
529
530         tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins@0 {
531                 reg = <0>;
532                 fsl,pinmux-ids = <
533                         MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
534                         MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
535                         MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
536                 >;
537                 fsl,drive-strength = <MXS_DRIVE_4mA>;
538                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
539                 fsl,pull-up = <MXS_PULL_DISABLE>;
540         };
541
542         tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins@0 {
543                 reg = <0>;
544                 fsl,pinmux-ids = <
545                         MX28_PAD_LCD_D00__GPIO_1_0
546                 >;
547                 fsl,drive-strength = <MXS_DRIVE_4mA>;
548                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
549                 fsl,pull-up = <MXS_PULL_DISABLE>;
550         };
551
552         tx28_lcdif_23bit_pins: tx28-lcdif-23bit@0 {
553                 reg = <0>;
554                 fsl,pinmux-ids = <
555                         /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
556                         MX28_PAD_LCD_D01__LCD_D1
557                         MX28_PAD_LCD_D02__LCD_D2
558                         MX28_PAD_LCD_D03__LCD_D3
559                         MX28_PAD_LCD_D04__LCD_D4
560                         MX28_PAD_LCD_D05__LCD_D5
561                         MX28_PAD_LCD_D06__LCD_D6
562                         MX28_PAD_LCD_D07__LCD_D7
563                         MX28_PAD_LCD_D08__LCD_D8
564                         MX28_PAD_LCD_D09__LCD_D9
565                         MX28_PAD_LCD_D10__LCD_D10
566                         MX28_PAD_LCD_D11__LCD_D11
567                         MX28_PAD_LCD_D12__LCD_D12
568                         MX28_PAD_LCD_D13__LCD_D13
569                         MX28_PAD_LCD_D14__LCD_D14
570                         MX28_PAD_LCD_D15__LCD_D15
571                         MX28_PAD_LCD_D16__LCD_D16
572                         MX28_PAD_LCD_D17__LCD_D17
573                         MX28_PAD_LCD_D18__LCD_D18
574                         MX28_PAD_LCD_D19__LCD_D19
575                         MX28_PAD_LCD_D20__LCD_D20
576                         MX28_PAD_LCD_D21__LCD_D21
577                         MX28_PAD_LCD_D22__LCD_D22
578                         MX28_PAD_LCD_D23__LCD_D23
579                 >;
580                 fsl,drive-strength = <MXS_DRIVE_4mA>;
581                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
582                 fsl,pull-up = <MXS_PULL_DISABLE>;
583         };
584
585         tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl@0 {
586                 reg = <0>;
587                 fsl,pinmux-ids = <
588                         MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
589                         MX28_PAD_LCD_RESET__GPIO_3_30  /* Reset */
590                 >;
591                 fsl,drive-strength = <MXS_DRIVE_4mA>;
592                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
593                 fsl,pull-up = <MXS_PULL_DISABLE>;
594         };
595
596         tx28_mac0_pins_gpio: tx28-mac0-gpio-pins@0 {
597                 reg = <0>;
598                 fsl,pinmux-ids = <
599                         MX28_PAD_ENET0_MDC__GPIO_4_0
600                         MX28_PAD_ENET0_MDIO__GPIO_4_1
601                         MX28_PAD_ENET0_RX_EN__GPIO_4_2
602                         MX28_PAD_ENET0_RXD0__GPIO_4_3
603                         MX28_PAD_ENET0_RXD1__GPIO_4_4
604                         MX28_PAD_ENET0_TX_EN__GPIO_4_6
605                         MX28_PAD_ENET0_TXD0__GPIO_4_7
606                         MX28_PAD_ENET0_TXD1__GPIO_4_8
607                         MX28_PAD_ENET_CLK__GPIO_4_16
608                 >;
609                 fsl,drive-strength = <MXS_DRIVE_4mA>;
610                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
611                 fsl,pull-up = <MXS_PULL_DISABLE>;
612         };
613
614         tx28_pca9554_pins: tx28-pca9554-pins@0 {
615                 reg = <0>;
616                 fsl,pinmux-ids = <
617                         MX28_PAD_PWM3__GPIO_3_28
618                 >;
619                 fsl,drive-strength = <MXS_DRIVE_4mA>;
620                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
621                 fsl,pull-up = <MXS_PULL_DISABLE>;
622         };
623
624         tx28_spi_gpio_pins: spi-gpiogrp@0 {
625                 reg = <0>;
626                 fsl,pinmux-ids = <
627                         MX28_PAD_AUART2_RX__GPIO_3_8
628                         MX28_PAD_AUART2_TX__GPIO_3_9
629                         MX28_PAD_SSP3_SCK__GPIO_2_24
630                         MX28_PAD_SSP3_MOSI__GPIO_2_25
631                         MX28_PAD_SSP3_MISO__GPIO_2_26
632                         MX28_PAD_SSP3_SS0__GPIO_2_27
633                 >;
634                 fsl,drive-strength = <MXS_DRIVE_8mA>;
635                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
636                 fsl,pull-up = <MXS_PULL_DISABLE>;
637         };
638
639         tx28_tsc2007_pins: tx28-tsc2007-pins@0 {
640                 reg = <0>;
641                 fsl,pinmux-ids = <
642                         MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
643                 >;
644                 fsl,drive-strength = <MXS_DRIVE_4mA>;
645                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
646                 fsl,pull-up = <MXS_PULL_DISABLE>;
647         };
648
649
650         tx28_usbphy0_pins: tx28-usbphy0-pins@0 {
651                 reg = <0>;
652                 fsl,pinmux-ids = <
653                         MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
654                         MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
655                 >;
656                 fsl,drive-strength = <MXS_DRIVE_12mA>;
657                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
658                 fsl,pull-up = <MXS_PULL_DISABLE>;
659         };
660
661         tx28_usbphy1_pins: tx28-usbphy1-pins@0 {
662                 reg = <0>;
663                 fsl,pinmux-ids = <
664                         MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
665                         MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
666                 >;
667                 fsl,drive-strength = <MXS_DRIVE_12mA>;
668                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
669                 fsl,pull-up = <MXS_PULL_DISABLE>;
670         };
671 };
672
673 &saif0 {
674         pinctrl-names = "default";
675         pinctrl-0 = <&saif0_pins_b>;
676         fsl,saif-master;
677         status = "okay";
678 };
679
680 &saif1 {
681         pinctrl-names = "default";
682         pinctrl-0 = <&saif1_pins_a>;
683         status = "okay";
684 };
685
686 &ssp0 {
687         compatible = "fsl,imx28-mmc";
688         pinctrl-names = "default", "special";
689         pinctrl-0 = <&mmc0_4bit_pins_a
690                      &mmc0_cd_cfg
691                      &mmc0_sck_cfg>;
692         bus-width = <4>;
693         status = "okay";
694 };
695
696 &ssp3 {
697         compatible = "fsl,imx28-spi";
698         pinctrl-names = "default";
699         pinctrl-0 = <&spi3_pins_a>;
700         clock-frequency = <57600000>;
701         status = "okay";
702
703         spi@0 {
704                 compatible = "spidev";
705                 reg = <0>;
706                 spi-max-frequency = <57600000>;
707         };
708
709         spi@1 {
710                 compatible = "spidev";
711                 reg = <1>;
712                 spi-max-frequency = <57600000>;
713         };
714
715         spi@2 {
716                 compatible = "spidev";
717                 reg = <2>;
718                 spi-max-frequency = <57600000>;
719         };
720 };
721
722 &usb0 {
723         vbus-supply = <&reg_usb0_vbus>;
724         disable-over-current;
725         dr_mode = "peripheral";
726         status = "okay";
727 };
728
729 &usb1 {
730         vbus-supply = <&reg_usb1_vbus>;
731         disable-over-current;
732         dr_mode = "host";
733         status = "okay";
734 };
735
736 &usbphy0 {
737         pinctrl-names = "default";
738         pinctrl-0 = <&tx28_usbphy0_pins>;
739         phy_type = "utmi";
740         status = "okay";
741 };
742
743 &usbphy1 {
744         pinctrl-names = "default";
745         pinctrl-0 = <&tx28_usbphy1_pins>;
746         phy_type = "utmi";
747         status = "okay";
748 };