xref: /freebsd/sys/contrib/device-tree/src/arm/nxp/imx/imx6qdl-tx6-lcd.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1f126890aSEmmanuel Vadot/*
2f126890aSEmmanuel Vadot * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
3f126890aSEmmanuel Vadot *
4f126890aSEmmanuel Vadot * This file is dual-licensed: you can use it either under the terms
5f126890aSEmmanuel Vadot * of the GPL or the X11 license, at your option. Note that this dual
6f126890aSEmmanuel Vadot * licensing only applies to this file, and not this project as a
7f126890aSEmmanuel Vadot * whole.
8f126890aSEmmanuel Vadot *
9f126890aSEmmanuel Vadot *  a) This file is free software; you can redistribute it and/or
10f126890aSEmmanuel Vadot *     modify it under the terms of the GNU General Public License
11f126890aSEmmanuel Vadot *     version 2 as published by the Free Software Foundation.
12f126890aSEmmanuel Vadot *
13f126890aSEmmanuel Vadot *     This file is distributed in the hope that it will be useful,
14f126890aSEmmanuel Vadot *     but WITHOUT ANY WARRANTY; without even the implied warranty of
15f126890aSEmmanuel Vadot *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16f126890aSEmmanuel Vadot *     GNU General Public License for more details.
17f126890aSEmmanuel Vadot *
18f126890aSEmmanuel Vadot * Or, alternatively,
19f126890aSEmmanuel Vadot *
20f126890aSEmmanuel Vadot *  b) Permission is hereby granted, free of charge, to any person
21f126890aSEmmanuel Vadot *     obtaining a copy of this software and associated documentation
22f126890aSEmmanuel Vadot *     files (the "Software"), to deal in the Software without
23f126890aSEmmanuel Vadot *     restriction, including without limitation the rights to use,
24f126890aSEmmanuel Vadot *     copy, modify, merge, publish, distribute, sublicense, and/or
25f126890aSEmmanuel Vadot *     sell copies of the Software, and to permit persons to whom the
26f126890aSEmmanuel Vadot *     Software is furnished to do so, subject to the following
27f126890aSEmmanuel Vadot *     conditions:
28f126890aSEmmanuel Vadot *
29f126890aSEmmanuel Vadot *     The above copyright notice and this permission notice shall be
30f126890aSEmmanuel Vadot *     included in all copies or substantial portions of the Software.
31f126890aSEmmanuel Vadot *
32f126890aSEmmanuel Vadot *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33f126890aSEmmanuel Vadot *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34f126890aSEmmanuel Vadot *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35f126890aSEmmanuel Vadot *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36f126890aSEmmanuel Vadot *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37f126890aSEmmanuel Vadot *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38f126890aSEmmanuel Vadot *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39f126890aSEmmanuel Vadot *     OTHER DEALINGS IN THE SOFTWARE.
40f126890aSEmmanuel Vadot */
41f126890aSEmmanuel Vadot
42f126890aSEmmanuel Vadot/ {
43f126890aSEmmanuel Vadot	aliases {
44f126890aSEmmanuel Vadot		display = &display;
45f126890aSEmmanuel Vadot	};
46f126890aSEmmanuel Vadot
47f126890aSEmmanuel Vadot	backlight: backlight {
48f126890aSEmmanuel Vadot		compatible = "pwm-backlight";
49f126890aSEmmanuel Vadot		pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
50f126890aSEmmanuel Vadot		pinctrl-names = "default";
51f126890aSEmmanuel Vadot		pinctrl-0 = <&pinctrl_lcd1_pwr>;
52f126890aSEmmanuel Vadot		enable-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
53f126890aSEmmanuel Vadot		power-supply = <&reg_3v3>;
54f126890aSEmmanuel Vadot		turn-on-delay-ms = <35>;
55f126890aSEmmanuel Vadot		/*
56f126890aSEmmanuel Vadot		 * a poor man's way to create a 1:1 relationship between
57f126890aSEmmanuel Vadot		 * the PWM value and the actual duty cycle
58f126890aSEmmanuel Vadot		 */
59f126890aSEmmanuel Vadot		brightness-levels = < 0  1  2  3  4  5  6  7  8  9
60f126890aSEmmanuel Vadot				     10 11 12 13 14 15 16 17 18 19
61f126890aSEmmanuel Vadot				     20 21 22 23 24 25 26 27 28 29
62f126890aSEmmanuel Vadot				     30 31 32 33 34 35 36 37 38 39
63f126890aSEmmanuel Vadot				     40 41 42 43 44 45 46 47 48 49
64f126890aSEmmanuel Vadot				     50 51 52 53 54 55 56 57 58 59
65f126890aSEmmanuel Vadot				     60 61 62 63 64 65 66 67 68 69
66f126890aSEmmanuel Vadot				     70 71 72 73 74 75 76 77 78 79
67f126890aSEmmanuel Vadot				     80 81 82 83 84 85 86 87 88 89
68f126890aSEmmanuel Vadot				     90 91 92 93 94 95 96 97 98 99
69f126890aSEmmanuel Vadot				    100>;
70f126890aSEmmanuel Vadot		default-brightness-level = <50>;
71f126890aSEmmanuel Vadot	};
72f126890aSEmmanuel Vadot
73f126890aSEmmanuel Vadot	lcd_panel: lcd-panel {
74f126890aSEmmanuel Vadot		compatible = "edt,etm0700g0dh6";
75f126890aSEmmanuel Vadot		pinctrl-names = "default";
76f126890aSEmmanuel Vadot		pinctrl-0 = <&pinctrl_lcd0_pwr>;
77f126890aSEmmanuel Vadot		enable-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
78f126890aSEmmanuel Vadot		power-supply = <&reg_3v3>;
79f126890aSEmmanuel Vadot		backlight = <&backlight>;
80f126890aSEmmanuel Vadot
81f126890aSEmmanuel Vadot		port {
82f126890aSEmmanuel Vadot			lcd_panel_in: endpoint {
83f126890aSEmmanuel Vadot				remote-endpoint = <&lcd_out>;
84f126890aSEmmanuel Vadot			};
85f126890aSEmmanuel Vadot		};
86f126890aSEmmanuel Vadot	};
87f126890aSEmmanuel Vadot
88f126890aSEmmanuel Vadot	display: disp0 {
89f126890aSEmmanuel Vadot		compatible = "fsl,imx-parallel-display";
90f126890aSEmmanuel Vadot		#address-cells = <1>;
91f126890aSEmmanuel Vadot		#size-cells = <0>;
92f126890aSEmmanuel Vadot		pinctrl-names = "default";
93f126890aSEmmanuel Vadot		pinctrl-0 = <&pinctrl_disp0_1>;
94f126890aSEmmanuel Vadot		status = "okay";
95f126890aSEmmanuel Vadot
96f126890aSEmmanuel Vadot		port@0 {
97f126890aSEmmanuel Vadot			reg = <0>;
98f126890aSEmmanuel Vadot
99f126890aSEmmanuel Vadot			lcd_in: endpoint {
100f126890aSEmmanuel Vadot				remote-endpoint = <&ipu1_di0_disp0>;
101f126890aSEmmanuel Vadot			};
102f126890aSEmmanuel Vadot		};
103f126890aSEmmanuel Vadot
104f126890aSEmmanuel Vadot		port@1 {
105f126890aSEmmanuel Vadot			reg = <1>;
106f126890aSEmmanuel Vadot
107f126890aSEmmanuel Vadot			lcd_out: endpoint {
108f126890aSEmmanuel Vadot				remote-endpoint = <&lcd_panel_in>;
109f126890aSEmmanuel Vadot			};
110f126890aSEmmanuel Vadot		};
111f126890aSEmmanuel Vadot
112f126890aSEmmanuel Vadot		display-timings {
113*0e8011faSEmmanuel Vadot			timing-vga {
114f126890aSEmmanuel Vadot				clock-frequency = <25200000>;
115f126890aSEmmanuel Vadot				hactive = <640>;
116f126890aSEmmanuel Vadot				vactive = <480>;
117f126890aSEmmanuel Vadot				hback-porch = <48>;
118f126890aSEmmanuel Vadot				hsync-len = <96>;
119f126890aSEmmanuel Vadot				hfront-porch = <16>;
120f126890aSEmmanuel Vadot				vback-porch = <31>;
121f126890aSEmmanuel Vadot				vsync-len = <2>;
122f126890aSEmmanuel Vadot				vfront-porch = <12>;
123f126890aSEmmanuel Vadot				hsync-active = <0>;
124f126890aSEmmanuel Vadot				vsync-active = <0>;
125f126890aSEmmanuel Vadot				de-active = <1>;
126f126890aSEmmanuel Vadot				pixelclk-active = <0>;
127f126890aSEmmanuel Vadot			};
128f126890aSEmmanuel Vadot
129*0e8011faSEmmanuel Vadot			timing-etv570 {
130f126890aSEmmanuel Vadot				clock-frequency = <25200000>;
131f126890aSEmmanuel Vadot				hactive = <640>;
132f126890aSEmmanuel Vadot				vactive = <480>;
133f126890aSEmmanuel Vadot				hback-porch = <114>;
134f126890aSEmmanuel Vadot				hsync-len = <30>;
135f126890aSEmmanuel Vadot				hfront-porch = <16>;
136f126890aSEmmanuel Vadot				vback-porch = <32>;
137f126890aSEmmanuel Vadot				vsync-len = <3>;
138f126890aSEmmanuel Vadot				vfront-porch = <10>;
139f126890aSEmmanuel Vadot				hsync-active = <0>;
140f126890aSEmmanuel Vadot				vsync-active = <0>;
141f126890aSEmmanuel Vadot				de-active = <1>;
142f126890aSEmmanuel Vadot				pixelclk-active = <0>;
143f126890aSEmmanuel Vadot			};
144f126890aSEmmanuel Vadot
145*0e8011faSEmmanuel Vadot			timing-et0350 {
146f126890aSEmmanuel Vadot				clock-frequency = <6413760>;
147f126890aSEmmanuel Vadot				hactive = <320>;
148f126890aSEmmanuel Vadot				vactive = <240>;
149f126890aSEmmanuel Vadot				hback-porch = <34>;
150f126890aSEmmanuel Vadot				hsync-len = <34>;
151f126890aSEmmanuel Vadot				hfront-porch = <20>;
152f126890aSEmmanuel Vadot				vback-porch = <15>;
153f126890aSEmmanuel Vadot				vsync-len = <3>;
154f126890aSEmmanuel Vadot				vfront-porch = <4>;
155f126890aSEmmanuel Vadot				hsync-active = <0>;
156f126890aSEmmanuel Vadot				vsync-active = <0>;
157f126890aSEmmanuel Vadot				de-active = <1>;
158f126890aSEmmanuel Vadot				pixelclk-active = <0>;
159f126890aSEmmanuel Vadot			};
160f126890aSEmmanuel Vadot
161*0e8011faSEmmanuel Vadot			timing-et0430 {
162f126890aSEmmanuel Vadot				clock-frequency = <9009000>;
163f126890aSEmmanuel Vadot				hactive = <480>;
164f126890aSEmmanuel Vadot				vactive = <272>;
165f126890aSEmmanuel Vadot				hback-porch = <2>;
166f126890aSEmmanuel Vadot				hsync-len = <41>;
167f126890aSEmmanuel Vadot				hfront-porch = <2>;
168f126890aSEmmanuel Vadot				vback-porch = <2>;
169f126890aSEmmanuel Vadot				vsync-len = <10>;
170f126890aSEmmanuel Vadot				vfront-porch = <2>;
171f126890aSEmmanuel Vadot				hsync-active = <0>;
172f126890aSEmmanuel Vadot				vsync-active = <0>;
173f126890aSEmmanuel Vadot				de-active = <1>;
174f126890aSEmmanuel Vadot				pixelclk-active = <1>;
175f126890aSEmmanuel Vadot			};
176f126890aSEmmanuel Vadot
177*0e8011faSEmmanuel Vadot			timing-et0500 {
178f126890aSEmmanuel Vadot				clock-frequency = <33264000>;
179f126890aSEmmanuel Vadot				hactive = <800>;
180f126890aSEmmanuel Vadot				vactive = <480>;
181f126890aSEmmanuel Vadot				hback-porch = <88>;
182f126890aSEmmanuel Vadot				hsync-len = <128>;
183f126890aSEmmanuel Vadot				hfront-porch = <40>;
184f126890aSEmmanuel Vadot				vback-porch = <33>;
185f126890aSEmmanuel Vadot				vsync-len = <2>;
186f126890aSEmmanuel Vadot				vfront-porch = <10>;
187f126890aSEmmanuel Vadot				hsync-active = <0>;
188f126890aSEmmanuel Vadot				vsync-active = <0>;
189f126890aSEmmanuel Vadot				de-active = <1>;
190f126890aSEmmanuel Vadot				pixelclk-active = <0>;
191f126890aSEmmanuel Vadot			};
192f126890aSEmmanuel Vadot
193*0e8011faSEmmanuel Vadot			timing-et0700 { /* same as ET0500 */
194f126890aSEmmanuel Vadot				clock-frequency = <33264000>;
195f126890aSEmmanuel Vadot				hactive = <800>;
196f126890aSEmmanuel Vadot				vactive = <480>;
197f126890aSEmmanuel Vadot				hback-porch = <88>;
198f126890aSEmmanuel Vadot				hsync-len = <128>;
199f126890aSEmmanuel Vadot				hfront-porch = <40>;
200f126890aSEmmanuel Vadot				vback-porch = <33>;
201f126890aSEmmanuel Vadot				vsync-len = <2>;
202f126890aSEmmanuel Vadot				vfront-porch = <10>;
203f126890aSEmmanuel Vadot				hsync-active = <0>;
204f126890aSEmmanuel Vadot				vsync-active = <0>;
205f126890aSEmmanuel Vadot				de-active = <1>;
206f126890aSEmmanuel Vadot				pixelclk-active = <0>;
207f126890aSEmmanuel Vadot			};
208f126890aSEmmanuel Vadot
209*0e8011faSEmmanuel Vadot			timing-etq570 {
210f126890aSEmmanuel Vadot				clock-frequency = <6596040>;
211f126890aSEmmanuel Vadot				hactive = <320>;
212f126890aSEmmanuel Vadot				vactive = <240>;
213f126890aSEmmanuel Vadot				hback-porch = <38>;
214f126890aSEmmanuel Vadot				hsync-len = <30>;
215f126890aSEmmanuel Vadot				hfront-porch = <30>;
216f126890aSEmmanuel Vadot				vback-porch = <16>;
217f126890aSEmmanuel Vadot				vsync-len = <3>;
218f126890aSEmmanuel Vadot				vfront-porch = <4>;
219f126890aSEmmanuel Vadot				hsync-active = <0>;
220f126890aSEmmanuel Vadot				vsync-active = <0>;
221f126890aSEmmanuel Vadot				de-active = <1>;
222f126890aSEmmanuel Vadot				pixelclk-active = <0>;
223f126890aSEmmanuel Vadot			};
224f126890aSEmmanuel Vadot
225*0e8011faSEmmanuel Vadot			timing-comtft { /* same as ET0700 but with inverted pixel clock */
226f126890aSEmmanuel Vadot				clock-frequency = <33264000>;
227f126890aSEmmanuel Vadot				hactive = <800>;
228f126890aSEmmanuel Vadot				vactive = <480>;
229f126890aSEmmanuel Vadot				hback-porch = <88>;
230f126890aSEmmanuel Vadot				hsync-len = <128>;
231f126890aSEmmanuel Vadot				hfront-porch = <40>;
232f126890aSEmmanuel Vadot				vback-porch = <33>;
233f126890aSEmmanuel Vadot				vsync-len = <2>;
234f126890aSEmmanuel Vadot				vfront-porch = <10>;
235f126890aSEmmanuel Vadot				hsync-active = <0>;
236f126890aSEmmanuel Vadot				vsync-active = <0>;
237f126890aSEmmanuel Vadot				de-active = <1>;
238f126890aSEmmanuel Vadot				pixelclk-active = <1>;
239f126890aSEmmanuel Vadot			};
240f126890aSEmmanuel Vadot		};
241f126890aSEmmanuel Vadot	};
242f126890aSEmmanuel Vadot};
243f126890aSEmmanuel Vadot
244f126890aSEmmanuel Vadot&ipu1_di0_disp0 {
245f126890aSEmmanuel Vadot	remote-endpoint = <&lcd_in>;
246f126890aSEmmanuel Vadot};
247