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;
35 reg = <0 0>; /* will be filled in by U-Boot */
39 compatible = "w1-gpio";
45 compatible = "simple-bus";
49 reg_usb0_vbus: regulator@0 {
50 compatible = "regulator-fixed";
52 regulator-name = "usb0_vbus";
53 regulator-min-microvolt = <5000000>;
54 regulator-max-microvolt = <5000000>;
59 reg_usb1_vbus: regulator@1 {
60 compatible = "regulator-fixed";
62 regulator-name = "usb1_vbus";
63 regulator-min-microvolt = <5000000>;
64 regulator-max-microvolt = <5000000>;
69 reg_2p5v: regulator@2 {
70 compatible = "regulator-fixed";
72 regulator-name = "2P5V";
73 regulator-min-microvolt = <2500000>;
74 regulator-max-microvolt = <2500000>;
78 reg_3p3v: regulator@3 {
79 compatible = "regulator-fixed";
81 regulator-name = "3P3V";
82 regulator-min-microvolt = <3300000>;
83 regulator-max-microvolt = <3300000>;
87 reg_can_xcvr: regulator@4 {
88 compatible = "regulator-fixed";
90 regulator-name = "CAN XCVR";
91 regulator-min-microvolt = <3300000>;
92 regulator-max-microvolt = <3300000>;
95 pinctrl-names = "default";
96 pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
99 reg_lcd: regulator@5 {
100 compatible = "regulator-fixed";
102 regulator-name = "LCD POWER";
103 regulator-min-microvolt = <3300000>;
104 regulator-max-microvolt = <3300000>;
105 gpio = <&gpio1 31 0>;
109 reg_lcd_reset: regulator@6 {
110 compatible = "regulator-fixed";
112 regulator-name = "LCD RESET";
113 regulator-min-microvolt = <3300000>;
114 regulator-max-microvolt = <3300000>;
115 gpio = <&gpio3 30 0>;
116 startup-delay-us = <300000>;
124 #address-cells = <1>;
127 compatible = "fixed-clock";
130 clock-frequency = <27000000>;
135 compatible = "fsl,imx28-tx28-sgtl5000",
136 "fsl,mxs-audio-sgtl5000";
137 model = "imx28-tx28-sgtl5000";
138 saif-controllers = <&saif0 &saif1>;
139 audio-codec = <&sgtl5000>;
143 compatible = "gpio-leds";
147 gpios = <&gpio4 10 0>;
148 linux,default-trigger = "heartbeat";
153 compatible = "pwm-backlight";
154 pwms = <&pwm 0 500000>;
156 * a silly way to create a 1:1 relationship between the
157 * PWM value and the actual duty cycle
159 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
160 10 11 12 13 14 15 16 17 18 19
161 20 21 22 23 24 25 26 27 28 29
162 30 31 32 33 34 35 36 37 38 39
163 40 41 42 43 44 45 46 47 48 49
164 50 51 52 53 54 55 56 57 58 59
165 60 61 62 63 64 65 66 67 68 69
166 70 71 72 73 74 75 76 77 78 79
167 80 81 82 83 84 85 86 87 88 89
168 90 91 92 93 94 95 96 97 98 99
170 default-brightness-level = <50>;
173 matrix_keypad: matrix-keypad@0 {
174 compatible = "gpio-matrix-keypad";
189 0x00000074 /* row 0, col 0, KEY_POWER */
190 0x00010052 /* row 0, col 1, KEY_KP0 */
191 0x0002004f /* row 0, col 2, KEY_KP1 */
192 0x00030050 /* row 0, col 3, KEY_KP2 */
193 0x01000051 /* row 1, col 0, KEY_KP3 */
194 0x0101004b /* row 1, col 1, KEY_KP4 */
195 0x0102004c /* row 1, col 2, KEY_KP5 */
196 0x0103004d /* row 1, col 3, KEY_KP6 */
197 0x02000047 /* row 2, col 0, KEY_KP7 */
198 0x02010048 /* row 2, col 1, KEY_KP8 */
199 0x02020049 /* row 2, col 2, KEY_KP9 */
203 debounce-delay-ms = <100>;
204 col-scan-delay-us = <5000>;
209 /* 2nd TX-Std UART - (A)UART1 */
211 pinctrl-names = "default";
212 pinctrl-0 = <&auart1_pins_a>;
216 /* 3rd TX-Std UART - (A)UART3 */
218 pinctrl-names = "default";
219 pinctrl-0 = <&auart3_pins_a>;
224 pinctrl-names = "default";
225 pinctrl-0 = <&can0_pins_a>;
226 xceiver-supply = <®_can_xcvr>;
231 pinctrl-names = "default";
232 pinctrl-0 = <&can1_pins_a>;
233 xceiver-supply = <®_can_xcvr>;
241 /* 1st TX-Std UART - (D)UART */
243 pinctrl-names = "default";
244 pinctrl-0 = <&duart_4pins_a>;
249 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
255 pinctrl-names = "default";
256 pinctrl-0 = <&i2c0_pins_a>;
257 clock-frequency = <400000>;
260 sgtl5000: sgtl5000@0a {
261 compatible = "fsl,sgtl5000";
263 VDDA-supply = <®_2p5v>;
264 VDDIO-supply = <®_3p3v>;
269 compatible = "nxp,pca9554";
271 pinctrl-names = "default";
272 pinctrl-0 = <&tx28_pca9554_pins>;
273 interrupt-parent = <&gpio3>;
277 interrupt-controller;
278 #interrupt-cells = <2>;
281 polytouch: edt-ft5x06@38 {
282 compatible = "edt,edt-ft5x06";
284 pinctrl-names = "default";
285 pinctrl-0 = <&tx28_edt_ft5x06_pins>;
286 interrupt-parent = <&gpio2>;
288 reset-gpios = <&gpio2 6 1>;
289 wake-gpios = <&gpio4 9 0>;
292 touchscreen: tsc2007@48 {
293 compatible = "ti,tsc2007";
295 pinctrl-names = "default";
296 pinctrl-0 = <&tx28_tsc2007_pins>;
297 interrupt-parent = <&gpio3>;
299 pendown-gpio = <&gpio3 20 1>;
300 ti,x-plate-ohms = /bits/ 16 <660>;
304 compatible = "mxim,ds1339";
310 pinctrl-names = "default";
311 pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
312 lcd-supply = <®_lcd>;
313 display = <&display>;
317 bits-per-pixel = <32>;
320 native-mode = <&timing5>;
323 clock-frequency = <25175000>;
335 pixelclk-active = <1>;
339 panel-name = "ETV570";
340 clock-frequency = <25175000>;
352 pixelclk-active = <1>;
356 panel-name = "ET0350";
357 clock-frequency = <6500000>;
369 pixelclk-active = <1>;
373 panel-name = "ET0430";
374 clock-frequency = <9000000>;
386 pixelclk-active = <1>;
390 panel-name = "ET0500", "ET0700";
391 clock-frequency = <33260000>;
403 pixelclk-active = <1>;
407 panel-name = "ETQ570";
408 clock-frequency = <6400000>;
420 pixelclk-active = <1>;
427 fsl,lradc-touchscreen-wires = <4>;
433 pinctrl-names = "default", "gpio_mode";
434 pinctrl-0 = <&mac0_pins_a>;
435 pinctrl-1 = <&tx28_mac0_pins_gpio>;
441 pinctrl-names = "default";
442 pinctrl-0 = <&mac1_pins_a>;
443 /* not enabled by default */
455 pinctrl-names = "default";
456 pinctrl-0 = <&pwm0_pins_a>;
461 pinctrl-names = "default";
462 pinctrl-0 = <&hog_pins_a>;
467 MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
469 fsl,drive-strength = <MXS_DRIVE_4mA>;
470 fsl,voltage = <MXS_VOLTAGE_HIGH>;
471 fsl,pull-up = <MXS_PULL_DISABLE>;
474 tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins {
476 MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
477 MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
478 MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
480 fsl,drive-strength = <MXS_DRIVE_4mA>;
481 fsl,voltage = <MXS_VOLTAGE_HIGH>;
482 fsl,pull-up = <MXS_PULL_DISABLE>;
485 tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins {
487 MX28_PAD_LCD_D00__GPIO_1_0
489 fsl,drive-strength = <MXS_DRIVE_4mA>;
490 fsl,voltage = <MXS_VOLTAGE_HIGH>;
491 fsl,pull-up = <MXS_PULL_DISABLE>;
494 tx28_lcdif_23bit_pins: tx28-lcdif-23bit {
496 /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
497 MX28_PAD_LCD_D01__LCD_D1
498 MX28_PAD_LCD_D02__LCD_D2
499 MX28_PAD_LCD_D03__LCD_D3
500 MX28_PAD_LCD_D04__LCD_D4
501 MX28_PAD_LCD_D05__LCD_D5
502 MX28_PAD_LCD_D06__LCD_D6
503 MX28_PAD_LCD_D07__LCD_D7
504 MX28_PAD_LCD_D08__LCD_D8
505 MX28_PAD_LCD_D09__LCD_D9
506 MX28_PAD_LCD_D10__LCD_D10
507 MX28_PAD_LCD_D11__LCD_D11
508 MX28_PAD_LCD_D12__LCD_D12
509 MX28_PAD_LCD_D13__LCD_D13
510 MX28_PAD_LCD_D14__LCD_D14
511 MX28_PAD_LCD_D15__LCD_D15
512 MX28_PAD_LCD_D16__LCD_D16
513 MX28_PAD_LCD_D17__LCD_D17
514 MX28_PAD_LCD_D18__LCD_D18
515 MX28_PAD_LCD_D19__LCD_D19
516 MX28_PAD_LCD_D20__LCD_D20
517 MX28_PAD_LCD_D21__LCD_D21
518 MX28_PAD_LCD_D22__LCD_D22
519 MX28_PAD_LCD_D23__LCD_D23
521 fsl,drive-strength = <MXS_DRIVE_4mA>;
522 fsl,voltage = <MXS_VOLTAGE_HIGH>;
523 fsl,pull-up = <MXS_PULL_DISABLE>;
526 tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl {
528 MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
529 MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */
531 fsl,drive-strength = <MXS_DRIVE_4mA>;
532 fsl,voltage = <MXS_VOLTAGE_HIGH>;
533 fsl,pull-up = <MXS_PULL_DISABLE>;
536 tx28_mac0_pins_gpio: tx28-mac0-gpio-pins {
538 MX28_PAD_ENET0_MDC__GPIO_4_0
539 MX28_PAD_ENET0_MDIO__GPIO_4_1
540 MX28_PAD_ENET0_RX_EN__GPIO_4_2
541 MX28_PAD_ENET0_RXD0__GPIO_4_3
542 MX28_PAD_ENET0_RXD1__GPIO_4_4
543 MX28_PAD_ENET0_TX_EN__GPIO_4_6
544 MX28_PAD_ENET0_TXD0__GPIO_4_7
545 MX28_PAD_ENET0_TXD1__GPIO_4_8
546 MX28_PAD_ENET_CLK__GPIO_4_16
548 fsl,drive-strength = <MXS_DRIVE_4mA>;
549 fsl,voltage = <MXS_VOLTAGE_HIGH>;
550 fsl,pull-up = <MXS_PULL_DISABLE>;
553 tx28_pca9554_pins: tx28-pca9554-pins {
555 MX28_PAD_PWM3__GPIO_3_28
557 fsl,drive-strength = <MXS_DRIVE_4mA>;
558 fsl,voltage = <MXS_VOLTAGE_HIGH>;
559 fsl,pull-up = <MXS_PULL_DISABLE>;
562 tx28_tsc2007_pins: tx28-tsc2007-pins {
564 MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
566 fsl,drive-strength = <MXS_DRIVE_4mA>;
567 fsl,voltage = <MXS_VOLTAGE_HIGH>;
568 fsl,pull-up = <MXS_PULL_DISABLE>;
572 tx28_usbphy0_pins: tx28-usbphy0-pins {
574 MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
575 MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
577 fsl,drive-strength = <MXS_DRIVE_12mA>;
578 fsl,voltage = <MXS_VOLTAGE_HIGH>;
579 fsl,pull-up = <MXS_PULL_DISABLE>;
582 tx28_usbphy1_pins: tx28-usbphy1-pins {
584 MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
585 MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
587 fsl,drive-strength = <MXS_DRIVE_12mA>;
588 fsl,voltage = <MXS_VOLTAGE_HIGH>;
589 fsl,pull-up = <MXS_PULL_DISABLE>;
594 pinctrl-names = "default";
595 pinctrl-0 = <&saif0_pins_b>;
601 pinctrl-names = "default";
602 pinctrl-0 = <&saif1_pins_a>;
607 compatible = "fsl,imx28-mmc";
608 pinctrl-names = "default", "special";
609 pinctrl-0 = <&mmc0_4bit_pins_a
617 compatible = "fsl,imx28-spi";
618 pinctrl-names = "default";
619 pinctrl-0 = <&spi3_pins_a>;
620 clock-frequency = <57600000>;
624 compatible = "spidev";
626 spi-max-frequency = <57600000>;
630 compatible = "spidev";
632 spi-max-frequency = <57600000>;
637 vbus-supply = <®_usb0_vbus>;
638 disable-over-current;
639 dr_mode = "peripheral";
644 vbus-supply = <®_usb1_vbus>;
645 disable-over-current;
651 pinctrl-names = "default";
652 pinctrl-0 = <&tx28_usbphy0_pins>;
658 pinctrl-names = "default";
659 pinctrl-0 = <&tx28_usbphy1_pins>;