2 * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
3 * Copyright 2013 Lothar Waßmann <LW@KARO-electronics.de>
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:
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
15 #include <dt-bindings/gpio/gpio.h>
18 model = "Ka-Ro electronics TX28 module";
19 compatible = "karo,tx28", "fsl,imx28";
28 lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
29 lcdif_24bit_pins = &lcdif_24bit_pins_a;
30 reg_can_xcvr = ®_can_xcvr;
38 reg = <0 0>; /* will be filled in by U-Boot */
42 compatible = "w1-gpio";
43 gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
48 compatible = "simple-bus";
52 reg_usb0_vbus: regulator@0 {
53 compatible = "regulator-fixed";
55 regulator-name = "usb0_vbus";
56 regulator-min-microvolt = <5000000>;
57 regulator-max-microvolt = <5000000>;
58 gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
62 reg_usb1_vbus: regulator@1 {
63 compatible = "regulator-fixed";
65 regulator-name = "usb1_vbus";
66 regulator-min-microvolt = <5000000>;
67 regulator-max-microvolt = <5000000>;
68 gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
72 reg_2p5v: regulator@2 {
73 compatible = "regulator-fixed";
75 regulator-name = "2P5V";
76 regulator-min-microvolt = <2500000>;
77 regulator-max-microvolt = <2500000>;
81 reg_3p3v: regulator@3 {
82 compatible = "regulator-fixed";
84 regulator-name = "3P3V";
85 regulator-min-microvolt = <3300000>;
86 regulator-max-microvolt = <3300000>;
90 reg_can_xcvr: regulator@4 {
91 compatible = "regulator-fixed";
93 regulator-name = "CAN XCVR";
94 regulator-min-microvolt = <3300000>;
95 regulator-max-microvolt = <3300000>;
96 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
97 pinctrl-names = "default";
98 pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
101 reg_lcd: regulator@5 {
102 compatible = "regulator-fixed";
104 regulator-name = "LCD POWER";
105 regulator-min-microvolt = <3300000>;
106 regulator-max-microvolt = <3300000>;
107 gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
111 reg_lcd_reset: regulator@6 {
112 compatible = "regulator-fixed";
114 regulator-name = "LCD RESET";
115 regulator-min-microvolt = <3300000>;
116 regulator-max-microvolt = <3300000>;
117 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
118 startup-delay-us = <300000>;
126 #address-cells = <1>;
129 compatible = "fixed-clock";
132 clock-frequency = <27000000>;
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>;
145 compatible = "gpio-leds";
149 gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
150 linux,default-trigger = "heartbeat";
155 compatible = "pwm-backlight";
156 pwms = <&pwm 0 500000>;
158 * a silly way to create a 1:1 relationship between the
159 * PWM value and the actual duty cycle
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
172 default-brightness-level = <50>;
175 matrix_keypad: matrix-keypad@0 {
176 compatible = "gpio-matrix-keypad";
178 &gpio5 0 GPIO_ACTIVE_HIGH
179 &gpio5 1 GPIO_ACTIVE_HIGH
180 &gpio5 2 GPIO_ACTIVE_HIGH
181 &gpio5 3 GPIO_ACTIVE_HIGH
184 &gpio5 4 GPIO_ACTIVE_HIGH
185 &gpio5 5 GPIO_ACTIVE_HIGH
186 &gpio5 6 GPIO_ACTIVE_HIGH
187 &gpio5 7 GPIO_ACTIVE_HIGH
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 */
205 debounce-delay-ms = <100>;
206 col-scan-delay-us = <5000>;
211 compatible = "spi-gpio";
212 #address-cells = <1>;
214 pinctrl-names = "default";
215 pinctrl-0 = <&tx28_spi_gpio_pins>;
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>;
222 &gpio2 27 GPIO_ACTIVE_LOW
223 &gpio3 8 GPIO_ACTIVE_LOW
224 &gpio3 9 GPIO_ACTIVE_LOW
226 /* enable this and disable ssp3 below, if you need full duplex SPI transfer */
230 compatible = "spidev";
232 spi-max-frequency = <57600000>;
236 compatible = "spidev";
238 spi-max-frequency = <57600000>;
242 compatible = "spidev";
244 spi-max-frequency = <57600000>;
249 /* 2nd TX-Std UART - (A)UART1 */
251 pinctrl-names = "default";
252 pinctrl-0 = <&auart1_pins_a>;
256 /* 3rd TX-Std UART - (A)UART3 */
258 pinctrl-names = "default";
259 pinctrl-0 = <&auart3_pins_a>;
264 pinctrl-names = "default";
265 pinctrl-0 = <&can0_pins_a>;
266 xceiver-supply = <®_can_xcvr>;
271 pinctrl-names = "default";
272 pinctrl-0 = <&can1_pins_a>;
273 xceiver-supply = <®_can_xcvr>;
281 /* 1st TX-Std UART - (D)UART */
283 pinctrl-names = "default";
284 pinctrl-0 = <&duart_4pins_a>;
289 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
295 pinctrl-names = "default";
296 pinctrl-0 = <&i2c0_pins_a>;
297 clock-frequency = <400000>;
300 sgtl5000: sgtl5000@0a {
301 compatible = "fsl,sgtl5000";
303 VDDA-supply = <®_2p5v>;
304 VDDIO-supply = <®_3p3v>;
309 compatible = "nxp,pca9554";
311 pinctrl-names = "default";
312 pinctrl-0 = <&tx28_pca9554_pins>;
313 interrupt-parent = <&gpio3>;
317 interrupt-controller;
318 #interrupt-cells = <2>;
321 polytouch: edt-ft5x06@38 {
322 compatible = "edt,edt-ft5x06";
324 pinctrl-names = "default";
325 pinctrl-0 = <&tx28_edt_ft5x06_pins>;
326 interrupt-parent = <&gpio2>;
328 reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
329 wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
332 touchscreen: tsc2007@48 {
333 compatible = "ti,tsc2007";
335 pinctrl-names = "default";
336 pinctrl-0 = <&tx28_tsc2007_pins>;
337 interrupt-parent = <&gpio3>;
339 pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
340 ti,x-plate-ohms = /bits/ 16 <660>;
344 compatible = "mxim,ds1339";
350 pinctrl-names = "default";
351 pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
352 lcd-supply = <®_lcd>;
353 display = <&display0>;
357 bits-per-pixel = <32>;
360 native-mode = <&timing5>;
363 clock-frequency = <25175000>;
375 pixelclk-active = <1>;
379 panel-name = "ETV570";
380 clock-frequency = <25175000>;
392 pixelclk-active = <1>;
396 panel-name = "ET0350";
397 clock-frequency = <6500000>;
409 pixelclk-active = <1>;
413 panel-name = "ET0430";
414 clock-frequency = <9000000>;
426 pixelclk-active = <1>;
430 panel-name = "ET0500", "ET0700";
431 clock-frequency = <33260000>;
443 pixelclk-active = <1>;
447 panel-name = "ETQ570";
448 clock-frequency = <6400000>;
460 pixelclk-active = <1>;
467 fsl,lradc-touchscreen-wires = <4>;
473 pinctrl-names = "default", "gpio_mode";
474 pinctrl-0 = <&mac0_pins_a>;
475 pinctrl-1 = <&tx28_mac0_pins_gpio>;
481 pinctrl-names = "default";
482 pinctrl-0 = <&mac1_pins_a>;
483 /* not enabled by default */
495 pinctrl-names = "default";
496 pinctrl-0 = <&pwm0_pins_a>;
501 pinctrl-names = "default";
502 pinctrl-0 = <&hog_pins_a>;
507 MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
509 fsl,drive-strength = <MXS_DRIVE_4mA>;
510 fsl,voltage = <MXS_VOLTAGE_HIGH>;
511 fsl,pull-up = <MXS_PULL_DISABLE>;
514 tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins {
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 */
520 fsl,drive-strength = <MXS_DRIVE_4mA>;
521 fsl,voltage = <MXS_VOLTAGE_HIGH>;
522 fsl,pull-up = <MXS_PULL_DISABLE>;
525 tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins {
527 MX28_PAD_LCD_D00__GPIO_1_0
529 fsl,drive-strength = <MXS_DRIVE_4mA>;
530 fsl,voltage = <MXS_VOLTAGE_HIGH>;
531 fsl,pull-up = <MXS_PULL_DISABLE>;
534 tx28_lcdif_23bit_pins: tx28-lcdif-23bit {
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
561 fsl,drive-strength = <MXS_DRIVE_4mA>;
562 fsl,voltage = <MXS_VOLTAGE_HIGH>;
563 fsl,pull-up = <MXS_PULL_DISABLE>;
566 tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl {
568 MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
569 MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */
571 fsl,drive-strength = <MXS_DRIVE_4mA>;
572 fsl,voltage = <MXS_VOLTAGE_HIGH>;
573 fsl,pull-up = <MXS_PULL_DISABLE>;
576 tx28_mac0_pins_gpio: tx28-mac0-gpio-pins {
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
588 fsl,drive-strength = <MXS_DRIVE_4mA>;
589 fsl,voltage = <MXS_VOLTAGE_HIGH>;
590 fsl,pull-up = <MXS_PULL_DISABLE>;
593 tx28_pca9554_pins: tx28-pca9554-pins {
595 MX28_PAD_PWM3__GPIO_3_28
597 fsl,drive-strength = <MXS_DRIVE_4mA>;
598 fsl,voltage = <MXS_VOLTAGE_HIGH>;
599 fsl,pull-up = <MXS_PULL_DISABLE>;
602 tx28_spi_gpio_pins: spi-gpiogrp {
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
611 fsl,drive-strength = <MXS_DRIVE_8mA>;
612 fsl,voltage = <MXS_VOLTAGE_HIGH>;
613 fsl,pull-up = <MXS_PULL_DISABLE>;
616 tx28_tsc2007_pins: tx28-tsc2007-pins {
618 MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
620 fsl,drive-strength = <MXS_DRIVE_4mA>;
621 fsl,voltage = <MXS_VOLTAGE_HIGH>;
622 fsl,pull-up = <MXS_PULL_DISABLE>;
626 tx28_usbphy0_pins: tx28-usbphy0-pins {
628 MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
629 MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
631 fsl,drive-strength = <MXS_DRIVE_12mA>;
632 fsl,voltage = <MXS_VOLTAGE_HIGH>;
633 fsl,pull-up = <MXS_PULL_DISABLE>;
636 tx28_usbphy1_pins: tx28-usbphy1-pins {
638 MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
639 MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
641 fsl,drive-strength = <MXS_DRIVE_12mA>;
642 fsl,voltage = <MXS_VOLTAGE_HIGH>;
643 fsl,pull-up = <MXS_PULL_DISABLE>;
648 pinctrl-names = "default";
649 pinctrl-0 = <&saif0_pins_b>;
655 pinctrl-names = "default";
656 pinctrl-0 = <&saif1_pins_a>;
661 compatible = "fsl,imx28-mmc";
662 pinctrl-names = "default", "special";
663 pinctrl-0 = <&mmc0_4bit_pins_a
671 compatible = "fsl,imx28-spi";
672 pinctrl-names = "default";
673 pinctrl-0 = <&spi3_pins_a>;
674 clock-frequency = <57600000>;
678 compatible = "spidev";
680 spi-max-frequency = <57600000>;
684 compatible = "spidev";
686 spi-max-frequency = <57600000>;
690 compatible = "spidev";
692 spi-max-frequency = <57600000>;
697 vbus-supply = <®_usb0_vbus>;
698 disable-over-current;
699 dr_mode = "peripheral";
704 vbus-supply = <®_usb1_vbus>;
705 disable-over-current;
711 pinctrl-names = "default";
712 pinctrl-0 = <&tx28_usbphy0_pins>;
718 pinctrl-names = "default";
719 pinctrl-0 = <&tx28_usbphy1_pins>;