xref: /linux/scripts/dtc/include-prefixes/arm/nxp/imx/imx53-tx53-x03x.dts (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
1// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
2/*
3 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
4 */
5
6/dts-v1/;
7#include "imx53-tx53.dtsi"
8#include <dt-bindings/input/input.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/pwm/pwm.h>
11
12/ {
13	model = "Ka-Ro electronics TX53 module (LCD)";
14	compatible = "karo,tx53", "fsl,imx53";
15
16	aliases {
17		display = &display;
18	};
19
20	display: disp0 {
21		compatible = "fsl,imx-parallel-display";
22		interface-pix-fmt = "rgb24";
23		pinctrl-names = "default";
24		pinctrl-0 = <&pinctrl_rgb24_vga1>;
25		status = "okay";
26
27		port {
28			display0_in: endpoint {
29				remote-endpoint = <&ipu_di0_disp0>;
30			};
31		};
32
33		display-timings {
34			timing-vga {
35				clock-frequency = <25200000>;
36				hactive = <640>;
37				vactive = <480>;
38				hback-porch = <48>;
39				hsync-len = <96>;
40				hfront-porch = <16>;
41				vback-porch = <31>;
42				vsync-len = <2>;
43				vfront-porch = <12>;
44				hsync-active = <0>;
45				vsync-active = <0>;
46				de-active = <1>;
47				pixelclk-active = <0>;
48			};
49
50			timing-etc570 {
51				clock-frequency = <25200000>;
52				hactive = <640>;
53				vactive = <480>;
54				hback-porch = <114>;
55				hsync-len = <30>;
56				hfront-porch = <16>;
57				vback-porch = <32>;
58				vsync-len = <3>;
59				vfront-porch = <10>;
60				hsync-active = <0>;
61				vsync-active = <0>;
62				de-active = <1>;
63				pixelclk-active = <0>;
64			};
65
66			timing-et0350 {
67				clock-frequency = <6413760>;
68				hactive = <320>;
69				vactive = <240>;
70				hback-porch = <34>;
71				hsync-len = <34>;
72				hfront-porch = <20>;
73				vback-porch = <15>;
74				vsync-len = <3>;
75				vfront-porch = <4>;
76				hsync-active = <0>;
77				vsync-active = <0>;
78				de-active = <1>;
79				pixelclk-active = <0>;
80			};
81
82			timing-et0430 {
83				clock-frequency = <9009000>;
84				hactive = <480>;
85				vactive = <272>;
86				hback-porch = <2>;
87				hsync-len = <41>;
88				hfront-porch = <2>;
89				vback-porch = <2>;
90				vsync-len = <10>;
91				vfront-porch = <2>;
92				hsync-active = <0>;
93				vsync-active = <0>;
94				de-active = <1>;
95				pixelclk-active = <1>;
96			};
97
98			timing-et0500 {
99				clock-frequency = <33264000>;
100				hactive = <800>;
101				vactive = <480>;
102				hback-porch = <88>;
103				hsync-len = <128>;
104				hfront-porch = <40>;
105				vback-porch = <33>;
106				vsync-len = <2>;
107				vfront-porch = <10>;
108				hsync-active = <0>;
109				vsync-active = <0>;
110				de-active = <1>;
111				pixelclk-active = <0>;
112			};
113
114			timing-et0700 { /* same as ET0500 */
115				clock-frequency = <33264000>;
116				hactive = <800>;
117				vactive = <480>;
118				hback-porch = <88>;
119				hsync-len = <128>;
120				hfront-porch = <40>;
121				vback-porch = <33>;
122				vsync-len = <2>;
123				vfront-porch = <10>;
124				hsync-active = <0>;
125				vsync-active = <0>;
126				de-active = <1>;
127				pixelclk-active = <0>;
128			};
129
130			timing-etq570 {
131				clock-frequency = <6596040>;
132				hactive = <320>;
133				vactive = <240>;
134				hback-porch = <38>;
135				hsync-len = <30>;
136				hfront-porch = <30>;
137				vback-porch = <16>;
138				vsync-len = <3>;
139				vfront-porch = <4>;
140				hsync-active = <0>;
141				vsync-active = <0>;
142				de-active = <1>;
143				pixelclk-active = <0>;
144			};
145		};
146	};
147
148	backlight: backlight {
149		compatible = "pwm-backlight";
150		pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
151		power-supply = <&reg_3v3>;
152		brightness-levels = <
153			  0  1  2  3  4  5  6  7  8  9
154			 10 11 12 13 14 15 16 17 18 19
155			 20 21 22 23 24 25 26 27 28 29
156			 30 31 32 33 34 35 36 37 38 39
157			 40 41 42 43 44 45 46 47 48 49
158			 50 51 52 53 54 55 56 57 58 59
159			 60 61 62 63 64 65 66 67 68 69
160			 70 71 72 73 74 75 76 77 78 79
161			 80 81 82 83 84 85 86 87 88 89
162			 90 91 92 93 94 95 96 97 98 99
163			100
164		>;
165		default-brightness-level = <50>;
166	};
167
168	reg_lcd_pwr: regulator-lcd-pwr {
169		compatible = "regulator-fixed";
170		regulator-name = "LCD POWER";
171		regulator-min-microvolt = <3300000>;
172		regulator-max-microvolt = <3300000>;
173		gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>;
174		enable-active-high;
175		regulator-boot-on;
176	};
177
178	reg_lcd_reset: regulator-lcd-reset {
179		compatible = "regulator-fixed";
180		regulator-name = "LCD RESET";
181		regulator-min-microvolt = <3300000>;
182		regulator-max-microvolt = <3300000>;
183		gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
184		enable-active-high;
185		regulator-boot-on;
186	};
187};
188
189&i2c3 {
190	pinctrl-names = "default";
191	pinctrl-0 = <&pinctrl_i2c3>;
192	status = "okay";
193
194	sgtl5000: codec@a {
195		compatible = "fsl,sgtl5000";
196		reg = <0x0a>;
197		#sound-dai-cells = <0>;
198		VDDA-supply = <&reg_2v5>;
199		VDDIO-supply = <&reg_3v3>;
200		clocks = <&mclk>;
201	};
202
203	polytouch: edt-ft5x06@38 {
204		compatible = "edt,edt-ft5x06";
205		reg = <0x38>;
206		pinctrl-names = "default";
207		pinctrl-0 = <&pinctrl_edt_ft5x06_1>;
208		interrupt-parent = <&gpio6>;
209		interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
210		reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;
211		wake-gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
212		wakeup-source;
213	};
214
215	touchscreen: tsc2007@48 {
216		compatible = "ti,tsc2007";
217		reg = <0x48>;
218		pinctrl-names = "default";
219		pinctrl-0 = <&pinctrl_tsc2007>;
220		interrupt-parent = <&gpio3>;
221		interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
222		gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
223		ti,x-plate-ohms = <660>;
224		wakeup-source;
225	};
226};
227
228&iomuxc {
229	pinctrl_edt_ft5x06_1: edt-ft5x06-1-grp {
230		fsl,pins = <
231			MX53_PAD_NANDF_CS2__GPIO6_15 0x1f0 /* Interrupt */
232			MX53_PAD_EIM_A16__GPIO2_22   0x04 /* Reset */
233			MX53_PAD_EIM_A17__GPIO2_21   0x04 /* Wake */
234		>;
235	};
236
237	pinctrl_kpp: kppgrp {
238		fsl,pins = <
239			MX53_PAD_GPIO_9__KPP_COL_6 0x1f4
240			MX53_PAD_GPIO_4__KPP_COL_7 0x1f4
241			MX53_PAD_KEY_COL2__KPP_COL_2 0x1f4
242			MX53_PAD_KEY_COL3__KPP_COL_3 0x1f4
243			MX53_PAD_GPIO_2__KPP_ROW_6 0x1f4
244			MX53_PAD_GPIO_5__KPP_ROW_7 0x1f4
245			MX53_PAD_KEY_ROW2__KPP_ROW_2 0x1f4
246			MX53_PAD_KEY_ROW3__KPP_ROW_3 0x1f4
247		>;
248	};
249
250	pinctrl_rgb24_vga1: rgb24-vga1grp {
251		fsl,pins = <
252			MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK		0x5
253			MX53_PAD_DI0_PIN15__IPU_DI0_PIN15		0x5
254			MX53_PAD_DI0_PIN2__IPU_DI0_PIN2			0x5
255			MX53_PAD_DI0_PIN3__IPU_DI0_PIN3			0x5
256			MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0		0x5
257			MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1		0x5
258			MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2		0x5
259			MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3		0x5
260			MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4		0x5
261			MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5		0x5
262			MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6		0x5
263			MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7		0x5
264			MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8		0x5
265			MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9		0x5
266			MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10		0x5
267			MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11		0x5
268			MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12		0x5
269			MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13		0x5
270			MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14		0x5
271			MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15		0x5
272			MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16		0x5
273			MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17		0x5
274			MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18		0x5
275			MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19		0x5
276			MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20		0x5
277			MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21		0x5
278			MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22		0x5
279			MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23		0x5
280		>;
281	};
282
283	pinctrl_tsc2007: tsc2007grp {
284		fsl,pins = <
285			MX53_PAD_EIM_D26__GPIO3_26 0x1f0 /* Interrupt */
286		>;
287	};
288};
289
290&ipu_di0_disp0 {
291	remote-endpoint = <&display0_in>;
292};
293
294&kpp {
295	pinctrl-names = "default";
296	pinctrl-0 = <&pinctrl_kpp>;
297	/* sample keymap */
298	/* row/col 0,1 are mapped to KPP row/col 6,7 */
299	linux,keymap = <
300		MATRIX_KEY(6, 6, KEY_POWER)
301		MATRIX_KEY(6, 7, KEY_KP0)
302		MATRIX_KEY(6, 2, KEY_KP1)
303		MATRIX_KEY(6, 3, KEY_KP2)
304		MATRIX_KEY(7, 6, KEY_KP3)
305		MATRIX_KEY(7, 7, KEY_KP4)
306		MATRIX_KEY(7, 2, KEY_KP5)
307		MATRIX_KEY(7, 3, KEY_KP6)
308		MATRIX_KEY(2, 6, KEY_KP7)
309		MATRIX_KEY(2, 7, KEY_KP8)
310		MATRIX_KEY(2, 2, KEY_KP9)
311	>;
312	status = "okay";
313};
314