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