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";
40 gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
45 compatible = "simple-bus";
47 reg_usb0_vbus: usb0_vbus {
48 compatible = "regulator-fixed";
49 regulator-name = "usb0_vbus";
50 regulator-min-microvolt = <5000000>;
51 regulator-max-microvolt = <5000000>;
52 gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
56 reg_usb1_vbus: usb1_vbus {
57 compatible = "regulator-fixed";
58 regulator-name = "usb1_vbus";
59 regulator-min-microvolt = <5000000>;
60 regulator-max-microvolt = <5000000>;
61 gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
66 compatible = "regulator-fixed";
67 regulator-name = "2P5V";
68 regulator-min-microvolt = <2500000>;
69 regulator-max-microvolt = <2500000>;
74 compatible = "regulator-fixed";
75 regulator-name = "3P3V";
76 regulator-min-microvolt = <3300000>;
77 regulator-max-microvolt = <3300000>;
81 reg_can_xcvr: can-xcvr {
82 compatible = "regulator-fixed";
83 regulator-name = "CAN XCVR";
84 regulator-min-microvolt = <3300000>;
85 regulator-max-microvolt = <3300000>;
86 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
88 pinctrl-names = "default";
89 pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
93 compatible = "regulator-fixed";
94 regulator-name = "LCD POWER";
95 regulator-min-microvolt = <3300000>;
96 regulator-max-microvolt = <3300000>;
97 gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
101 reg_lcd_reset: lcd-reset {
102 compatible = "regulator-fixed";
103 regulator-name = "LCD RESET";
104 regulator-min-microvolt = <3300000>;
105 regulator-max-microvolt = <3300000>;
106 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
107 startup-delay-us = <300000>;
115 #address-cells = <1>;
118 compatible = "fixed-clock";
121 clock-frequency = <27000000>;
126 compatible = "fsl,imx28-tx28-sgtl5000",
127 "fsl,mxs-audio-sgtl5000";
128 model = "imx28-tx28-sgtl5000";
129 saif-controllers = <&saif0 &saif1>;
130 audio-codec = <&sgtl5000>;
134 compatible = "gpio-leds";
138 gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
139 linux,default-trigger = "heartbeat";
144 compatible = "pwm-backlight";
145 pwms = <&pwm 0 500000>;
147 * a silly way to create a 1:1 relationship between the
148 * PWM value and the actual duty cycle
150 brightness-levels = <100
151 99 98 97 96 95 94 93 92 91 90
152 89 88 87 86 85 84 83 82 81 80
153 79 78 77 76 75 74 73 72 71 70
154 69 68 67 66 65 64 63 62 61 60
155 59 58 57 56 55 54 53 52 51 50
156 49 48 47 46 45 44 43 42 41 40
157 39 38 37 36 35 34 33 32 31 30
158 29 28 27 26 25 24 23 22 21 20
159 19 18 17 16 15 14 13 12 11 10
160 9 8 7 6 5 4 3 2 1 0>;
161 default-brightness-level = <50>;
164 matrix_keypad: matrix-keypad@0 {
165 compatible = "gpio-matrix-keypad";
180 0x00000074 /* row 0, col 0, KEY_POWER */
181 0x00010052 /* row 0, col 1, KEY_KP0 */
182 0x0002004f /* row 0, col 2, KEY_KP1 */
183 0x00030050 /* row 0, col 3, KEY_KP2 */
184 0x01000051 /* row 1, col 0, KEY_KP3 */
185 0x0101004b /* row 1, col 1, KEY_KP4 */
186 0x0102004c /* row 1, col 2, KEY_KP5 */
187 0x0103004d /* row 1, col 3, KEY_KP6 */
188 0x02000047 /* row 2, col 0, KEY_KP7 */
189 0x02010048 /* row 2, col 1, KEY_KP8 */
190 0x02020049 /* row 2, col 2, KEY_KP9 */
194 debounce-delay-ms = <100>;
195 col-scan-delay-us = <5000>;
200 /* 2nd TX-Std UART - (A)UART1 */
202 pinctrl-names = "default";
203 pinctrl-0 = <&auart1_pins_a>;
207 /* 3rd TX-Std UART - (A)UART3 */
209 pinctrl-names = "default";
210 pinctrl-0 = <&auart3_pins_a>;
215 pinctrl-names = "default";
216 pinctrl-0 = <&can0_pins_a>;
217 xceiver-supply = <®_can_xcvr>;
222 pinctrl-names = "default";
223 pinctrl-0 = <&can1_pins_a>;
224 xceiver-supply = <®_can_xcvr>;
232 /* 1st TX-Std UART - (D)UART */
234 pinctrl-names = "default";
235 pinctrl-0 = <&duart_4pins_a>;
240 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
246 pinctrl-names = "default";
247 pinctrl-0 = <&i2c0_pins_a>;
248 clock-frequency = <400000>;
251 sgtl5000: sgtl5000@0a {
252 compatible = "fsl,sgtl5000";
254 VDDA-supply = <®_2p5v>;
255 VDDIO-supply = <®_3p3v>;
260 compatible = "nxp,pca9554";
262 pinctrl-names = "default";
263 pinctrl-0 = <&tx28_pca9554_pins>;
264 interrupt-parent = <&gpio3>;
268 interrupt-controller;
269 #interrupt-cells = <2>;
272 polytouch: edt-ft5x06@38 {
273 compatible = "edt,edt-ft5x06";
275 pinctrl-names = "default";
276 pinctrl-0 = <&tx28_edt_ft5x06_pins>;
277 interrupt-parent = <&gpio2>;
279 reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
280 wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
283 touchscreen: tsc2007@48 {
284 compatible = "ti,tsc2007";
286 pinctrl-names = "default";
287 pinctrl-0 = <&tx28_tsc2007_pins>;
288 interrupt-parent = <&gpio3>;
290 gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
291 ti,x-plate-ohms = <660>;
296 compatible = "mxim,ds1339";
302 pinctrl-names = "default";
303 pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
304 lcd-supply = <®_lcd>;
305 display = <&display>;
309 bits-per-pixel = <32>;
312 native-mode = <&timing5>;
315 clock-frequency = <25175000>;
327 pixelclk-active = <1>;
331 panel-name = "ETV570";
332 clock-frequency = <25175000>;
344 pixelclk-active = <1>;
348 panel-name = "ET0350";
349 clock-frequency = <6500000>;
361 pixelclk-active = <1>;
365 panel-name = "ET0430";
366 clock-frequency = <9000000>;
378 pixelclk-active = <1>;
382 panel-name = "ET0500", "ET0700";
383 clock-frequency = <33260000>;
395 pixelclk-active = <1>;
399 panel-name = "ETQ570";
400 clock-frequency = <6400000>;
412 pixelclk-active = <1>;
419 fsl,lradc-touchscreen-wires = <4>;
425 pinctrl-names = "default", "gpio_mode";
426 pinctrl-0 = <&mac0_pins_a>;
427 pinctrl-1 = <&tx28_mac0_pins_gpio>;
433 pinctrl-names = "default";
434 pinctrl-0 = <&mac1_pins_a>;
435 /* not enabled by default */
447 pinctrl-names = "default";
448 pinctrl-0 = <&pwm0_pins_a>;
453 pinctrl-names = "default";
454 pinctrl-0 = <&hog_pins_a>;
459 MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
461 fsl,drive-strength = <MXS_DRIVE_4mA>;
462 fsl,voltage = <MXS_VOLTAGE_HIGH>;
463 fsl,pull-up = <MXS_PULL_DISABLE>;
466 tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins {
468 MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
469 MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
470 MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
472 fsl,drive-strength = <MXS_DRIVE_4mA>;
473 fsl,voltage = <MXS_VOLTAGE_HIGH>;
474 fsl,pull-up = <MXS_PULL_DISABLE>;
477 tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins {
479 MX28_PAD_LCD_D00__GPIO_1_0
481 fsl,drive-strength = <MXS_DRIVE_4mA>;
482 fsl,voltage = <MXS_VOLTAGE_HIGH>;
483 fsl,pull-up = <MXS_PULL_DISABLE>;
486 tx28_lcdif_23bit_pins: tx28-lcdif-23bit {
488 /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
489 MX28_PAD_LCD_D01__LCD_D1
490 MX28_PAD_LCD_D02__LCD_D2
491 MX28_PAD_LCD_D03__LCD_D3
492 MX28_PAD_LCD_D04__LCD_D4
493 MX28_PAD_LCD_D05__LCD_D5
494 MX28_PAD_LCD_D06__LCD_D6
495 MX28_PAD_LCD_D07__LCD_D7
496 MX28_PAD_LCD_D08__LCD_D8
497 MX28_PAD_LCD_D09__LCD_D9
498 MX28_PAD_LCD_D10__LCD_D10
499 MX28_PAD_LCD_D11__LCD_D11
500 MX28_PAD_LCD_D12__LCD_D12
501 MX28_PAD_LCD_D13__LCD_D13
502 MX28_PAD_LCD_D14__LCD_D14
503 MX28_PAD_LCD_D15__LCD_D15
504 MX28_PAD_LCD_D16__LCD_D16
505 MX28_PAD_LCD_D17__LCD_D17
506 MX28_PAD_LCD_D18__LCD_D18
507 MX28_PAD_LCD_D19__LCD_D19
508 MX28_PAD_LCD_D20__LCD_D20
509 MX28_PAD_LCD_D21__LCD_D21
510 MX28_PAD_LCD_D22__LCD_D22
511 MX28_PAD_LCD_D23__LCD_D23
513 fsl,drive-strength = <MXS_DRIVE_4mA>;
514 fsl,voltage = <MXS_VOLTAGE_HIGH>;
515 fsl,pull-up = <MXS_PULL_DISABLE>;
518 tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl {
520 MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
521 MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */
523 fsl,drive-strength = <MXS_DRIVE_4mA>;
524 fsl,voltage = <MXS_VOLTAGE_HIGH>;
525 fsl,pull-up = <MXS_PULL_DISABLE>;
528 tx28_mac0_pins_gpio: tx28-mac0-gpio-pins {
530 MX28_PAD_ENET0_MDC__GPIO_4_0
531 MX28_PAD_ENET0_MDIO__GPIO_4_1
532 MX28_PAD_ENET0_RX_EN__GPIO_4_2
533 MX28_PAD_ENET0_RXD0__GPIO_4_3
534 MX28_PAD_ENET0_RXD1__GPIO_4_4
535 MX28_PAD_ENET0_TX_EN__GPIO_4_6
536 MX28_PAD_ENET0_TXD0__GPIO_4_7
537 MX28_PAD_ENET0_TXD1__GPIO_4_8
538 MX28_PAD_ENET_CLK__GPIO_4_16
540 fsl,drive-strength = <MXS_DRIVE_4mA>;
541 fsl,voltage = <MXS_VOLTAGE_HIGH>;
542 fsl,pull-up = <MXS_PULL_DISABLE>;
545 tx28_pca9554_pins: tx28-pca9554-pins {
547 MX28_PAD_PWM3__GPIO_3_28
549 fsl,drive-strength = <MXS_DRIVE_4mA>;
550 fsl,voltage = <MXS_VOLTAGE_HIGH>;
551 fsl,pull-up = <MXS_PULL_DISABLE>;
554 tx28_tsc2007_pins: tx28-tsc2007-pins {
556 MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
558 fsl,drive-strength = <MXS_DRIVE_4mA>;
559 fsl,voltage = <MXS_VOLTAGE_HIGH>;
560 fsl,pull-up = <MXS_PULL_DISABLE>;
564 tx28_usbphy0_pins: tx28-usbphy0-pins {
566 MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
567 MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
569 fsl,drive-strength = <MXS_DRIVE_12mA>;
570 fsl,voltage = <MXS_VOLTAGE_HIGH>;
571 fsl,pull-up = <MXS_PULL_DISABLE>;
574 tx28_usbphy1_pins: tx28-usbphy1-pins {
576 MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
577 MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
579 fsl,drive-strength = <MXS_DRIVE_12mA>;
580 fsl,voltage = <MXS_VOLTAGE_HIGH>;
581 fsl,pull-up = <MXS_PULL_DISABLE>;
586 pinctrl-names = "default";
587 pinctrl-0 = <&saif0_pins_b>;
593 pinctrl-names = "default";
594 pinctrl-0 = <&saif1_pins_a>;
599 compatible = "fsl,imx28-mmc";
600 pinctrl-names = "default", "special";
601 pinctrl-0 = <&mmc0_4bit_pins_a
609 compatible = "fsl,imx28-spi";
610 pinctrl-names = "default";
611 pinctrl-0 = <&spi3_pins_a>;
612 clock-frequency = <57600000>;
616 compatible = "spidev";
618 spi-max-frequency = <57600000>;
622 compatible = "spidev";
624 spi-max-frequency = <57600000>;
629 vbus-supply = <®_usb0_vbus>;
630 disable-over-current;
631 dr_mode = "peripheral";
636 vbus-supply = <®_usb1_vbus>;
637 disable-over-current;
643 pinctrl-names = "default";
644 pinctrl-0 = <&tx28_usbphy0_pins>;
650 pinctrl-names = "default";
651 pinctrl-0 = <&tx28_usbphy1_pins>;