Merge tag 'fuse-update-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/mszered...
[linux-2.6-microblaze.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 };
244
245 /* 2nd TX-Std UART - (A)UART1  */
246 &auart1 {
247         pinctrl-names = "default";
248         pinctrl-0 = <&auart1_pins_a>;
249         status = "okay";
250 };
251
252 /* 3rd TX-Std UART - (A)UART3  */
253 &auart3 {
254         pinctrl-names = "default";
255         pinctrl-0 = <&auart3_pins_a>;
256         status = "okay";
257 };
258
259 &can0 {
260         pinctrl-names = "default";
261         pinctrl-0 = <&can0_pins_a>;
262         xceiver-supply = <&reg_can_xcvr>;
263         status = "okay";
264 };
265
266 &can1 {
267         pinctrl-names = "default";
268         pinctrl-0 = <&can1_pins_a>;
269         xceiver-supply = <&reg_can_xcvr>;
270         status = "okay";
271 };
272
273 &digctl {
274         status = "okay";
275 };
276
277 /* 1st TX-Std UART - (D)UART */
278 &duart {
279         pinctrl-names = "default";
280         pinctrl-0 = <&duart_4pins_a>;
281         status = "okay";
282 };
283
284 &gpmi {
285         pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
286         nand-on-flash-bbt;
287         status = "okay";
288 };
289
290 &i2c0 {
291         pinctrl-names = "default";
292         pinctrl-0 = <&i2c0_pins_a>;
293         clock-frequency = <400000>;
294         status = "okay";
295
296         sgtl5000: sgtl5000@a {
297                 compatible = "fsl,sgtl5000";
298                 reg = <0x0a>;
299                 VDDA-supply = <&reg_2p5v>;
300                 VDDIO-supply = <&reg_3p3v>;
301                 clocks = <&mclk>;
302         };
303
304         gpio5: pca953x@20 {
305                 compatible = "nxp,pca9554";
306                 reg = <0x20>;
307                 pinctrl-names = "default";
308                 pinctrl-0 = <&tx28_pca9554_pins>;
309                 interrupt-parent = <&gpio3>;
310                 interrupts = <28 IRQ_TYPE_NONE>;
311                 gpio-controller;
312                 #gpio-cells = <2>;
313                 interrupt-controller;
314                 #interrupt-cells = <2>;
315         };
316
317         polytouch: edt-ft5x06@38 {
318                 compatible = "edt,edt-ft5x06";
319                 reg = <0x38>;
320                 pinctrl-names = "default";
321                 pinctrl-0 = <&tx28_edt_ft5x06_pins>;
322                 interrupt-parent = <&gpio2>;
323                 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
324                 reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
325                 wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
326                 wakeup-source;
327         };
328
329         touchscreen: tsc2007@48 {
330                 compatible = "ti,tsc2007";
331                 reg = <0x48>;
332                 pinctrl-names = "default";
333                 pinctrl-0 = <&tx28_tsc2007_pins>;
334                 interrupt-parent = <&gpio3>;
335                 interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
336                 pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
337                 ti,x-plate-ohms = /bits/ 16 <660>;
338         };
339
340         ds1339: rtc@68 {
341                 compatible = "mxim,ds1339";
342                 reg = <0x68>;
343                 trickle-resistor-ohms = <250>;
344                 trickle-diode-disable;
345         };
346 };
347
348 &lcdif {
349         pinctrl-names = "default";
350         pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
351         lcd-supply = <&reg_lcd>;
352         display = <&display0>;
353         status = "okay";
354
355         display0: display0 {
356                 bits-per-pixel = <32>;
357                 bus-width = <24>;
358                 display-timings {
359                         native-mode = <&timing5>;
360                         timing0: timing0 {
361                                 panel-name = "VGA";
362                                 clock-frequency = <25175000>;
363                                 hactive = <640>;
364                                 vactive = <480>;
365                                 hback-porch = <48>;
366                                 hsync-len = <96>;
367                                 hfront-porch = <16>;
368                                 vback-porch = <33>;
369                                 vsync-len = <2>;
370                                 vfront-porch = <10>;
371                                 hsync-active = <0>;
372                                 vsync-active = <0>;
373                                 de-active = <1>;
374                                 pixelclk-active = <1>;
375                         };
376
377                         timing1: timing1 {
378                                 panel-name = "ETV570";
379                                 clock-frequency = <25175000>;
380                                 hactive = <640>;
381                                 vactive = <480>;
382                                 hback-porch = <114>;
383                                 hsync-len = <30>;
384                                 hfront-porch = <16>;
385                                 vback-porch = <32>;
386                                 vsync-len = <3>;
387                                 vfront-porch = <10>;
388                                 hsync-active = <0>;
389                                 vsync-active = <0>;
390                                 de-active = <1>;
391                                 pixelclk-active = <1>;
392                         };
393
394                         timing2: timing2 {
395                                 panel-name = "ET0350";
396                                 clock-frequency = <6500000>;
397                                 hactive = <320>;
398                                 vactive = <240>;
399                                 hback-porch = <34>;
400                                 hsync-len = <34>;
401                                 hfront-porch = <20>;
402                                 vback-porch = <15>;
403                                 vsync-len = <3>;
404                                 vfront-porch = <4>;
405                                 hsync-active = <0>;
406                                 vsync-active = <0>;
407                                 de-active = <1>;
408                                 pixelclk-active = <1>;
409                         };
410
411                         timing3: timing3 {
412                                 panel-name = "ET0430";
413                                 clock-frequency = <9000000>;
414                                 hactive = <480>;
415                                 vactive = <272>;
416                                 hback-porch = <2>;
417                                 hsync-len = <41>;
418                                 hfront-porch = <2>;
419                                 vback-porch = <2>;
420                                 vsync-len = <10>;
421                                 vfront-porch = <2>;
422                                 hsync-active = <0>;
423                                 vsync-active = <0>;
424                                 de-active = <1>;
425                                 pixelclk-active = <1>;
426                         };
427
428                         timing4: timing4 {
429                                 panel-name = "ET0500", "ET0700";
430                                 clock-frequency = <33260000>;
431                                 hactive = <800>;
432                                 vactive = <480>;
433                                 hback-porch = <88>;
434                                 hsync-len = <128>;
435                                 hfront-porch = <40>;
436                                 vback-porch = <33>;
437                                 vsync-len = <2>;
438                                 vfront-porch = <10>;
439                                 hsync-active = <0>;
440                                 vsync-active = <0>;
441                                 de-active = <1>;
442                                 pixelclk-active = <1>;
443                         };
444
445                         timing5: timing5 {
446                                 panel-name = "ETQ570";
447                                 clock-frequency = <6400000>;
448                                 hactive = <320>;
449                                 vactive = <240>;
450                                 hback-porch = <38>;
451                                 hsync-len = <30>;
452                                 hfront-porch = <30>;
453                                 vback-porch = <16>;
454                                 vsync-len = <3>;
455                                 vfront-porch = <4>;
456                                 hsync-active = <0>;
457                                 vsync-active = <0>;
458                                 de-active = <1>;
459                                 pixelclk-active = <1>;
460                         };
461                 };
462         };
463 };
464
465 &lradc {
466         fsl,lradc-touchscreen-wires = <4>;
467         status = "okay";
468 };
469
470 &mac0 {
471         phy-mode = "rmii";
472         pinctrl-names = "default", "gpio_mode";
473         pinctrl-0 = <&mac0_pins_a>;
474         pinctrl-1 = <&tx28_mac0_pins_gpio>;
475         status = "okay";
476 };
477
478 &mac1 {
479         phy-mode = "rmii";
480         pinctrl-names = "default";
481         pinctrl-0 = <&mac1_pins_a>;
482         /* not enabled by default */
483 };
484
485 &mxs_rtc {
486         status = "okay";
487 };
488
489 &ocotp {
490         status = "okay";
491 };
492
493 &pwm {
494         pinctrl-names = "default";
495         pinctrl-0 = <&pwm0_pins_a>;
496         status = "okay";
497 };
498
499 &pinctrl {
500         pinctrl-names = "default";
501         pinctrl-0 = <&hog_pins_a>;
502
503         hog_pins_a: hog@0 {
504                 reg = <0>;
505                 fsl,pinmux-ids = <
506                         MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
507                 >;
508                 fsl,drive-strength = <MXS_DRIVE_4mA>;
509                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
510                 fsl,pull-up = <MXS_PULL_DISABLE>;
511         };
512
513         tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins@0 {
514                 reg = <0>;
515                 fsl,pinmux-ids = <
516                         MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
517                         MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
518                         MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
519                 >;
520                 fsl,drive-strength = <MXS_DRIVE_4mA>;
521                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
522                 fsl,pull-up = <MXS_PULL_DISABLE>;
523         };
524
525         tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins@0 {
526                 reg = <0>;
527                 fsl,pinmux-ids = <
528                         MX28_PAD_LCD_D00__GPIO_1_0
529                 >;
530                 fsl,drive-strength = <MXS_DRIVE_4mA>;
531                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
532                 fsl,pull-up = <MXS_PULL_DISABLE>;
533         };
534
535         tx28_lcdif_23bit_pins: tx28-lcdif-23bit@0 {
536                 reg = <0>;
537                 fsl,pinmux-ids = <
538                         /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
539                         MX28_PAD_LCD_D01__LCD_D1
540                         MX28_PAD_LCD_D02__LCD_D2
541                         MX28_PAD_LCD_D03__LCD_D3
542                         MX28_PAD_LCD_D04__LCD_D4
543                         MX28_PAD_LCD_D05__LCD_D5
544                         MX28_PAD_LCD_D06__LCD_D6
545                         MX28_PAD_LCD_D07__LCD_D7
546                         MX28_PAD_LCD_D08__LCD_D8
547                         MX28_PAD_LCD_D09__LCD_D9
548                         MX28_PAD_LCD_D10__LCD_D10
549                         MX28_PAD_LCD_D11__LCD_D11
550                         MX28_PAD_LCD_D12__LCD_D12
551                         MX28_PAD_LCD_D13__LCD_D13
552                         MX28_PAD_LCD_D14__LCD_D14
553                         MX28_PAD_LCD_D15__LCD_D15
554                         MX28_PAD_LCD_D16__LCD_D16
555                         MX28_PAD_LCD_D17__LCD_D17
556                         MX28_PAD_LCD_D18__LCD_D18
557                         MX28_PAD_LCD_D19__LCD_D19
558                         MX28_PAD_LCD_D20__LCD_D20
559                         MX28_PAD_LCD_D21__LCD_D21
560                         MX28_PAD_LCD_D22__LCD_D22
561                         MX28_PAD_LCD_D23__LCD_D23
562                 >;
563                 fsl,drive-strength = <MXS_DRIVE_4mA>;
564                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
565                 fsl,pull-up = <MXS_PULL_DISABLE>;
566         };
567
568         tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl@0 {
569                 reg = <0>;
570                 fsl,pinmux-ids = <
571                         MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
572                         MX28_PAD_LCD_RESET__GPIO_3_30  /* Reset */
573                 >;
574                 fsl,drive-strength = <MXS_DRIVE_4mA>;
575                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
576                 fsl,pull-up = <MXS_PULL_DISABLE>;
577         };
578
579         tx28_mac0_pins_gpio: tx28-mac0-gpio-pins@0 {
580                 reg = <0>;
581                 fsl,pinmux-ids = <
582                         MX28_PAD_ENET0_MDC__GPIO_4_0
583                         MX28_PAD_ENET0_MDIO__GPIO_4_1
584                         MX28_PAD_ENET0_RX_EN__GPIO_4_2
585                         MX28_PAD_ENET0_RXD0__GPIO_4_3
586                         MX28_PAD_ENET0_RXD1__GPIO_4_4
587                         MX28_PAD_ENET0_TX_EN__GPIO_4_6
588                         MX28_PAD_ENET0_TXD0__GPIO_4_7
589                         MX28_PAD_ENET0_TXD1__GPIO_4_8
590                         MX28_PAD_ENET_CLK__GPIO_4_16
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_pca9554_pins: tx28-pca9554-pins@0 {
598                 reg = <0>;
599                 fsl,pinmux-ids = <
600                         MX28_PAD_PWM3__GPIO_3_28
601                 >;
602                 fsl,drive-strength = <MXS_DRIVE_4mA>;
603                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
604                 fsl,pull-up = <MXS_PULL_DISABLE>;
605         };
606
607         tx28_spi_gpio_pins: spi-gpiogrp@0 {
608                 reg = <0>;
609                 fsl,pinmux-ids = <
610                         MX28_PAD_AUART2_RX__GPIO_3_8
611                         MX28_PAD_AUART2_TX__GPIO_3_9
612                         MX28_PAD_SSP3_SCK__GPIO_2_24
613                         MX28_PAD_SSP3_MOSI__GPIO_2_25
614                         MX28_PAD_SSP3_MISO__GPIO_2_26
615                         MX28_PAD_SSP3_SS0__GPIO_2_27
616                 >;
617                 fsl,drive-strength = <MXS_DRIVE_8mA>;
618                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
619                 fsl,pull-up = <MXS_PULL_DISABLE>;
620         };
621
622         tx28_tsc2007_pins: tx28-tsc2007-pins@0 {
623                 reg = <0>;
624                 fsl,pinmux-ids = <
625                         MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
626                 >;
627                 fsl,drive-strength = <MXS_DRIVE_4mA>;
628                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
629                 fsl,pull-up = <MXS_PULL_DISABLE>;
630         };
631
632
633         tx28_usbphy0_pins: tx28-usbphy0-pins@0 {
634                 reg = <0>;
635                 fsl,pinmux-ids = <
636                         MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
637                         MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
638                 >;
639                 fsl,drive-strength = <MXS_DRIVE_12mA>;
640                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
641                 fsl,pull-up = <MXS_PULL_DISABLE>;
642         };
643
644         tx28_usbphy1_pins: tx28-usbphy1-pins@0 {
645                 reg = <0>;
646                 fsl,pinmux-ids = <
647                         MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
648                         MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
649                 >;
650                 fsl,drive-strength = <MXS_DRIVE_12mA>;
651                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
652                 fsl,pull-up = <MXS_PULL_DISABLE>;
653         };
654 };
655
656 &saif0 {
657         pinctrl-names = "default";
658         pinctrl-0 = <&saif0_pins_b>;
659         fsl,saif-master;
660         status = "okay";
661 };
662
663 &saif1 {
664         pinctrl-names = "default";
665         pinctrl-0 = <&saif1_pins_a>;
666         status = "okay";
667 };
668
669 &ssp0 {
670         compatible = "fsl,imx28-mmc";
671         pinctrl-names = "default", "special";
672         pinctrl-0 = <&mmc0_4bit_pins_a
673                      &mmc0_cd_cfg
674                      &mmc0_sck_cfg>;
675         bus-width = <4>;
676         status = "okay";
677 };
678
679 &ssp3 {
680         compatible = "fsl,imx28-spi";
681         pinctrl-names = "default";
682         pinctrl-0 = <&spi3_pins_a>;
683         clock-frequency = <57600000>;
684         status = "okay";
685 };
686
687 &usb0 {
688         vbus-supply = <&reg_usb0_vbus>;
689         disable-over-current;
690         dr_mode = "peripheral";
691         status = "okay";
692 };
693
694 &usb1 {
695         vbus-supply = <&reg_usb1_vbus>;
696         disable-over-current;
697         dr_mode = "host";
698         status = "okay";
699 };
700
701 &usbphy0 {
702         pinctrl-names = "default";
703         pinctrl-0 = <&tx28_usbphy0_pins>;
704         phy_type = "utmi";
705         status = "okay";
706 };
707
708 &usbphy1 {
709         pinctrl-names = "default";
710         pinctrl-0 = <&tx28_usbphy1_pins>;
711         phy_type = "utmi";
712         status = "okay";
713 };