blob: a5b27c85a91c8b14464feabd30d2af7ec03b9d8c [file] [log] [blame]
Lothar Waßmannaf67a752013-09-23 12:20:48 +02001/*
2 * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
3 * Copyright 2013 Lothar Waßmann <LW@KARO-electronics.de>
4 *
5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 at the following locations:
8 *
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
11 */
12
Shawn Guoe1a4d182012-07-09 12:34:35 +080013/dts-v1/;
Lothar Waßmannbc3875f2013-09-19 08:59:48 +020014#include "imx28.dtsi"
Lothar Waßmannaf67a752013-09-23 12:20:48 +020015#include <dt-bindings/gpio/gpio.h>
Shawn Guoe1a4d182012-07-09 12:34:35 +080016
17/ {
18 model = "Ka-Ro electronics TX28 module";
19 compatible = "karo,tx28", "fsl,imx28";
20
Lothar Waßmannaf67a752013-09-23 12:20:48 +020021 aliases {
22 can0 = &can0;
23 can1 = &can1;
Fabio Estevam58a32d92014-09-04 22:31:22 -030024 display = &display0;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020025 ds1339 = &ds1339;
26 gpio5 = &gpio5;
27 lcdif = &lcdif;
28 lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
29 lcdif_24bit_pins = &lcdif_24bit_pins_a;
Lothar Waßmann03615982014-09-09 13:26:03 +020030 reg_can_xcvr = &reg_can_xcvr;
Lothar Waßmannd7dbe2c2014-09-09 13:26:02 +020031 spi_gpio = &spi_gpio;
32 spi_mxs = &ssp3;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020033 stk5led = &user_led;
34 usbotg = &usb0;
35 };
36
Shawn Guoe1a4d182012-07-09 12:34:35 +080037 memory {
Lothar Waßmannaf67a752013-09-23 12:20:48 +020038 reg = <0 0>; /* will be filled in by U-Boot */
Shawn Guoe1a4d182012-07-09 12:34:35 +080039 };
40
Lothar Waßmannaf67a752013-09-23 12:20:48 +020041 onewire {
42 compatible = "w1-gpio";
Lothar Waßmann4d6480a2014-09-09 13:26:01 +020043 gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020044 status = "disabled";
45 };
Shawn Guoe1a4d182012-07-09 12:34:35 +080046
Lothar Waßmannaf67a752013-09-23 12:20:48 +020047 regulators {
48 compatible = "simple-bus";
Shawn Guo352d3182014-02-07 23:18:30 +080049 #address-cells = <1>;
50 #size-cells = <0>;
Shawn Guoe1a4d182012-07-09 12:34:35 +080051
Shawn Guo352d3182014-02-07 23:18:30 +080052 reg_usb0_vbus: regulator@0 {
Lothar Waßmannaf67a752013-09-23 12:20:48 +020053 compatible = "regulator-fixed";
Shawn Guo352d3182014-02-07 23:18:30 +080054 reg = <0>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020055 regulator-name = "usb0_vbus";
56 regulator-min-microvolt = <5000000>;
57 regulator-max-microvolt = <5000000>;
Lothar Waßmann4d6480a2014-09-09 13:26:01 +020058 gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020059 enable-active-high;
Shawn Guoe1a4d182012-07-09 12:34:35 +080060 };
61
Shawn Guo352d3182014-02-07 23:18:30 +080062 reg_usb1_vbus: regulator@1 {
Lothar Waßmannaf67a752013-09-23 12:20:48 +020063 compatible = "regulator-fixed";
Shawn Guo352d3182014-02-07 23:18:30 +080064 reg = <1>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020065 regulator-name = "usb1_vbus";
66 regulator-min-microvolt = <5000000>;
67 regulator-max-microvolt = <5000000>;
Lothar Waßmann4d6480a2014-09-09 13:26:01 +020068 gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020069 enable-active-high;
70 };
Shawn Guoe1a4d182012-07-09 12:34:35 +080071
Shawn Guo352d3182014-02-07 23:18:30 +080072 reg_2p5v: regulator@2 {
Lothar Waßmannaf67a752013-09-23 12:20:48 +020073 compatible = "regulator-fixed";
Shawn Guo352d3182014-02-07 23:18:30 +080074 reg = <2>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020075 regulator-name = "2P5V";
76 regulator-min-microvolt = <2500000>;
77 regulator-max-microvolt = <2500000>;
78 regulator-always-on;
79 };
Shawn Guoe1a4d182012-07-09 12:34:35 +080080
Shawn Guo352d3182014-02-07 23:18:30 +080081 reg_3p3v: regulator@3 {
Lothar Waßmannaf67a752013-09-23 12:20:48 +020082 compatible = "regulator-fixed";
Shawn Guo352d3182014-02-07 23:18:30 +080083 reg = <3>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020084 regulator-name = "3P3V";
85 regulator-min-microvolt = <3300000>;
86 regulator-max-microvolt = <3300000>;
87 regulator-always-on;
88 };
Shawn Guoe1a4d182012-07-09 12:34:35 +080089
Shawn Guo352d3182014-02-07 23:18:30 +080090 reg_can_xcvr: regulator@4 {
Lothar Waßmannaf67a752013-09-23 12:20:48 +020091 compatible = "regulator-fixed";
Shawn Guo352d3182014-02-07 23:18:30 +080092 reg = <4>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020093 regulator-name = "CAN XCVR";
94 regulator-min-microvolt = <3300000>;
95 regulator-max-microvolt = <3300000>;
Lothar Waßmann4d6480a2014-09-09 13:26:01 +020096 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +020097 pinctrl-names = "default";
98 pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
99 };
Shawn Guoe1a4d182012-07-09 12:34:35 +0800100
Shawn Guo352d3182014-02-07 23:18:30 +0800101 reg_lcd: regulator@5 {
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200102 compatible = "regulator-fixed";
Shawn Guo352d3182014-02-07 23:18:30 +0800103 reg = <5>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200104 regulator-name = "LCD POWER";
105 regulator-min-microvolt = <3300000>;
106 regulator-max-microvolt = <3300000>;
Lothar Waßmann4d6480a2014-09-09 13:26:01 +0200107 gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200108 enable-active-high;
109 };
110
Shawn Guo352d3182014-02-07 23:18:30 +0800111 reg_lcd_reset: regulator@6 {
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200112 compatible = "regulator-fixed";
Shawn Guo352d3182014-02-07 23:18:30 +0800113 reg = <6>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200114 regulator-name = "LCD RESET";
115 regulator-min-microvolt = <3300000>;
116 regulator-max-microvolt = <3300000>;
Lothar Waßmann4d6480a2014-09-09 13:26:01 +0200117 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200118 startup-delay-us = <300000>;
119 enable-active-high;
120 regulator-always-on;
121 regulator-boot-on;
Shawn Guoe1a4d182012-07-09 12:34:35 +0800122 };
123 };
124
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200125 clocks {
126 #address-cells = <1>;
127 #size-cells = <0>;
128 mclk: clock@0 {
129 compatible = "fixed-clock";
130 reg = <0>;
131 #clock-cells = <0>;
132 clock-frequency = <27000000>;
Shawn Guoe1a4d182012-07-09 12:34:35 +0800133 };
134 };
135
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200136 sound {
137 compatible = "fsl,imx28-tx28-sgtl5000",
138 "fsl,mxs-audio-sgtl5000";
139 model = "imx28-tx28-sgtl5000";
140 saif-controllers = <&saif0 &saif1>;
141 audio-codec = <&sgtl5000>;
142 };
143
Shawn Guoe1a4d182012-07-09 12:34:35 +0800144 leds {
145 compatible = "gpio-leds";
146
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200147 user_led: user {
Shawn Guoe1a4d182012-07-09 12:34:35 +0800148 label = "Heartbeat";
Lothar Waßmann4d6480a2014-09-09 13:26:01 +0200149 gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
Shawn Guoe1a4d182012-07-09 12:34:35 +0800150 linux,default-trigger = "heartbeat";
151 };
152 };
153
154 backlight {
155 compatible = "pwm-backlight";
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200156 pwms = <&pwm 0 500000>;
157 /*
158 * a silly way to create a 1:1 relationship between the
159 * PWM value and the actual duty cycle
160 */
161 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
162 10 11 12 13 14 15 16 17 18 19
163 20 21 22 23 24 25 26 27 28 29
164 30 31 32 33 34 35 36 37 38 39
165 40 41 42 43 44 45 46 47 48 49
166 50 51 52 53 54 55 56 57 58 59
167 60 61 62 63 64 65 66 67 68 69
168 70 71 72 73 74 75 76 77 78 79
169 80 81 82 83 84 85 86 87 88 89
170 90 91 92 93 94 95 96 97 98 99
171 100>;
172 default-brightness-level = <50>;
Shawn Guoe1a4d182012-07-09 12:34:35 +0800173 };
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200174
175 matrix_keypad: matrix-keypad@0 {
176 compatible = "gpio-matrix-keypad";
177 col-gpios = <
Lothar Waßmann4d6480a2014-09-09 13:26:01 +0200178 &gpio5 0 GPIO_ACTIVE_HIGH
179 &gpio5 1 GPIO_ACTIVE_HIGH
180 &gpio5 2 GPIO_ACTIVE_HIGH
181 &gpio5 3 GPIO_ACTIVE_HIGH
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200182 >;
183 row-gpios = <
Lothar Waßmann4d6480a2014-09-09 13:26:01 +0200184 &gpio5 4 GPIO_ACTIVE_HIGH
185 &gpio5 5 GPIO_ACTIVE_HIGH
186 &gpio5 6 GPIO_ACTIVE_HIGH
187 &gpio5 7 GPIO_ACTIVE_HIGH
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200188 >;
189 /* sample keymap */
190 linux,keymap = <
191 0x00000074 /* row 0, col 0, KEY_POWER */
192 0x00010052 /* row 0, col 1, KEY_KP0 */
193 0x0002004f /* row 0, col 2, KEY_KP1 */
194 0x00030050 /* row 0, col 3, KEY_KP2 */
195 0x01000051 /* row 1, col 0, KEY_KP3 */
196 0x0101004b /* row 1, col 1, KEY_KP4 */
197 0x0102004c /* row 1, col 2, KEY_KP5 */
198 0x0103004d /* row 1, col 3, KEY_KP6 */
199 0x02000047 /* row 2, col 0, KEY_KP7 */
200 0x02010048 /* row 2, col 1, KEY_KP8 */
201 0x02020049 /* row 2, col 2, KEY_KP9 */
202 >;
203 gpio-activelow;
204 linux,wakeup;
205 debounce-delay-ms = <100>;
206 col-scan-delay-us = <5000>;
207 linux,no-autorepeat;
208 };
Lothar Waßmannd7dbe2c2014-09-09 13:26:02 +0200209
210 spi_gpio: spi-gpio {
211 compatible = "spi-gpio";
212 #address-cells = <1>;
213 #size-cells = <0>;
214 pinctrl-names = "default";
215 pinctrl-0 = <&tx28_spi_gpio_pins>;
216
217 gpio-sck = <&gpio2 24 GPIO_ACTIVE_HIGH>;
218 gpio-mosi = <&gpio2 25 GPIO_ACTIVE_HIGH>;
219 gpio-miso = <&gpio2 26 GPIO_ACTIVE_HIGH>;
220 num-chipselects = <3>;
221 cs-gpios = <
222 &gpio2 27 GPIO_ACTIVE_LOW
223 &gpio3 8 GPIO_ACTIVE_LOW
224 &gpio3 9 GPIO_ACTIVE_LOW
225 >;
226 /* enable this and disable ssp3 below, if you need full duplex SPI transfer */
227 status = "disabled";
228
229 spi@0 {
230 compatible = "spidev";
231 reg = <0>;
232 spi-max-frequency = <57600000>;
233 };
234
235 spi@1 {
236 compatible = "spidev";
237 reg = <1>;
238 spi-max-frequency = <57600000>;
239 };
240
241 spi@2 {
242 compatible = "spidev";
243 reg = <2>;
244 spi-max-frequency = <57600000>;
245 };
246 };
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200247};
248
249/* 2nd TX-Std UART - (A)UART1 */
250&auart1 {
251 pinctrl-names = "default";
252 pinctrl-0 = <&auart1_pins_a>;
253 status = "okay";
254};
255
256/* 3rd TX-Std UART - (A)UART3 */
257&auart3 {
258 pinctrl-names = "default";
259 pinctrl-0 = <&auart3_pins_a>;
260 status = "okay";
261};
262
263&can0 {
264 pinctrl-names = "default";
265 pinctrl-0 = <&can0_pins_a>;
266 xceiver-supply = <&reg_can_xcvr>;
267 status = "okay";
268};
269
270&can1 {
271 pinctrl-names = "default";
272 pinctrl-0 = <&can1_pins_a>;
273 xceiver-supply = <&reg_can_xcvr>;
274 status = "okay";
275};
276
277&digctl {
278 status = "okay";
279};
280
281/* 1st TX-Std UART - (D)UART */
282&duart {
283 pinctrl-names = "default";
284 pinctrl-0 = <&duart_4pins_a>;
285 status = "okay";
286};
287
288&gpmi {
289 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
290 nand-on-flash-bbt;
291 status = "okay";
292};
293
294&i2c0 {
295 pinctrl-names = "default";
296 pinctrl-0 = <&i2c0_pins_a>;
297 clock-frequency = <400000>;
298 status = "okay";
299
300 sgtl5000: sgtl5000@0a {
301 compatible = "fsl,sgtl5000";
302 reg = <0x0a>;
303 VDDA-supply = <&reg_2p5v>;
304 VDDIO-supply = <&reg_3p3v>;
305 clocks = <&mclk>;
306 };
307
308 gpio5: pca953x@20 {
309 compatible = "nxp,pca9554";
310 reg = <0x20>;
311 pinctrl-names = "default";
312 pinctrl-0 = <&tx28_pca9554_pins>;
313 interrupt-parent = <&gpio3>;
314 interrupts = <28 0>;
315 gpio-controller;
316 #gpio-cells = <2>;
317 interrupt-controller;
318 #interrupt-cells = <2>;
319 };
320
321 polytouch: edt-ft5x06@38 {
322 compatible = "edt,edt-ft5x06";
323 reg = <0x38>;
324 pinctrl-names = "default";
325 pinctrl-0 = <&tx28_edt_ft5x06_pins>;
326 interrupt-parent = <&gpio2>;
327 interrupts = <5 0>;
Lothar Waßmann4d6480a2014-09-09 13:26:01 +0200328 reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
329 wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200330 };
331
332 touchscreen: tsc2007@48 {
333 compatible = "ti,tsc2007";
334 reg = <0x48>;
335 pinctrl-names = "default";
336 pinctrl-0 = <&tx28_tsc2007_pins>;
337 interrupt-parent = <&gpio3>;
338 interrupts = <20 0>;
Lothar Waßmann4d6480a2014-09-09 13:26:01 +0200339 pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200340 ti,x-plate-ohms = /bits/ 16 <660>;
341 };
342
343 ds1339: rtc@68 {
344 compatible = "mxim,ds1339";
345 reg = <0x68>;
346 };
347};
348
349&lcdif {
350 pinctrl-names = "default";
351 pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
352 lcd-supply = <&reg_lcd>;
Fabio Estevam58a32d92014-09-04 22:31:22 -0300353 display = <&display0>;
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200354 status = "okay";
355
Fabio Estevam58a32d92014-09-04 22:31:22 -0300356 display0: display0 {
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200357 bits-per-pixel = <32>;
358 bus-width = <24>;
359 display-timings {
360 native-mode = <&timing5>;
361 timing0: timing0 {
362 panel-name = "VGA";
363 clock-frequency = <25175000>;
364 hactive = <640>;
365 vactive = <480>;
366 hback-porch = <48>;
367 hsync-len = <96>;
368 hfront-porch = <16>;
369 vback-porch = <33>;
370 vsync-len = <2>;
371 vfront-porch = <10>;
372 hsync-active = <0>;
373 vsync-active = <0>;
374 de-active = <1>;
375 pixelclk-active = <1>;
376 };
377
378 timing1: timing1 {
379 panel-name = "ETV570";
380 clock-frequency = <25175000>;
381 hactive = <640>;
382 vactive = <480>;
383 hback-porch = <114>;
384 hsync-len = <30>;
385 hfront-porch = <16>;
386 vback-porch = <32>;
387 vsync-len = <3>;
388 vfront-porch = <10>;
389 hsync-active = <0>;
390 vsync-active = <0>;
391 de-active = <1>;
392 pixelclk-active = <1>;
393 };
394
395 timing2: timing2 {
396 panel-name = "ET0350";
397 clock-frequency = <6500000>;
398 hactive = <320>;
399 vactive = <240>;
400 hback-porch = <34>;
401 hsync-len = <34>;
402 hfront-porch = <20>;
403 vback-porch = <15>;
404 vsync-len = <3>;
405 vfront-porch = <4>;
406 hsync-active = <0>;
407 vsync-active = <0>;
408 de-active = <1>;
409 pixelclk-active = <1>;
410 };
411
412 timing3: timing3 {
413 panel-name = "ET0430";
414 clock-frequency = <9000000>;
415 hactive = <480>;
416 vactive = <272>;
417 hback-porch = <2>;
418 hsync-len = <41>;
419 hfront-porch = <2>;
420 vback-porch = <2>;
421 vsync-len = <10>;
422 vfront-porch = <2>;
423 hsync-active = <0>;
424 vsync-active = <0>;
425 de-active = <1>;
426 pixelclk-active = <1>;
427 };
428
429 timing4: timing4 {
430 panel-name = "ET0500", "ET0700";
431 clock-frequency = <33260000>;
432 hactive = <800>;
433 vactive = <480>;
434 hback-porch = <88>;
435 hsync-len = <128>;
436 hfront-porch = <40>;
437 vback-porch = <33>;
438 vsync-len = <2>;
439 vfront-porch = <10>;
440 hsync-active = <0>;
441 vsync-active = <0>;
442 de-active = <1>;
443 pixelclk-active = <1>;
444 };
445
446 timing5: timing5 {
447 panel-name = "ETQ570";
448 clock-frequency = <6400000>;
449 hactive = <320>;
450 vactive = <240>;
451 hback-porch = <38>;
452 hsync-len = <30>;
453 hfront-porch = <30>;
454 vback-porch = <16>;
455 vsync-len = <3>;
456 vfront-porch = <4>;
457 hsync-active = <0>;
458 vsync-active = <0>;
459 de-active = <1>;
460 pixelclk-active = <1>;
461 };
462 };
463 };
464};
465
466&lradc {
467 fsl,lradc-touchscreen-wires = <4>;
468 status = "okay";
469};
470
471&mac0 {
472 phy-mode = "rmii";
473 pinctrl-names = "default", "gpio_mode";
474 pinctrl-0 = <&mac0_pins_a>;
475 pinctrl-1 = <&tx28_mac0_pins_gpio>;
476 status = "okay";
477};
478
479&mac1 {
480 phy-mode = "rmii";
481 pinctrl-names = "default";
482 pinctrl-0 = <&mac1_pins_a>;
483 /* not enabled by default */
484};
485
486&mxs_rtc {
487 status = "okay";
488};
489
490&ocotp {
491 status = "okay";
492};
493
494&pwm {
495 pinctrl-names = "default";
496 pinctrl-0 = <&pwm0_pins_a>;
497 status = "okay";
498};
499
500&pinctrl {
501 pinctrl-names = "default";
502 pinctrl-0 = <&hog_pins_a>;
503
504 hog_pins_a: hog@0 {
505 reg = <0>;
506 fsl,pinmux-ids = <
507 MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
508 >;
509 fsl,drive-strength = <MXS_DRIVE_4mA>;
510 fsl,voltage = <MXS_VOLTAGE_HIGH>;
511 fsl,pull-up = <MXS_PULL_DISABLE>;
512 };
513
514 tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins {
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 {
526 fsl,pinmux-ids = <
527 MX28_PAD_LCD_D00__GPIO_1_0
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_lcdif_23bit_pins: tx28-lcdif-23bit {
535 fsl,pinmux-ids = <
536 /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
537 MX28_PAD_LCD_D01__LCD_D1
538 MX28_PAD_LCD_D02__LCD_D2
539 MX28_PAD_LCD_D03__LCD_D3
540 MX28_PAD_LCD_D04__LCD_D4
541 MX28_PAD_LCD_D05__LCD_D5
542 MX28_PAD_LCD_D06__LCD_D6
543 MX28_PAD_LCD_D07__LCD_D7
544 MX28_PAD_LCD_D08__LCD_D8
545 MX28_PAD_LCD_D09__LCD_D9
546 MX28_PAD_LCD_D10__LCD_D10
547 MX28_PAD_LCD_D11__LCD_D11
548 MX28_PAD_LCD_D12__LCD_D12
549 MX28_PAD_LCD_D13__LCD_D13
550 MX28_PAD_LCD_D14__LCD_D14
551 MX28_PAD_LCD_D15__LCD_D15
552 MX28_PAD_LCD_D16__LCD_D16
553 MX28_PAD_LCD_D17__LCD_D17
554 MX28_PAD_LCD_D18__LCD_D18
555 MX28_PAD_LCD_D19__LCD_D19
556 MX28_PAD_LCD_D20__LCD_D20
557 MX28_PAD_LCD_D21__LCD_D21
558 MX28_PAD_LCD_D22__LCD_D22
559 MX28_PAD_LCD_D23__LCD_D23
560 >;
561 fsl,drive-strength = <MXS_DRIVE_4mA>;
562 fsl,voltage = <MXS_VOLTAGE_HIGH>;
563 fsl,pull-up = <MXS_PULL_DISABLE>;
564 };
565
566 tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl {
567 fsl,pinmux-ids = <
568 MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
569 MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */
570 >;
571 fsl,drive-strength = <MXS_DRIVE_4mA>;
572 fsl,voltage = <MXS_VOLTAGE_HIGH>;
573 fsl,pull-up = <MXS_PULL_DISABLE>;
574 };
575
576 tx28_mac0_pins_gpio: tx28-mac0-gpio-pins {
577 fsl,pinmux-ids = <
578 MX28_PAD_ENET0_MDC__GPIO_4_0
579 MX28_PAD_ENET0_MDIO__GPIO_4_1
580 MX28_PAD_ENET0_RX_EN__GPIO_4_2
581 MX28_PAD_ENET0_RXD0__GPIO_4_3
582 MX28_PAD_ENET0_RXD1__GPIO_4_4
583 MX28_PAD_ENET0_TX_EN__GPIO_4_6
584 MX28_PAD_ENET0_TXD0__GPIO_4_7
585 MX28_PAD_ENET0_TXD1__GPIO_4_8
586 MX28_PAD_ENET_CLK__GPIO_4_16
587 >;
588 fsl,drive-strength = <MXS_DRIVE_4mA>;
589 fsl,voltage = <MXS_VOLTAGE_HIGH>;
590 fsl,pull-up = <MXS_PULL_DISABLE>;
591 };
592
593 tx28_pca9554_pins: tx28-pca9554-pins {
594 fsl,pinmux-ids = <
595 MX28_PAD_PWM3__GPIO_3_28
596 >;
597 fsl,drive-strength = <MXS_DRIVE_4mA>;
598 fsl,voltage = <MXS_VOLTAGE_HIGH>;
599 fsl,pull-up = <MXS_PULL_DISABLE>;
600 };
601
Lothar Waßmannd7dbe2c2014-09-09 13:26:02 +0200602 tx28_spi_gpio_pins: spi-gpiogrp {
603 fsl,pinmux-ids = <
604 MX28_PAD_AUART2_RX__GPIO_3_8
605 MX28_PAD_AUART2_TX__GPIO_3_9
606 MX28_PAD_SSP3_SCK__GPIO_2_24
607 MX28_PAD_SSP3_MOSI__GPIO_2_25
608 MX28_PAD_SSP3_MISO__GPIO_2_26
609 MX28_PAD_SSP3_SS0__GPIO_2_27
610 >;
611 fsl,drive-strength = <MXS_DRIVE_8mA>;
612 fsl,voltage = <MXS_VOLTAGE_HIGH>;
613 fsl,pull-up = <MXS_PULL_DISABLE>;
614 };
615
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200616 tx28_tsc2007_pins: tx28-tsc2007-pins {
617 fsl,pinmux-ids = <
618 MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
619 >;
620 fsl,drive-strength = <MXS_DRIVE_4mA>;
621 fsl,voltage = <MXS_VOLTAGE_HIGH>;
622 fsl,pull-up = <MXS_PULL_DISABLE>;
623 };
624
625
626 tx28_usbphy0_pins: tx28-usbphy0-pins {
627 fsl,pinmux-ids = <
628 MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
629 MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
630 >;
631 fsl,drive-strength = <MXS_DRIVE_12mA>;
632 fsl,voltage = <MXS_VOLTAGE_HIGH>;
633 fsl,pull-up = <MXS_PULL_DISABLE>;
634 };
635
636 tx28_usbphy1_pins: tx28-usbphy1-pins {
637 fsl,pinmux-ids = <
638 MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
639 MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
640 >;
641 fsl,drive-strength = <MXS_DRIVE_12mA>;
642 fsl,voltage = <MXS_VOLTAGE_HIGH>;
643 fsl,pull-up = <MXS_PULL_DISABLE>;
644 };
645};
646
647&saif0 {
648 pinctrl-names = "default";
649 pinctrl-0 = <&saif0_pins_b>;
650 fsl,saif-master;
651 status = "okay";
652};
653
654&saif1 {
655 pinctrl-names = "default";
656 pinctrl-0 = <&saif1_pins_a>;
657 status = "okay";
658};
659
660&ssp0 {
661 compatible = "fsl,imx28-mmc";
662 pinctrl-names = "default", "special";
663 pinctrl-0 = <&mmc0_4bit_pins_a
664 &mmc0_cd_cfg
665 &mmc0_sck_cfg>;
666 bus-width = <4>;
667 status = "okay";
668};
669
670&ssp3 {
671 compatible = "fsl,imx28-spi";
672 pinctrl-names = "default";
673 pinctrl-0 = <&spi3_pins_a>;
674 clock-frequency = <57600000>;
675 status = "okay";
676
Lothar Waßmanne905e7f2014-09-09 13:26:00 +0200677 spi@0 {
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200678 compatible = "spidev";
679 reg = <0>;
680 spi-max-frequency = <57600000>;
681 };
682
Lothar Waßmanne905e7f2014-09-09 13:26:00 +0200683 spi@1 {
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200684 compatible = "spidev";
685 reg = <1>;
686 spi-max-frequency = <57600000>;
687 };
Lothar Waßmanne905e7f2014-09-09 13:26:00 +0200688
689 spi@2 {
690 compatible = "spidev";
691 reg = <2>;
692 spi-max-frequency = <57600000>;
693 };
Lothar Waßmannaf67a752013-09-23 12:20:48 +0200694};
695
696&usb0 {
697 vbus-supply = <&reg_usb0_vbus>;
698 disable-over-current;
699 dr_mode = "peripheral";
700 status = "okay";
701};
702
703&usb1 {
704 vbus-supply = <&reg_usb1_vbus>;
705 disable-over-current;
706 dr_mode = "host";
707 status = "okay";
708};
709
710&usbphy0 {
711 pinctrl-names = "default";
712 pinctrl-0 = <&tx28_usbphy0_pins>;
713 phy_type = "utmi";
714 status = "okay";
715};
716
717&usbphy1 {
718 pinctrl-names = "default";
719 pinctrl-0 = <&tx28_usbphy1_pins>;
720 phy_type = "utmi";
721 status = "okay";
Shawn Guoe1a4d182012-07-09 12:34:35 +0800722};