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