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;
37 reg = <0 0>; /* will be filled in by U-Boot */
41 compatible = "w1-gpio";
42 gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
47 compatible = "simple-bus";
51 reg_usb0_vbus: regulator@0 {
52 compatible = "regulator-fixed";
54 regulator-name = "usb0_vbus";
55 regulator-min-microvolt = <5000000>;
56 regulator-max-microvolt = <5000000>;
57 gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
61 reg_usb1_vbus: regulator@1 {
62 compatible = "regulator-fixed";
64 regulator-name = "usb1_vbus";
65 regulator-min-microvolt = <5000000>;
66 regulator-max-microvolt = <5000000>;
67 gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
71 reg_2p5v: regulator@2 {
72 compatible = "regulator-fixed";
74 regulator-name = "2P5V";
75 regulator-min-microvolt = <2500000>;
76 regulator-max-microvolt = <2500000>;
80 reg_3p3v: regulator@3 {
81 compatible = "regulator-fixed";
83 regulator-name = "3P3V";
84 regulator-min-microvolt = <3300000>;
85 regulator-max-microvolt = <3300000>;
89 reg_can_xcvr: regulator@4 {
90 compatible = "regulator-fixed";
92 regulator-name = "CAN XCVR";
93 regulator-min-microvolt = <3300000>;
94 regulator-max-microvolt = <3300000>;
95 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
96 pinctrl-names = "default";
97 pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
100 reg_lcd: regulator@5 {
101 compatible = "regulator-fixed";
103 regulator-name = "LCD POWER";
104 regulator-min-microvolt = <3300000>;
105 regulator-max-microvolt = <3300000>;
106 gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
110 reg_lcd_reset: regulator@6 {
111 compatible = "regulator-fixed";
113 regulator-name = "LCD RESET";
114 regulator-min-microvolt = <3300000>;
115 regulator-max-microvolt = <3300000>;
116 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
117 startup-delay-us = <300000>;
125 #address-cells = <1>;
128 compatible = "fixed-clock";
131 clock-frequency = <27000000>;
136 compatible = "fsl,imx28-tx28-sgtl5000",
137 "fsl,mxs-audio-sgtl5000";
138 model = "imx28-tx28-sgtl5000";
139 saif-controllers = <&saif0 &saif1>;
140 audio-codec = <&sgtl5000>;
144 compatible = "gpio-leds";
148 gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
149 linux,default-trigger = "heartbeat";
154 compatible = "pwm-backlight";
155 pwms = <&pwm 0 500000>;
157 * a silly way to create a 1:1 relationship between the
158 * PWM value and the actual duty cycle
160 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
161 10 11 12 13 14 15 16 17 18 19
162 20 21 22 23 24 25 26 27 28 29
163 30 31 32 33 34 35 36 37 38 39
164 40 41 42 43 44 45 46 47 48 49
165 50 51 52 53 54 55 56 57 58 59
166 60 61 62 63 64 65 66 67 68 69
167 70 71 72 73 74 75 76 77 78 79
168 80 81 82 83 84 85 86 87 88 89
169 90 91 92 93 94 95 96 97 98 99
171 default-brightness-level = <50>;
174 matrix_keypad: matrix-keypad@0 {
175 compatible = "gpio-matrix-keypad";
177 &gpio5 0 GPIO_ACTIVE_HIGH
178 &gpio5 1 GPIO_ACTIVE_HIGH
179 &gpio5 2 GPIO_ACTIVE_HIGH
180 &gpio5 3 GPIO_ACTIVE_HIGH
183 &gpio5 4 GPIO_ACTIVE_HIGH
184 &gpio5 5 GPIO_ACTIVE_HIGH
185 &gpio5 6 GPIO_ACTIVE_HIGH
186 &gpio5 7 GPIO_ACTIVE_HIGH
190 0x00000074 /* row 0, col 0, KEY_POWER */
191 0x00010052 /* row 0, col 1, KEY_KP0 */
192 0x0002004f /* row 0, col 2, KEY_KP1 */
193 0x00030050 /* row 0, col 3, KEY_KP2 */
194 0x01000051 /* row 1, col 0, KEY_KP3 */
195 0x0101004b /* row 1, col 1, KEY_KP4 */
196 0x0102004c /* row 1, col 2, KEY_KP5 */
197 0x0103004d /* row 1, col 3, KEY_KP6 */
198 0x02000047 /* row 2, col 0, KEY_KP7 */
199 0x02010048 /* row 2, col 1, KEY_KP8 */
200 0x02020049 /* row 2, col 2, KEY_KP9 */
204 debounce-delay-ms = <100>;
205 col-scan-delay-us = <5000>;
210 compatible = "spi-gpio";
211 #address-cells = <1>;
213 pinctrl-names = "default";
214 pinctrl-0 = <&tx28_spi_gpio_pins>;
216 gpio-sck = <&gpio2 24 GPIO_ACTIVE_HIGH>;
217 gpio-mosi = <&gpio2 25 GPIO_ACTIVE_HIGH>;
218 gpio-miso = <&gpio2 26 GPIO_ACTIVE_HIGH>;
219 num-chipselects = <3>;
221 &gpio2 27 GPIO_ACTIVE_LOW
222 &gpio3 8 GPIO_ACTIVE_LOW
223 &gpio3 9 GPIO_ACTIVE_LOW
225 /* enable this and disable ssp3 below, if you need full duplex SPI transfer */
229 compatible = "spidev";
231 spi-max-frequency = <57600000>;
235 compatible = "spidev";
237 spi-max-frequency = <57600000>;
241 compatible = "spidev";
243 spi-max-frequency = <57600000>;
248 /* 2nd TX-Std UART - (A)UART1 */
250 pinctrl-names = "default";
251 pinctrl-0 = <&auart1_pins_a>;
255 /* 3rd TX-Std UART - (A)UART3 */
257 pinctrl-names = "default";
258 pinctrl-0 = <&auart3_pins_a>;
263 pinctrl-names = "default";
264 pinctrl-0 = <&can0_pins_a>;
265 xceiver-supply = <®_can_xcvr>;
270 pinctrl-names = "default";
271 pinctrl-0 = <&can1_pins_a>;
272 xceiver-supply = <®_can_xcvr>;
280 /* 1st TX-Std UART - (D)UART */
282 pinctrl-names = "default";
283 pinctrl-0 = <&duart_4pins_a>;
288 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
294 pinctrl-names = "default";
295 pinctrl-0 = <&i2c0_pins_a>;
296 clock-frequency = <400000>;
299 sgtl5000: sgtl5000@0a {
300 compatible = "fsl,sgtl5000";
302 VDDA-supply = <®_2p5v>;
303 VDDIO-supply = <®_3p3v>;
308 compatible = "nxp,pca9554";
310 pinctrl-names = "default";
311 pinctrl-0 = <&tx28_pca9554_pins>;
312 interrupt-parent = <&gpio3>;
316 interrupt-controller;
317 #interrupt-cells = <2>;
320 polytouch: edt-ft5x06@38 {
321 compatible = "edt,edt-ft5x06";
323 pinctrl-names = "default";
324 pinctrl-0 = <&tx28_edt_ft5x06_pins>;
325 interrupt-parent = <&gpio2>;
327 reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
328 wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
331 touchscreen: tsc2007@48 {
332 compatible = "ti,tsc2007";
334 pinctrl-names = "default";
335 pinctrl-0 = <&tx28_tsc2007_pins>;
336 interrupt-parent = <&gpio3>;
338 pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
339 ti,x-plate-ohms = /bits/ 16 <660>;
343 compatible = "mxim,ds1339";
349 pinctrl-names = "default";
350 pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
351 lcd-supply = <®_lcd>;
352 display = <&display>;
356 bits-per-pixel = <32>;
359 native-mode = <&timing5>;
362 clock-frequency = <25175000>;
374 pixelclk-active = <1>;
378 panel-name = "ETV570";
379 clock-frequency = <25175000>;
391 pixelclk-active = <1>;
395 panel-name = "ET0350";
396 clock-frequency = <6500000>;
408 pixelclk-active = <1>;
412 panel-name = "ET0430";
413 clock-frequency = <9000000>;
425 pixelclk-active = <1>;
429 panel-name = "ET0500", "ET0700";
430 clock-frequency = <33260000>;
442 pixelclk-active = <1>;
446 panel-name = "ETQ570";
447 clock-frequency = <6400000>;
459 pixelclk-active = <1>;
466 fsl,lradc-touchscreen-wires = <4>;
472 pinctrl-names = "default", "gpio_mode";
473 pinctrl-0 = <&mac0_pins_a>;
474 pinctrl-1 = <&tx28_mac0_pins_gpio>;
480 pinctrl-names = "default";
481 pinctrl-0 = <&mac1_pins_a>;
482 /* not enabled by default */
494 pinctrl-names = "default";
495 pinctrl-0 = <&pwm0_pins_a>;
500 pinctrl-names = "default";
501 pinctrl-0 = <&hog_pins_a>;
506 MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
508 fsl,drive-strength = <MXS_DRIVE_4mA>;
509 fsl,voltage = <MXS_VOLTAGE_HIGH>;
510 fsl,pull-up = <MXS_PULL_DISABLE>;
513 tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins {
515 MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
516 MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
517 MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
519 fsl,drive-strength = <MXS_DRIVE_4mA>;
520 fsl,voltage = <MXS_VOLTAGE_HIGH>;
521 fsl,pull-up = <MXS_PULL_DISABLE>;
524 tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins {
526 MX28_PAD_LCD_D00__GPIO_1_0
528 fsl,drive-strength = <MXS_DRIVE_4mA>;
529 fsl,voltage = <MXS_VOLTAGE_HIGH>;
530 fsl,pull-up = <MXS_PULL_DISABLE>;
533 tx28_lcdif_23bit_pins: tx28-lcdif-23bit {
535 /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
536 MX28_PAD_LCD_D01__LCD_D1
537 MX28_PAD_LCD_D02__LCD_D2
538 MX28_PAD_LCD_D03__LCD_D3
539 MX28_PAD_LCD_D04__LCD_D4
540 MX28_PAD_LCD_D05__LCD_D5
541 MX28_PAD_LCD_D06__LCD_D6
542 MX28_PAD_LCD_D07__LCD_D7
543 MX28_PAD_LCD_D08__LCD_D8
544 MX28_PAD_LCD_D09__LCD_D9
545 MX28_PAD_LCD_D10__LCD_D10
546 MX28_PAD_LCD_D11__LCD_D11
547 MX28_PAD_LCD_D12__LCD_D12
548 MX28_PAD_LCD_D13__LCD_D13
549 MX28_PAD_LCD_D14__LCD_D14
550 MX28_PAD_LCD_D15__LCD_D15
551 MX28_PAD_LCD_D16__LCD_D16
552 MX28_PAD_LCD_D17__LCD_D17
553 MX28_PAD_LCD_D18__LCD_D18
554 MX28_PAD_LCD_D19__LCD_D19
555 MX28_PAD_LCD_D20__LCD_D20
556 MX28_PAD_LCD_D21__LCD_D21
557 MX28_PAD_LCD_D22__LCD_D22
558 MX28_PAD_LCD_D23__LCD_D23
560 fsl,drive-strength = <MXS_DRIVE_4mA>;
561 fsl,voltage = <MXS_VOLTAGE_HIGH>;
562 fsl,pull-up = <MXS_PULL_DISABLE>;
565 tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl {
567 MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
568 MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */
570 fsl,drive-strength = <MXS_DRIVE_4mA>;
571 fsl,voltage = <MXS_VOLTAGE_HIGH>;
572 fsl,pull-up = <MXS_PULL_DISABLE>;
575 tx28_mac0_pins_gpio: tx28-mac0-gpio-pins {
577 MX28_PAD_ENET0_MDC__GPIO_4_0
578 MX28_PAD_ENET0_MDIO__GPIO_4_1
579 MX28_PAD_ENET0_RX_EN__GPIO_4_2
580 MX28_PAD_ENET0_RXD0__GPIO_4_3
581 MX28_PAD_ENET0_RXD1__GPIO_4_4
582 MX28_PAD_ENET0_TX_EN__GPIO_4_6
583 MX28_PAD_ENET0_TXD0__GPIO_4_7
584 MX28_PAD_ENET0_TXD1__GPIO_4_8
585 MX28_PAD_ENET_CLK__GPIO_4_16
587 fsl,drive-strength = <MXS_DRIVE_4mA>;
588 fsl,voltage = <MXS_VOLTAGE_HIGH>;
589 fsl,pull-up = <MXS_PULL_DISABLE>;
592 tx28_pca9554_pins: tx28-pca9554-pins {
594 MX28_PAD_PWM3__GPIO_3_28
596 fsl,drive-strength = <MXS_DRIVE_4mA>;
597 fsl,voltage = <MXS_VOLTAGE_HIGH>;
598 fsl,pull-up = <MXS_PULL_DISABLE>;
601 tx28_spi_gpio_pins: spi-gpiogrp {
603 MX28_PAD_AUART2_RX__GPIO_3_8
604 MX28_PAD_AUART2_TX__GPIO_3_9
605 MX28_PAD_SSP3_SCK__GPIO_2_24
606 MX28_PAD_SSP3_MOSI__GPIO_2_25
607 MX28_PAD_SSP3_MISO__GPIO_2_26
608 MX28_PAD_SSP3_SS0__GPIO_2_27
610 fsl,drive-strength = <MXS_DRIVE_8mA>;
611 fsl,voltage = <MXS_VOLTAGE_HIGH>;
612 fsl,pull-up = <MXS_PULL_DISABLE>;
615 tx28_tsc2007_pins: tx28-tsc2007-pins {
617 MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
619 fsl,drive-strength = <MXS_DRIVE_4mA>;
620 fsl,voltage = <MXS_VOLTAGE_HIGH>;
621 fsl,pull-up = <MXS_PULL_DISABLE>;
625 tx28_usbphy0_pins: tx28-usbphy0-pins {
627 MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
628 MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
630 fsl,drive-strength = <MXS_DRIVE_12mA>;
631 fsl,voltage = <MXS_VOLTAGE_HIGH>;
632 fsl,pull-up = <MXS_PULL_DISABLE>;
635 tx28_usbphy1_pins: tx28-usbphy1-pins {
637 MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
638 MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
640 fsl,drive-strength = <MXS_DRIVE_12mA>;
641 fsl,voltage = <MXS_VOLTAGE_HIGH>;
642 fsl,pull-up = <MXS_PULL_DISABLE>;
647 pinctrl-names = "default";
648 pinctrl-0 = <&saif0_pins_b>;
654 pinctrl-names = "default";
655 pinctrl-0 = <&saif1_pins_a>;
660 compatible = "fsl,imx28-mmc";
661 pinctrl-names = "default", "special";
662 pinctrl-0 = <&mmc0_4bit_pins_a
670 compatible = "fsl,imx28-spi";
671 pinctrl-names = "default";
672 pinctrl-0 = <&spi3_pins_a>;
673 clock-frequency = <57600000>;
677 compatible = "spidev";
679 spi-max-frequency = <57600000>;
683 compatible = "spidev";
685 spi-max-frequency = <57600000>;
689 compatible = "spidev";
691 spi-max-frequency = <57600000>;
696 vbus-supply = <®_usb0_vbus>;
697 disable-over-current;
698 dr_mode = "peripheral";
703 vbus-supply = <®_usb1_vbus>;
704 disable-over-current;
710 pinctrl-names = "default";
711 pinctrl-0 = <&tx28_usbphy0_pins>;
717 pinctrl-names = "default";
718 pinctrl-0 = <&tx28_usbphy1_pins>;