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>;
146 power-supply = <®_3p3v>;
148 * a silly way to create a 1:1 relationship between the
149 * PWM value and the actual duty cycle
151 brightness-levels = <100
152 99 98 97 96 95 94 93 92 91 90
153 89 88 87 86 85 84 83 82 81 80
154 79 78 77 76 75 74 73 72 71 70
155 69 68 67 66 65 64 63 62 61 60
156 59 58 57 56 55 54 53 52 51 50
157 49 48 47 46 45 44 43 42 41 40
158 39 38 37 36 35 34 33 32 31 30
159 29 28 27 26 25 24 23 22 21 20
160 19 18 17 16 15 14 13 12 11 10
161 9 8 7 6 5 4 3 2 1 0>;
162 default-brightness-level = <50>;
165 matrix_keypad: matrix-keypad@0 {
166 compatible = "gpio-matrix-keypad";
181 0x00000074 /* row 0, col 0, KEY_POWER */
182 0x00010052 /* row 0, col 1, KEY_KP0 */
183 0x0002004f /* row 0, col 2, KEY_KP1 */
184 0x00030050 /* row 0, col 3, KEY_KP2 */
185 0x01000051 /* row 1, col 0, KEY_KP3 */
186 0x0101004b /* row 1, col 1, KEY_KP4 */
187 0x0102004c /* row 1, col 2, KEY_KP5 */
188 0x0103004d /* row 1, col 3, KEY_KP6 */
189 0x02000047 /* row 2, col 0, KEY_KP7 */
190 0x02010048 /* row 2, col 1, KEY_KP8 */
191 0x02020049 /* row 2, col 2, KEY_KP9 */
195 debounce-delay-ms = <100>;
196 col-scan-delay-us = <5000>;
201 /* 2nd TX-Std UART - (A)UART1 */
203 pinctrl-names = "default";
204 pinctrl-0 = <&auart1_pins_a>;
208 /* 3rd TX-Std UART - (A)UART3 */
210 pinctrl-names = "default";
211 pinctrl-0 = <&auart3_pins_a>;
216 pinctrl-names = "default";
217 pinctrl-0 = <&can0_pins_a>;
218 xceiver-supply = <®_can_xcvr>;
223 pinctrl-names = "default";
224 pinctrl-0 = <&can1_pins_a>;
225 xceiver-supply = <®_can_xcvr>;
233 /* 1st TX-Std UART - (D)UART */
235 pinctrl-names = "default";
236 pinctrl-0 = <&duart_4pins_a>;
241 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
247 pinctrl-names = "default";
248 pinctrl-0 = <&i2c0_pins_a>;
249 clock-frequency = <400000>;
252 sgtl5000: sgtl5000@0a {
253 compatible = "fsl,sgtl5000";
255 VDDA-supply = <®_2p5v>;
256 VDDIO-supply = <®_3p3v>;
261 compatible = "nxp,pca9554";
263 pinctrl-names = "default";
264 pinctrl-0 = <&tx28_pca9554_pins>;
265 interrupt-parent = <&gpio3>;
269 interrupt-controller;
270 #interrupt-cells = <2>;
273 polytouch: edt-ft5x06@38 {
274 compatible = "edt,edt-ft5x06";
276 pinctrl-names = "default";
277 pinctrl-0 = <&tx28_edt_ft5x06_pins>;
278 interrupt-parent = <&gpio2>;
280 reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
281 wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
284 touchscreen: tsc2007@48 {
285 compatible = "ti,tsc2007";
287 pinctrl-names = "default";
288 pinctrl-0 = <&tx28_tsc2007_pins>;
289 interrupt-parent = <&gpio3>;
291 gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
292 ti,x-plate-ohms = <660>;
297 compatible = "mxim,ds1339";
303 pinctrl-names = "default";
304 pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
305 lcd-supply = <®_lcd>;
306 display = <&display>;
310 bits-per-pixel = <32>;
313 native-mode = <&timing5>;
316 clock-frequency = <25175000>;
328 pixelclk-active = <1>;
332 panel-name = "ETV570";
333 clock-frequency = <25175000>;
345 pixelclk-active = <1>;
349 panel-name = "ET0350";
350 clock-frequency = <6500000>;
362 pixelclk-active = <1>;
366 panel-name = "ET0430";
367 clock-frequency = <9000000>;
379 pixelclk-active = <1>;
383 panel-name = "ET0500", "ET0700";
384 clock-frequency = <33260000>;
396 pixelclk-active = <1>;
400 panel-name = "ETQ570";
401 clock-frequency = <6400000>;
413 pixelclk-active = <1>;
420 fsl,lradc-touchscreen-wires = <4>;
426 pinctrl-names = "default", "gpio_mode";
427 pinctrl-0 = <&mac0_pins_a>;
428 pinctrl-1 = <&tx28_mac0_pins_gpio>;
434 pinctrl-names = "default";
435 pinctrl-0 = <&mac1_pins_a>;
436 /* not enabled by default */
448 pinctrl-names = "default";
449 pinctrl-0 = <&pwm0_pins_a>;
454 pinctrl-names = "default";
455 pinctrl-0 = <&hog_pins_a>;
460 MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
462 fsl,drive-strength = <MXS_DRIVE_4mA>;
463 fsl,voltage = <MXS_VOLTAGE_HIGH>;
464 fsl,pull-up = <MXS_PULL_DISABLE>;
467 tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins {
469 MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
470 MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
471 MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
473 fsl,drive-strength = <MXS_DRIVE_4mA>;
474 fsl,voltage = <MXS_VOLTAGE_HIGH>;
475 fsl,pull-up = <MXS_PULL_DISABLE>;
478 tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins {
480 MX28_PAD_LCD_D00__GPIO_1_0
482 fsl,drive-strength = <MXS_DRIVE_4mA>;
483 fsl,voltage = <MXS_VOLTAGE_HIGH>;
484 fsl,pull-up = <MXS_PULL_DISABLE>;
487 tx28_lcdif_23bit_pins: tx28-lcdif-23bit {
489 /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
490 MX28_PAD_LCD_D01__LCD_D1
491 MX28_PAD_LCD_D02__LCD_D2
492 MX28_PAD_LCD_D03__LCD_D3
493 MX28_PAD_LCD_D04__LCD_D4
494 MX28_PAD_LCD_D05__LCD_D5
495 MX28_PAD_LCD_D06__LCD_D6
496 MX28_PAD_LCD_D07__LCD_D7
497 MX28_PAD_LCD_D08__LCD_D8
498 MX28_PAD_LCD_D09__LCD_D9
499 MX28_PAD_LCD_D10__LCD_D10
500 MX28_PAD_LCD_D11__LCD_D11
501 MX28_PAD_LCD_D12__LCD_D12
502 MX28_PAD_LCD_D13__LCD_D13
503 MX28_PAD_LCD_D14__LCD_D14
504 MX28_PAD_LCD_D15__LCD_D15
505 MX28_PAD_LCD_D16__LCD_D16
506 MX28_PAD_LCD_D17__LCD_D17
507 MX28_PAD_LCD_D18__LCD_D18
508 MX28_PAD_LCD_D19__LCD_D19
509 MX28_PAD_LCD_D20__LCD_D20
510 MX28_PAD_LCD_D21__LCD_D21
511 MX28_PAD_LCD_D22__LCD_D22
512 MX28_PAD_LCD_D23__LCD_D23
514 fsl,drive-strength = <MXS_DRIVE_4mA>;
515 fsl,voltage = <MXS_VOLTAGE_HIGH>;
516 fsl,pull-up = <MXS_PULL_DISABLE>;
519 tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl {
521 MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
522 MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */
524 fsl,drive-strength = <MXS_DRIVE_4mA>;
525 fsl,voltage = <MXS_VOLTAGE_HIGH>;
526 fsl,pull-up = <MXS_PULL_DISABLE>;
529 tx28_mac0_pins_gpio: tx28-mac0-gpio-pins {
531 MX28_PAD_ENET0_MDC__GPIO_4_0
532 MX28_PAD_ENET0_MDIO__GPIO_4_1
533 MX28_PAD_ENET0_RX_EN__GPIO_4_2
534 MX28_PAD_ENET0_RXD0__GPIO_4_3
535 MX28_PAD_ENET0_RXD1__GPIO_4_4
536 MX28_PAD_ENET0_TX_EN__GPIO_4_6
537 MX28_PAD_ENET0_TXD0__GPIO_4_7
538 MX28_PAD_ENET0_TXD1__GPIO_4_8
539 MX28_PAD_ENET_CLK__GPIO_4_16
541 fsl,drive-strength = <MXS_DRIVE_4mA>;
542 fsl,voltage = <MXS_VOLTAGE_HIGH>;
543 fsl,pull-up = <MXS_PULL_DISABLE>;
546 tx28_pca9554_pins: tx28-pca9554-pins {
548 MX28_PAD_PWM3__GPIO_3_28
550 fsl,drive-strength = <MXS_DRIVE_4mA>;
551 fsl,voltage = <MXS_VOLTAGE_HIGH>;
552 fsl,pull-up = <MXS_PULL_DISABLE>;
555 tx28_tsc2007_pins: tx28-tsc2007-pins {
557 MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
559 fsl,drive-strength = <MXS_DRIVE_4mA>;
560 fsl,voltage = <MXS_VOLTAGE_HIGH>;
561 fsl,pull-up = <MXS_PULL_DISABLE>;
565 tx28_usbphy0_pins: tx28-usbphy0-pins {
567 MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
568 MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
570 fsl,drive-strength = <MXS_DRIVE_12mA>;
571 fsl,voltage = <MXS_VOLTAGE_HIGH>;
572 fsl,pull-up = <MXS_PULL_DISABLE>;
575 tx28_usbphy1_pins: tx28-usbphy1-pins {
577 MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
578 MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
580 fsl,drive-strength = <MXS_DRIVE_12mA>;
581 fsl,voltage = <MXS_VOLTAGE_HIGH>;
582 fsl,pull-up = <MXS_PULL_DISABLE>;
587 pinctrl-names = "default";
588 pinctrl-0 = <&saif0_pins_b>;
594 pinctrl-names = "default";
595 pinctrl-0 = <&saif1_pins_a>;
600 compatible = "fsl,imx28-mmc";
601 pinctrl-names = "default", "special";
602 pinctrl-0 = <&mmc0_4bit_pins_a
610 compatible = "fsl,imx28-spi";
611 pinctrl-names = "default";
612 pinctrl-0 = <&spi3_pins_a>;
613 clock-frequency = <57600000>;
617 compatible = "spidev";
619 spi-max-frequency = <57600000>;
623 compatible = "spidev";
625 spi-max-frequency = <57600000>;
630 vbus-supply = <®_usb0_vbus>;
631 disable-over-current;
632 dr_mode = "peripheral";
637 vbus-supply = <®_usb1_vbus>;
638 disable-over-current;
644 pinctrl-names = "default";
645 pinctrl-0 = <&tx28_usbphy0_pins>;
651 pinctrl-names = "default";
652 pinctrl-0 = <&tx28_usbphy1_pins>;