]> git.karo-electronics.de Git - karo-tx-linux.git/blob - arch/arm/boot/dts/imx53-tx53-x03x.dts
7f0a7dd35c034fb99d0bd388ef1c36742d866911
[karo-tx-linux.git] / arch / arm / boot / dts / imx53-tx53-x03x.dts
1 /*
2  * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
3  *
4  * This file is dual-licensed: you can use it either under the terms
5  * of the GPL or the X11 license, at your option. Note that this dual
6  * licensing only applies to this file, and not this project as a
7  * whole.
8  *
9  *  a) This file is free software; you can redistribute it and/or
10  *     modify it under the terms of the GNU General Public License
11  *     version 2 as published by the Free Software Foundation.
12  *
13  *     This file is distributed in the hope that it will be useful,
14  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *     GNU General Public License for more details.
17  *
18  * Or, alternatively,
19  *
20  *  b) Permission is hereby granted, free of charge, to any person
21  *     obtaining a copy of this software and associated documentation
22  *     files (the "Software"), to deal in the Software without
23  *     restriction, including without limitation the rights to use,
24  *     copy, modify, merge, publish, distribute, sublicense, and/or
25  *     sell copies of the Software, and to permit persons to whom the
26  *     Software is furnished to do so, subject to the following
27  *     conditions:
28  *
29  *     The above copyright notice and this permission notice shall be
30  *     included in all copies or substantial portions of the Software.
31  *
32  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39  *     OTHER DEALINGS IN THE SOFTWARE.
40  */
41
42 /dts-v1/;
43 #include "imx53-tx53.dtsi"
44 #include <dt-bindings/input/input.h>
45 #include <dt-bindings/interrupt-controller/irq.h>
46 #include <dt-bindings/pwm/pwm.h>
47
48 / {
49         model = "Ka-Ro electronics TX53 module (LCD)";
50         compatible = "karo,tx53", "fsl,imx53";
51
52         aliases {
53                 display = &display;
54         };
55
56         soc {
57                 display: display@di0 {
58                         compatible = "fsl,imx-parallel-display";
59                         interface-pix-fmt = "rgb24";
60                         pinctrl-names = "default";
61                         pinctrl-0 = <&pinctrl_rgb24_vga1>;
62                         status = "okay";
63
64                         port {
65                                 display0_in: endpoint {
66                                         remote-endpoint = <&ipu_di0_disp0>;
67                                 };
68                         };
69
70                         display-timings {
71                                 VGA {
72                                         clock-frequency = <25200000>;
73                                         hactive = <640>;
74                                         vactive = <480>;
75                                         hback-porch = <48>;
76                                         hsync-len = <96>;
77                                         hfront-porch = <16>;
78                                         vback-porch = <31>;
79                                         vsync-len = <2>;
80                                         vfront-porch = <12>;
81                                         hsync-active = <0>;
82                                         vsync-active = <0>;
83                                         de-active = <1>;
84                                         pixelclk-active = <0>;
85                                 };
86
87                                 ETV570 {
88                                         clock-frequency = <25200000>;
89                                         hactive = <640>;
90                                         vactive = <480>;
91                                         hback-porch = <114>;
92                                         hsync-len = <30>;
93                                         hfront-porch = <16>;
94                                         vback-porch = <32>;
95                                         vsync-len = <3>;
96                                         vfront-porch = <10>;
97                                         hsync-active = <0>;
98                                         vsync-active = <0>;
99                                         de-active = <1>;
100                                         pixelclk-active = <0>;
101                                 };
102
103                                 ET0350 {
104                                         clock-frequency = <6413760>;
105                                         hactive = <320>;
106                                         vactive = <240>;
107                                         hback-porch = <34>;
108                                         hsync-len = <34>;
109                                         hfront-porch = <20>;
110                                         vback-porch = <15>;
111                                         vsync-len = <3>;
112                                         vfront-porch = <4>;
113                                         hsync-active = <0>;
114                                         vsync-active = <0>;
115                                         de-active = <1>;
116                                         pixelclk-active = <0>;
117                                 };
118
119                                 ET0430 {
120                                         clock-frequency = <9009000>;
121                                         hactive = <480>;
122                                         vactive = <272>;
123                                         hback-porch = <2>;
124                                         hsync-len = <41>;
125                                         hfront-porch = <2>;
126                                         vback-porch = <2>;
127                                         vsync-len = <10>;
128                                         vfront-porch = <2>;
129                                         hsync-active = <0>;
130                                         vsync-active = <0>;
131                                         de-active = <1>;
132                                         pixelclk-active = <1>;
133                                 };
134
135                                 ET0500 {
136                                         clock-frequency = <33264000>;
137                                         hactive = <800>;
138                                         vactive = <480>;
139                                         hback-porch = <88>;
140                                         hsync-len = <128>;
141                                         hfront-porch = <40>;
142                                         vback-porch = <33>;
143                                         vsync-len = <2>;
144                                         vfront-porch = <10>;
145                                         hsync-active = <0>;
146                                         vsync-active = <0>;
147                                         de-active = <1>;
148                                         pixelclk-active = <0>;
149                                 };
150
151                                 ET0700 { /* same as ET0500 */
152                                         clock-frequency = <33264000>;
153                                         hactive = <800>;
154                                         vactive = <480>;
155                                         hback-porch = <88>;
156                                         hsync-len = <128>;
157                                         hfront-porch = <40>;
158                                         vback-porch = <33>;
159                                         vsync-len = <2>;
160                                         vfront-porch = <10>;
161                                         hsync-active = <0>;
162                                         vsync-active = <0>;
163                                         de-active = <1>;
164                                         pixelclk-active = <0>;
165                                 };
166
167                                 ETQ570 {
168                                         clock-frequency = <6596040>;
169                                         hactive = <320>;
170                                         vactive = <240>;
171                                         hback-porch = <38>;
172                                         hsync-len = <30>;
173                                         hfront-porch = <30>;
174                                         vback-porch = <16>;
175                                         vsync-len = <3>;
176                                         vfront-porch = <4>;
177                                         hsync-active = <0>;
178                                         vsync-active = <0>;
179                                         de-active = <1>;
180                                         pixelclk-active = <0>;
181                                 };
182                         };
183                 };
184         };
185
186         backlight: backlight {
187                 compatible = "pwm-backlight";
188                 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
189                 power-supply = <&reg_3v3>;
190                 brightness-levels = <
191                           0  1  2  3  4  5  6  7  8  9
192                          10 11 12 13 14 15 16 17 18 19
193                          20 21 22 23 24 25 26 27 28 29
194                          30 31 32 33 34 35 36 37 38 39
195                          40 41 42 43 44 45 46 47 48 49
196                          50 51 52 53 54 55 56 57 58 59
197                          60 61 62 63 64 65 66 67 68 69
198                          70 71 72 73 74 75 76 77 78 79
199                          80 81 82 83 84 85 86 87 88 89
200                          90 91 92 93 94 95 96 97 98 99
201                         100
202                 >;
203                 default-brightness-level = <50>;
204         };
205
206         regulators {
207                 reg_lcd_pwr: regulator@5 {
208                         compatible = "regulator-fixed";
209                         reg = <5>;
210                         regulator-name = "LCD POWER";
211                         regulator-min-microvolt = <3300000>;
212                         regulator-max-microvolt = <3300000>;
213                         gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>;
214                         enable-active-high;
215                         regulator-boot-on;
216                 };
217
218                 reg_lcd_reset: regulator@6 {
219                         compatible = "regulator-fixed";
220                         reg = <6>;
221                         regulator-name = "LCD RESET";
222                         regulator-min-microvolt = <3300000>;
223                         regulator-max-microvolt = <3300000>;
224                         gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
225                         enable-active-high;
226                         regulator-boot-on;
227                 };
228         };
229 };
230
231 &i2c3 {
232         pinctrl-names = "default";
233         pinctrl-0 = <&pinctrl_i2c3>;
234         status = "okay";
235
236         sgtl5000: codec@0a {
237                 compatible = "fsl,sgtl5000";
238                 reg = <0x0a>;
239                 VDDA-supply = <&reg_2v5>;
240                 VDDIO-supply = <&reg_3v3>;
241                 clocks = <&mclk>;
242         };
243
244         polytouch: edt-ft5x06@38 {
245                 compatible = "edt,edt-ft5x06";
246                 reg = <0x38>;
247                 pinctrl-names = "default";
248                 pinctrl-0 = <&pinctrl_edt_ft5x06_1>;
249                 interrupt-parent = <&gpio6>;
250                 interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
251                 reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;
252                 wake-gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
253         };
254
255         touchscreen: tsc2007@48 {
256                 compatible = "ti,tsc2007";
257                 reg = <0x48>;
258                 pinctrl-names = "default";
259                 pinctrl-0 = <&pinctrl_tsc2007>;
260                 interrupt-parent = <&gpio3>;
261                 interrupts = <26 0>;
262                 gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
263                 ti,x-plate-ohms = <660>;
264                 wakeup-source;
265         };
266 };
267
268 &iomuxc {
269         imx53-tx53-x03x {
270                 pinctrl_edt_ft5x06_1: edt-ft5x06grp-1 {
271                         fsl,pins = <
272                                 MX53_PAD_NANDF_CS2__GPIO6_15 0x1f0 /* Interrupt */
273                                 MX53_PAD_EIM_A16__GPIO2_22   0x04 /* Reset */
274                                 MX53_PAD_EIM_A17__GPIO2_21   0x04 /* Wake */
275                         >;
276                 };
277
278                 pinctrl_kpp: kppgrp {
279                         fsl,pins = <
280                                 MX53_PAD_GPIO_9__KPP_COL_6 0x1f4
281                                 MX53_PAD_GPIO_4__KPP_COL_7 0x1f4
282                                 MX53_PAD_KEY_COL2__KPP_COL_2 0x1f4
283                                 MX53_PAD_KEY_COL3__KPP_COL_3 0x1f4
284                                 MX53_PAD_GPIO_2__KPP_ROW_6 0x1f4
285                                 MX53_PAD_GPIO_5__KPP_ROW_7 0x1f4
286                                 MX53_PAD_KEY_ROW2__KPP_ROW_2 0x1f4
287                                 MX53_PAD_KEY_ROW3__KPP_ROW_3 0x1f4
288                         >;
289                 };
290
291                 pinctrl_rgb24_vga1: rgb24-vgagrp1 {
292                         fsl,pins = <
293                                 MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK         0x5
294                                 MX53_PAD_DI0_PIN15__IPU_DI0_PIN15               0x5
295                                 MX53_PAD_DI0_PIN2__IPU_DI0_PIN2                 0x5
296                                 MX53_PAD_DI0_PIN3__IPU_DI0_PIN3                 0x5
297                                 MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0            0x5
298                                 MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1            0x5
299                                 MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2            0x5
300                                 MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3            0x5
301                                 MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4            0x5
302                                 MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5            0x5
303                                 MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6            0x5
304                                 MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7            0x5
305                                 MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8            0x5
306                                 MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9            0x5
307                                 MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10          0x5
308                                 MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11          0x5
309                                 MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12          0x5
310                                 MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13          0x5
311                                 MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14          0x5
312                                 MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15          0x5
313                                 MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16          0x5
314                                 MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17          0x5
315                                 MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18          0x5
316                                 MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19          0x5
317                                 MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20          0x5
318                                 MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21          0x5
319                                 MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22          0x5
320                                 MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23          0x5
321                         >;
322                 };
323
324                 pinctrl_tsc2007: tsc2007grp {
325                         fsl,pins = <
326                                 MX53_PAD_EIM_D26__GPIO3_26 0x1f0 /* Interrupt */
327                         >;
328                 };
329         };
330 };
331
332 &ipu_di0_disp0 {
333         remote-endpoint = <&display0_in>;
334 };
335
336 &kpp {
337         pinctrl-names = "default";
338         pinctrl-0 = <&pinctrl_kpp>;
339         /* sample keymap */
340         /* row/col 0,1 are mapped to KPP row/col 6,7 */
341         linux,keymap = <
342                 MATRIX_KEY(6, 6, KEY_POWER)
343                 MATRIX_KEY(6, 7, KEY_KP0)
344                 MATRIX_KEY(6, 2, KEY_KP1)
345                 MATRIX_KEY(6, 3, KEY_KP2)
346                 MATRIX_KEY(7, 6, KEY_KP3)
347                 MATRIX_KEY(7, 7, KEY_KP4)
348                 MATRIX_KEY(7, 2, KEY_KP5)
349                 MATRIX_KEY(7, 3, KEY_KP6)
350                 MATRIX_KEY(2, 6, KEY_KP7)
351                 MATRIX_KEY(2, 7, KEY_KP8)
352                 MATRIX_KEY(2, 2, KEY_KP9)
353         >;
354         status = "okay";
355 };