xref: /linux/arch/arm/boot/dts/nxp/imx/imx6qdl-tx6-lcd.dtsi (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
1// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
2/*
3 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
4 */
5
6/ {
7	aliases {
8		display = &display;
9	};
10
11	backlight: backlight {
12		compatible = "pwm-backlight";
13		pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
14		pinctrl-names = "default";
15		pinctrl-0 = <&pinctrl_lcd1_pwr>;
16		enable-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
17		power-supply = <&reg_3v3>;
18		/*
19		 * a poor man's way to create a 1:1 relationship between
20		 * the PWM value and the actual duty cycle
21		 */
22		brightness-levels = < 0  1  2  3  4  5  6  7  8  9
23				     10 11 12 13 14 15 16 17 18 19
24				     20 21 22 23 24 25 26 27 28 29
25				     30 31 32 33 34 35 36 37 38 39
26				     40 41 42 43 44 45 46 47 48 49
27				     50 51 52 53 54 55 56 57 58 59
28				     60 61 62 63 64 65 66 67 68 69
29				     70 71 72 73 74 75 76 77 78 79
30				     80 81 82 83 84 85 86 87 88 89
31				     90 91 92 93 94 95 96 97 98 99
32				    100>;
33		default-brightness-level = <50>;
34	};
35
36	lcd_panel: lcd-panel {
37		compatible = "edt,etm0700g0dh6";
38		pinctrl-names = "default";
39		pinctrl-0 = <&pinctrl_lcd0_pwr>;
40		enable-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
41		power-supply = <&reg_3v3>;
42		backlight = <&backlight>;
43
44		port {
45			lcd_panel_in: endpoint {
46				remote-endpoint = <&lcd_out>;
47			};
48		};
49	};
50
51	display: disp0 {
52		compatible = "fsl,imx-parallel-display";
53		#address-cells = <1>;
54		#size-cells = <0>;
55		pinctrl-names = "default";
56		pinctrl-0 = <&pinctrl_disp0_1>;
57		status = "okay";
58
59		port@0 {
60			reg = <0>;
61
62			lcd_in: endpoint {
63				remote-endpoint = <&ipu1_di0_disp0>;
64			};
65		};
66
67		port@1 {
68			reg = <1>;
69
70			lcd_out: endpoint {
71				remote-endpoint = <&lcd_panel_in>;
72			};
73		};
74
75		display-timings {
76			timing-vga {
77				clock-frequency = <25200000>;
78				hactive = <640>;
79				vactive = <480>;
80				hback-porch = <48>;
81				hsync-len = <96>;
82				hfront-porch = <16>;
83				vback-porch = <31>;
84				vsync-len = <2>;
85				vfront-porch = <12>;
86				hsync-active = <0>;
87				vsync-active = <0>;
88				de-active = <1>;
89				pixelclk-active = <0>;
90			};
91
92			timing-etv570 {
93				clock-frequency = <25200000>;
94				hactive = <640>;
95				vactive = <480>;
96				hback-porch = <114>;
97				hsync-len = <30>;
98				hfront-porch = <16>;
99				vback-porch = <32>;
100				vsync-len = <3>;
101				vfront-porch = <10>;
102				hsync-active = <0>;
103				vsync-active = <0>;
104				de-active = <1>;
105				pixelclk-active = <0>;
106			};
107
108			timing-et0350 {
109				clock-frequency = <6413760>;
110				hactive = <320>;
111				vactive = <240>;
112				hback-porch = <34>;
113				hsync-len = <34>;
114				hfront-porch = <20>;
115				vback-porch = <15>;
116				vsync-len = <3>;
117				vfront-porch = <4>;
118				hsync-active = <0>;
119				vsync-active = <0>;
120				de-active = <1>;
121				pixelclk-active = <0>;
122			};
123
124			timing-et0430 {
125				clock-frequency = <9009000>;
126				hactive = <480>;
127				vactive = <272>;
128				hback-porch = <2>;
129				hsync-len = <41>;
130				hfront-porch = <2>;
131				vback-porch = <2>;
132				vsync-len = <10>;
133				vfront-porch = <2>;
134				hsync-active = <0>;
135				vsync-active = <0>;
136				de-active = <1>;
137				pixelclk-active = <1>;
138			};
139
140			timing-et0500 {
141				clock-frequency = <33264000>;
142				hactive = <800>;
143				vactive = <480>;
144				hback-porch = <88>;
145				hsync-len = <128>;
146				hfront-porch = <40>;
147				vback-porch = <33>;
148				vsync-len = <2>;
149				vfront-porch = <10>;
150				hsync-active = <0>;
151				vsync-active = <0>;
152				de-active = <1>;
153				pixelclk-active = <0>;
154			};
155
156			timing-et0700 { /* same as ET0500 */
157				clock-frequency = <33264000>;
158				hactive = <800>;
159				vactive = <480>;
160				hback-porch = <88>;
161				hsync-len = <128>;
162				hfront-porch = <40>;
163				vback-porch = <33>;
164				vsync-len = <2>;
165				vfront-porch = <10>;
166				hsync-active = <0>;
167				vsync-active = <0>;
168				de-active = <1>;
169				pixelclk-active = <0>;
170			};
171
172			timing-etq570 {
173				clock-frequency = <6596040>;
174				hactive = <320>;
175				vactive = <240>;
176				hback-porch = <38>;
177				hsync-len = <30>;
178				hfront-porch = <30>;
179				vback-porch = <16>;
180				vsync-len = <3>;
181				vfront-porch = <4>;
182				hsync-active = <0>;
183				vsync-active = <0>;
184				de-active = <1>;
185				pixelclk-active = <0>;
186			};
187
188			timing-comtft { /* same as ET0700 but with inverted pixel clock */
189				clock-frequency = <33264000>;
190				hactive = <800>;
191				vactive = <480>;
192				hback-porch = <88>;
193				hsync-len = <128>;
194				hfront-porch = <40>;
195				vback-porch = <33>;
196				vsync-len = <2>;
197				vfront-porch = <10>;
198				hsync-active = <0>;
199				vsync-active = <0>;
200				de-active = <1>;
201				pixelclk-active = <1>;
202			};
203		};
204	};
205};
206
207&ipu1_di0_disp0 {
208	remote-endpoint = <&lcd_in>;
209};
210