2 * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
3 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
45 #include <dt-bindings/gpio/gpio.h>
46 #include <dt-bindings/interrupt-controller/irq.h>
49 model = "Ka-Ro electronics TX28 module";
50 compatible = "karo,tx28", "fsl,imx28";
59 lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
60 lcdif_24bit_pins = &lcdif_24bit_pins_a;
61 reg_can_xcvr = ®_can_xcvr;
69 reg = <0x40000000 0>; /* will be filled in by U-Boot */
73 compatible = "w1-gpio";
74 gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
78 reg_usb0_vbus: regulator-usb0-vbus {
79 compatible = "regulator-fixed";
80 regulator-name = "usb0_vbus";
81 regulator-min-microvolt = <5000000>;
82 regulator-max-microvolt = <5000000>;
83 gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
87 reg_usb1_vbus: regulator-usb1-vbus {
88 compatible = "regulator-fixed";
89 regulator-name = "usb1_vbus";
90 regulator-min-microvolt = <5000000>;
91 regulator-max-microvolt = <5000000>;
92 gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
96 reg_2p5v: regulator-2p5v {
97 compatible = "regulator-fixed";
98 regulator-name = "2P5V";
99 regulator-min-microvolt = <2500000>;
100 regulator-max-microvolt = <2500000>;
104 reg_3p3v: regulator-3p3v {
105 compatible = "regulator-fixed";
106 regulator-name = "3P3V";
107 regulator-min-microvolt = <3300000>;
108 regulator-max-microvolt = <3300000>;
112 reg_can_xcvr: regulator-can-xcvr {
113 compatible = "regulator-fixed";
114 regulator-name = "CAN XCVR";
115 regulator-min-microvolt = <3300000>;
116 regulator-max-microvolt = <3300000>;
117 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
118 pinctrl-names = "default";
119 pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
122 reg_lcd: regulator-lcd-power {
123 compatible = "regulator-fixed";
124 regulator-name = "LCD POWER";
125 regulator-min-microvolt = <3300000>;
126 regulator-max-microvolt = <3300000>;
127 gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
131 reg_lcd_reset: regulator-lcd-reset {
132 compatible = "regulator-fixed";
133 regulator-name = "LCD RESET";
134 regulator-min-microvolt = <3300000>;
135 regulator-max-microvolt = <3300000>;
136 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
137 startup-delay-us = <300000>;
144 compatible = "fixed-clock";
146 clock-frequency = <26000000>;
150 compatible = "fsl,imx28-tx28-sgtl5000",
151 "fsl,mxs-audio-sgtl5000";
152 model = "imx28-tx28-sgtl5000";
153 saif-controllers = <&saif0 &saif1>;
154 audio-codec = <&sgtl5000>;
158 compatible = "gpio-leds";
162 gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
163 linux,default-trigger = "heartbeat";
168 compatible = "pwm-backlight";
169 pwms = <&pwm 0 500000>;
171 * a silly way to create a 1:1 relationship between the
172 * PWM value and the actual duty cycle
174 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
175 10 11 12 13 14 15 16 17 18 19
176 20 21 22 23 24 25 26 27 28 29
177 30 31 32 33 34 35 36 37 38 39
178 40 41 42 43 44 45 46 47 48 49
179 50 51 52 53 54 55 56 57 58 59
180 60 61 62 63 64 65 66 67 68 69
181 70 71 72 73 74 75 76 77 78 79
182 80 81 82 83 84 85 86 87 88 89
183 90 91 92 93 94 95 96 97 98 99
185 default-brightness-level = <50>;
188 matrix_keypad: matrix-keypad {
189 compatible = "gpio-matrix-keypad";
191 &gpio5 0 GPIO_ACTIVE_HIGH
192 &gpio5 1 GPIO_ACTIVE_HIGH
193 &gpio5 2 GPIO_ACTIVE_HIGH
194 &gpio5 3 GPIO_ACTIVE_HIGH
197 &gpio5 4 GPIO_ACTIVE_HIGH
198 &gpio5 5 GPIO_ACTIVE_HIGH
199 &gpio5 6 GPIO_ACTIVE_HIGH
200 &gpio5 7 GPIO_ACTIVE_HIGH
204 0x00000074 /* row 0, col 0, KEY_POWER */
205 0x00010052 /* row 0, col 1, KEY_KP0 */
206 0x0002004f /* row 0, col 2, KEY_KP1 */
207 0x00030050 /* row 0, col 3, KEY_KP2 */
208 0x01000051 /* row 1, col 0, KEY_KP3 */
209 0x0101004b /* row 1, col 1, KEY_KP4 */
210 0x0102004c /* row 1, col 2, KEY_KP5 */
211 0x0103004d /* row 1, col 3, KEY_KP6 */
212 0x02000047 /* row 2, col 0, KEY_KP7 */
213 0x02010048 /* row 2, col 1, KEY_KP8 */
214 0x02020049 /* row 2, col 2, KEY_KP9 */
218 debounce-delay-ms = <100>;
219 col-scan-delay-us = <5000>;
224 compatible = "spi-gpio";
225 #address-cells = <1>;
227 pinctrl-names = "default";
228 pinctrl-0 = <&tx28_spi_gpio_pins>;
230 gpio-sck = <&gpio2 24 GPIO_ACTIVE_HIGH>;
231 gpio-mosi = <&gpio2 25 GPIO_ACTIVE_HIGH>;
232 gpio-miso = <&gpio2 26 GPIO_ACTIVE_HIGH>;
233 num-chipselects = <3>;
235 &gpio2 27 GPIO_ACTIVE_LOW
236 &gpio3 8 GPIO_ACTIVE_LOW
237 &gpio3 9 GPIO_ACTIVE_LOW
239 /* enable this and disable ssp3 below, if you need full duplex SPI transfer */
243 compatible = "spidev";
245 spi-max-frequency = <57600000>;
249 compatible = "spidev";
251 spi-max-frequency = <57600000>;
255 compatible = "spidev";
257 spi-max-frequency = <57600000>;
262 /* 2nd TX-Std UART - (A)UART1 */
264 pinctrl-names = "default";
265 pinctrl-0 = <&auart1_pins_a>;
269 /* 3rd TX-Std UART - (A)UART3 */
271 pinctrl-names = "default";
272 pinctrl-0 = <&auart3_pins_a>;
277 pinctrl-names = "default";
278 pinctrl-0 = <&can0_pins_a>;
279 xceiver-supply = <®_can_xcvr>;
284 pinctrl-names = "default";
285 pinctrl-0 = <&can1_pins_a>;
286 xceiver-supply = <®_can_xcvr>;
294 /* 1st TX-Std UART - (D)UART */
296 pinctrl-names = "default";
297 pinctrl-0 = <&duart_4pins_a>;
302 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
308 pinctrl-names = "default";
309 pinctrl-0 = <&i2c0_pins_a>;
310 clock-frequency = <400000>;
313 sgtl5000: sgtl5000@a {
314 compatible = "fsl,sgtl5000";
316 VDDA-supply = <®_2p5v>;
317 VDDIO-supply = <®_3p3v>;
322 compatible = "nxp,pca9554";
324 pinctrl-names = "default";
325 pinctrl-0 = <&tx28_pca9554_pins>;
326 interrupt-parent = <&gpio3>;
327 interrupts = <28 IRQ_TYPE_NONE>;
330 interrupt-controller;
331 #interrupt-cells = <2>;
334 polytouch: edt-ft5x06@38 {
335 compatible = "edt,edt-ft5x06";
337 pinctrl-names = "default";
338 pinctrl-0 = <&tx28_edt_ft5x06_pins>;
339 interrupt-parent = <&gpio2>;
340 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
341 reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
342 wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
346 touchscreen: tsc2007@48 {
347 compatible = "ti,tsc2007";
349 pinctrl-names = "default";
350 pinctrl-0 = <&tx28_tsc2007_pins>;
351 interrupt-parent = <&gpio3>;
352 interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
353 pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
354 ti,x-plate-ohms = /bits/ 16 <660>;
358 compatible = "mxim,ds1339";
360 trickle-resistor-ohms = <250>;
361 trickle-diode-disable;
366 pinctrl-names = "default";
367 pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
368 lcd-supply = <®_lcd>;
369 display = <&display0>;
373 bits-per-pixel = <32>;
376 native-mode = <&timing5>;
379 clock-frequency = <25175000>;
391 pixelclk-active = <1>;
395 panel-name = "ETV570";
396 clock-frequency = <25175000>;
408 pixelclk-active = <1>;
412 panel-name = "ET0350";
413 clock-frequency = <6500000>;
425 pixelclk-active = <1>;
429 panel-name = "ET0430";
430 clock-frequency = <9000000>;
442 pixelclk-active = <1>;
446 panel-name = "ET0500", "ET0700";
447 clock-frequency = <33260000>;
459 pixelclk-active = <1>;
463 panel-name = "ETQ570";
464 clock-frequency = <6400000>;
476 pixelclk-active = <1>;
483 fsl,lradc-touchscreen-wires = <4>;
489 pinctrl-names = "default", "gpio_mode";
490 pinctrl-0 = <&mac0_pins_a>;
491 pinctrl-1 = <&tx28_mac0_pins_gpio>;
497 pinctrl-names = "default";
498 pinctrl-0 = <&mac1_pins_a>;
499 /* not enabled by default */
511 pinctrl-names = "default";
512 pinctrl-0 = <&pwm0_pins_a>;
517 pinctrl-names = "default";
518 pinctrl-0 = <&hog_pins_a>;
523 MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
525 fsl,drive-strength = <MXS_DRIVE_4mA>;
526 fsl,voltage = <MXS_VOLTAGE_HIGH>;
527 fsl,pull-up = <MXS_PULL_DISABLE>;
530 tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins@0 {
533 MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
534 MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
535 MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
537 fsl,drive-strength = <MXS_DRIVE_4mA>;
538 fsl,voltage = <MXS_VOLTAGE_HIGH>;
539 fsl,pull-up = <MXS_PULL_DISABLE>;
542 tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins@0 {
545 MX28_PAD_LCD_D00__GPIO_1_0
547 fsl,drive-strength = <MXS_DRIVE_4mA>;
548 fsl,voltage = <MXS_VOLTAGE_HIGH>;
549 fsl,pull-up = <MXS_PULL_DISABLE>;
552 tx28_lcdif_23bit_pins: tx28-lcdif-23bit@0 {
555 /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
556 MX28_PAD_LCD_D01__LCD_D1
557 MX28_PAD_LCD_D02__LCD_D2
558 MX28_PAD_LCD_D03__LCD_D3
559 MX28_PAD_LCD_D04__LCD_D4
560 MX28_PAD_LCD_D05__LCD_D5
561 MX28_PAD_LCD_D06__LCD_D6
562 MX28_PAD_LCD_D07__LCD_D7
563 MX28_PAD_LCD_D08__LCD_D8
564 MX28_PAD_LCD_D09__LCD_D9
565 MX28_PAD_LCD_D10__LCD_D10
566 MX28_PAD_LCD_D11__LCD_D11
567 MX28_PAD_LCD_D12__LCD_D12
568 MX28_PAD_LCD_D13__LCD_D13
569 MX28_PAD_LCD_D14__LCD_D14
570 MX28_PAD_LCD_D15__LCD_D15
571 MX28_PAD_LCD_D16__LCD_D16
572 MX28_PAD_LCD_D17__LCD_D17
573 MX28_PAD_LCD_D18__LCD_D18
574 MX28_PAD_LCD_D19__LCD_D19
575 MX28_PAD_LCD_D20__LCD_D20
576 MX28_PAD_LCD_D21__LCD_D21
577 MX28_PAD_LCD_D22__LCD_D22
578 MX28_PAD_LCD_D23__LCD_D23
580 fsl,drive-strength = <MXS_DRIVE_4mA>;
581 fsl,voltage = <MXS_VOLTAGE_HIGH>;
582 fsl,pull-up = <MXS_PULL_DISABLE>;
585 tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl@0 {
588 MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
589 MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */
591 fsl,drive-strength = <MXS_DRIVE_4mA>;
592 fsl,voltage = <MXS_VOLTAGE_HIGH>;
593 fsl,pull-up = <MXS_PULL_DISABLE>;
596 tx28_mac0_pins_gpio: tx28-mac0-gpio-pins@0 {
599 MX28_PAD_ENET0_MDC__GPIO_4_0
600 MX28_PAD_ENET0_MDIO__GPIO_4_1
601 MX28_PAD_ENET0_RX_EN__GPIO_4_2
602 MX28_PAD_ENET0_RXD0__GPIO_4_3
603 MX28_PAD_ENET0_RXD1__GPIO_4_4
604 MX28_PAD_ENET0_TX_EN__GPIO_4_6
605 MX28_PAD_ENET0_TXD0__GPIO_4_7
606 MX28_PAD_ENET0_TXD1__GPIO_4_8
607 MX28_PAD_ENET_CLK__GPIO_4_16
609 fsl,drive-strength = <MXS_DRIVE_4mA>;
610 fsl,voltage = <MXS_VOLTAGE_HIGH>;
611 fsl,pull-up = <MXS_PULL_DISABLE>;
614 tx28_pca9554_pins: tx28-pca9554-pins@0 {
617 MX28_PAD_PWM3__GPIO_3_28
619 fsl,drive-strength = <MXS_DRIVE_4mA>;
620 fsl,voltage = <MXS_VOLTAGE_HIGH>;
621 fsl,pull-up = <MXS_PULL_DISABLE>;
624 tx28_spi_gpio_pins: spi-gpiogrp@0 {
627 MX28_PAD_AUART2_RX__GPIO_3_8
628 MX28_PAD_AUART2_TX__GPIO_3_9
629 MX28_PAD_SSP3_SCK__GPIO_2_24
630 MX28_PAD_SSP3_MOSI__GPIO_2_25
631 MX28_PAD_SSP3_MISO__GPIO_2_26
632 MX28_PAD_SSP3_SS0__GPIO_2_27
634 fsl,drive-strength = <MXS_DRIVE_8mA>;
635 fsl,voltage = <MXS_VOLTAGE_HIGH>;
636 fsl,pull-up = <MXS_PULL_DISABLE>;
639 tx28_tsc2007_pins: tx28-tsc2007-pins@0 {
642 MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
644 fsl,drive-strength = <MXS_DRIVE_4mA>;
645 fsl,voltage = <MXS_VOLTAGE_HIGH>;
646 fsl,pull-up = <MXS_PULL_DISABLE>;
650 tx28_usbphy0_pins: tx28-usbphy0-pins@0 {
653 MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
654 MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
656 fsl,drive-strength = <MXS_DRIVE_12mA>;
657 fsl,voltage = <MXS_VOLTAGE_HIGH>;
658 fsl,pull-up = <MXS_PULL_DISABLE>;
661 tx28_usbphy1_pins: tx28-usbphy1-pins@0 {
664 MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
665 MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
667 fsl,drive-strength = <MXS_DRIVE_12mA>;
668 fsl,voltage = <MXS_VOLTAGE_HIGH>;
669 fsl,pull-up = <MXS_PULL_DISABLE>;
674 pinctrl-names = "default";
675 pinctrl-0 = <&saif0_pins_b>;
681 pinctrl-names = "default";
682 pinctrl-0 = <&saif1_pins_a>;
687 compatible = "fsl,imx28-mmc";
688 pinctrl-names = "default", "special";
689 pinctrl-0 = <&mmc0_4bit_pins_a
697 compatible = "fsl,imx28-spi";
698 pinctrl-names = "default";
699 pinctrl-0 = <&spi3_pins_a>;
700 clock-frequency = <57600000>;
704 compatible = "spidev";
706 spi-max-frequency = <57600000>;
710 compatible = "spidev";
712 spi-max-frequency = <57600000>;
716 compatible = "spidev";
718 spi-max-frequency = <57600000>;
723 vbus-supply = <®_usb0_vbus>;
724 disable-over-current;
725 dr_mode = "peripheral";
730 vbus-supply = <®_usb1_vbus>;
731 disable-over-current;
737 pinctrl-names = "default";
738 pinctrl-0 = <&tx28_usbphy0_pins>;
744 pinctrl-names = "default";
745 pinctrl-0 = <&tx28_usbphy1_pins>;