blob: b6d487f37fa691855202a79e00bead2f25af62e8 [file] [log] [blame]
Vishnuvardhan Prodduturi4aa8dc42015-10-20 21:20:43 +05301/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
Ray Zhang7bb7b322015-09-07 11:32:21 +08002 *
3 * Redistribution and use in source and binary forms, with or without
4 * modification, are permitted provided that the following conditions
5 * are met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in
10 * the documentation and/or other materials provided with the
11 * distribution.
12 * * Neither the name of The Linux Foundation nor the names of its
13 * contributors may be used to endorse or promote products derived
14 * from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
19 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
20 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
23 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
26 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30/*---------------------------------------------------------------------------
31 * This file is autogenerated file using gcdb parser. Please do not edit it.
32 * Update input XML file to add a new entry or update variable in this file
33 * VERSION = "1.0"
34 *---------------------------------------------------------------------------*/
35
36#ifndef _PANEL_R69006_1080P_CMD_H_
37#define _PANEL_R69006_1080P_CMD_H_
38/*---------------------------------------------------------------------------*/
39/* HEADER files */
40/*---------------------------------------------------------------------------*/
41#include "panel.h"
42
43/*---------------------------------------------------------------------------*/
44/* Panel configuration */
45/*---------------------------------------------------------------------------*/
46static struct panel_config r69006_1080p_cmd_panel_data = {
47 "qcom,mdss_dsi_r69006_1080p_cmd", "dsi:0:", "qcom,mdss-dsi-panel",
48 10, 1, "DISPLAY_1", 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL
49};
50
51/*---------------------------------------------------------------------------*/
52/* Panel resolution */
53/*---------------------------------------------------------------------------*/
54static struct panel_resolution r69006_1080p_cmd_panel_res = {
55 1080, 1920, 100, 82, 20, 0, 3, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0
56};
57
58/*---------------------------------------------------------------------------*/
59/* Panel color information */
60/*---------------------------------------------------------------------------*/
61static struct color_info r69006_1080p_cmd_color = {
62 24, 0, 0xff, 0, 0, 0
63};
64
65/*---------------------------------------------------------------------------*/
66/* Panel on/off command information */
67/*---------------------------------------------------------------------------*/
68static char r69006_1080p_cmd_on_cmd0[] = {
Ray Zhangb251b2e2015-12-18 16:23:43 +080069 0xB0, 0x00, 0x23, 0x80
Ray Zhang7bb7b322015-09-07 11:32:21 +080070};
71
72static char r69006_1080p_cmd_on_cmd1[] = {
73 0x06, 0x00, 0x29, 0xC0,
Ray Zhangb251b2e2015-12-18 16:23:43 +080074 0xB3, 0x04, 0x10, 0x00,
Ray Zhang7bb7b322015-09-07 11:32:21 +080075 0x00, 0x00, 0xFF, 0xFF,
76};
77
78static char r69006_1080p_cmd_on_cmd2[] = {
79 0x03, 0x00, 0x29, 0xC0,
Ray Zhangb251b2e2015-12-18 16:23:43 +080080 0xB4, 0x0C, 0x00, 0xFF,
Ray Zhang7bb7b322015-09-07 11:32:21 +080081};
82
83static char r69006_1080p_cmd_on_cmd3[] = {
84 0x04, 0x00, 0x29, 0xC0,
Ray Zhangb251b2e2015-12-18 16:23:43 +080085 0xB6, 0x3B, 0xD3, 0x00,
Ray Zhang7bb7b322015-09-07 11:32:21 +080086};
87
88static char r69006_1080p_cmd_on_cmd4[] = {
Ray Zhangb251b2e2015-12-18 16:23:43 +080089 0xC0, 0x00, 0x23, 0x80
Ray Zhang7bb7b322015-09-07 11:32:21 +080090};
91
92static char r69006_1080p_cmd_on_cmd5[] = {
Ray Zhangb251b2e2015-12-18 16:23:43 +080093 0x36, 0x98, 0x15, 0x80
Ray Zhang7bb7b322015-09-07 11:32:21 +080094};
95
96static char r69006_1080p_cmd_on_cmd6[] = {
Ray Zhangb251b2e2015-12-18 16:23:43 +080097 0xCC, 0x04, 0x23, 0x80
Ray Zhang7bb7b322015-09-07 11:32:21 +080098};
99
100static char r69006_1080p_cmd_on_cmd7[] = {
101 0x20, 0x00, 0x29, 0xC0,
102 0xC1, 0x84, 0x00, 0x10,
103 0xEF, 0x8B, 0xF1, 0xFF,
104 0xFF, 0xDF, 0x9C, 0xC5,
105 0x9A, 0x73, 0x8D, 0xAD,
106 0x63, 0xFE, 0xFF, 0xFF,
107 0xCB, 0xF8, 0x01, 0x00,
Mao Flynnd3d58fb2016-03-02 13:01:49 +0800108 0xAA, 0x40, 0x02, 0xC2,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800109 0x01, 0x08, 0x00, 0x01,
110};
111
112static char r69006_1080p_cmd_on_cmd8[] = {
113 0x0A, 0x00, 0x29, 0xC0,
114 0xCB, 0x0D, 0xFE, 0x1F,
115 0x2C, 0x00, 0x00, 0x00,
116 0x00, 0x00, 0xFF, 0xFF,
117};
118
119static char r69006_1080p_cmd_on_cmd9[] = {
120 0x0B, 0x00, 0x29, 0xC0,
121 0xC2, 0x01, 0xF7, 0x80,
122 0x04, 0x63, 0x00, 0x60,
123 0x00, 0x01, 0x30, 0xFF,
124};
125
126static char r69006_1080p_cmd_on_cmd10[] = {
127 0x07, 0x00, 0x29, 0xC0,
Ray Zhangb251b2e2015-12-18 16:23:43 +0800128 0xC3, 0x55, 0x01, 0x00,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800129 0x01, 0x00, 0x00, 0xFF,
130};
131
132static char r69006_1080p_cmd_on_cmd11[] = {
133 0x12, 0x00, 0x29, 0xC0,
Ray Zhangb251b2e2015-12-18 16:23:43 +0800134 0xC4, 0x70, 0x00, 0x00,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800135 0x00, 0x00, 0x00, 0x00,
136 0x00, 0x00, 0x02, 0x01,
137 0x00, 0x05, 0x01, 0x00,
138 0x00, 0x00, 0xFF, 0xFF,
139};
140
141static char r69006_1080p_cmd_on_cmd12[] = {
142 0x0F, 0x00, 0x29, 0xC0,
Ray Zhangb251b2e2015-12-18 16:23:43 +0800143 0xC6, 0x57, 0x07, 0x4A,
144 0x07, 0x4A, 0x01, 0x0E,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800145 0x01, 0x02, 0x01, 0x02,
146 0x09, 0x15, 0x07, 0xFF,
147};
148
149static char r69006_1080p_cmd_on_cmd13[] = {
150 0x1F, 0x00, 0x29, 0xC0,
Ray Zhang1b53fdb2016-02-05 15:16:27 +0800151 0xC7, 0x00, 0x06, 0x0C,
152 0x16, 0x27, 0x35, 0x3F,
153 0x4D, 0x33, 0x3C, 0x49,
154 0x5B, 0x64, 0x66, 0x67,
155 0x00, 0x06, 0x0C, 0x16,
156 0x27, 0x35, 0x3F, 0x4D,
157 0x33, 0x3C, 0x49, 0x5B,
158 0x64, 0x66, 0x67, 0xFF,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800159};
160
161static char r69006_1080p_cmd_on_cmd14[] = {
162 0x14, 0x00, 0x29, 0xC0,
Ray Zhangb251b2e2015-12-18 16:23:43 +0800163 0xC8, 0x00, 0x00, 0xFE,
164 0x01, 0x08, 0xE7, 0x00,
165 0x00, 0xFD, 0x02, 0x03,
166 0xA8, 0x00, 0x00, 0xFC,
167 0xE7, 0xE9, 0xC9, 0x00,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800168};
169
170static char r69006_1080p_cmd_on_cmd15[] = {
171 0x09, 0x00, 0x29, 0xC0,
172 0xC9, 0x1F, 0x68, 0x1F,
173 0x68, 0x4C, 0x4C, 0xC4,
174 0x11, 0xFF, 0xFF, 0xFF,
175};
176
177static char r69006_1080p_cmd_on_cmd16[] = {
178 0x11, 0x00, 0x29, 0xC0,
Ray Zhang1b53fdb2016-02-05 15:16:27 +0800179 0xD0, 0x11, 0x01, 0x91,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800180 0x0B, 0xD9, 0x19, 0x19,
181 0x00, 0x00, 0x00, 0x19,
182 0x99, 0x00, 0x00, 0x00,
183 0x00, 0xFF, 0xFF, 0xFF,
184};
185
186static char r69006_1080p_cmd_on_cmd17[] = {
187 0x1D, 0x00, 0x29, 0xC0,
188 0xD3, 0x1B, 0x3B, 0xBB,
189 0xAD, 0xA5, 0x33, 0x33,
190 0x33, 0x00, 0x80, 0xAD,
Ray Zhang1b53fdb2016-02-05 15:16:27 +0800191 0xA8, 0x37, 0x33, 0x33,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800192 0x33, 0x33, 0xF7, 0xF2,
193 0x1F, 0x7D, 0x7C, 0xFF,
194 0x0F, 0x99, 0x00, 0xFF,
195 0xFF, 0xFF, 0xFF, 0xFF,
196};
197
198static char r69006_1080p_cmd_on_cmd18[] = {
199 0x04, 0x00, 0x29, 0xC0,
200 0xD4, 0x57, 0x33, 0x03,
201};
202
203static char r69006_1080p_cmd_on_cmd19[] = {
204 0x0C, 0x00, 0x29, 0xC0,
Ray Zhangb251b2e2015-12-18 16:23:43 +0800205 0xD5, 0x66, 0x00, 0x00,
Ray Zhang1b53fdb2016-02-05 15:16:27 +0800206 0x01, 0x32, 0x01, 0x32,
207 0x00, 0x0b, 0x00, 0x0b,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800208};
209
210static char r69006_1080p_cmd_on_cmd20[] = {
Ray Zhangb251b2e2015-12-18 16:23:43 +0800211 0x02, 0x00, 0x29, 0xC0,
212 0xBE, 0x04, 0xFF, 0xFF,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800213};
214
215static char r69006_1080p_cmd_on_cmd21[] = {
Ray Zhangb251b2e2015-12-18 16:23:43 +0800216 0x11, 0x00, 0x29, 0xC0,
217 0xCF, 0x40, 0x10, 0x00,
218 0x00, 0x00, 0x00, 0x32,
219 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x00, 0x00, 0x00,
221 0x00, 0xFF, 0xFF, 0xFF,
Ray Zhang7bb7b322015-09-07 11:32:21 +0800222};
223
224static char r69006_1080p_cmd_on_cmd22[] = {
Ray Zhangb251b2e2015-12-18 16:23:43 +0800225 0x06, 0x00, 0x29, 0xC0,
226 0xDE, 0x00, 0x00, 0x3F,
227 0xFF, 0x10, 0xFF, 0xFF,
228};
229
230static char r69006_1080p_cmd_on_cmd23[] = {
231 0x02, 0x00, 0x29, 0xC0,
232 0xE9, 0x00, 0xFF, 0xFF,
233};
234
235static char r69006_1080p_cmd_on_cmd24[] = {
236 0x02, 0x00, 0x29, 0xC0,
237 0xF2, 0x00, 0xFF, 0xFF,
238};
239
240static char r69006_1080p_cmd_on_cmd25[] = {
241 0xD6, 0x01, 0x23, 0x80
242};
243
244static char r69006_1080p_cmd_on_cmd26[] = {
245 0x02, 0x00, 0x39, 0xC0,
246 0x35, 0x00, 0xFF, 0xFF,
247};
248
249static char r69006_1080p_cmd_on_cmd27[] = {
250 0x02, 0x00, 0x39, 0xC0,
251 0x51, 0xff, 0xFF, 0xFF,
252};
253
254static char r69006_1080p_cmd_on_cmd28[] = {
255 0x02, 0x00, 0x39, 0xC0,
256 0x53, 0x2c, 0xFF, 0xFF,
257};
258
259static char r69006_1080p_cmd_on_cmd29[] = {
260 0x02, 0x00, 0x39, 0xC0,
261 0x55, 0x00, 0xFF, 0xFF,
262};
263
264
265static char r69006_1080p_cmd_on_cmd30[] = {
Mao Flynnd3d58fb2016-03-02 13:01:49 +0800266 0x11, 0x00, 0x05, 0x80
Ray Zhang7bb7b322015-09-07 11:32:21 +0800267};
268
Ray Zhangb251b2e2015-12-18 16:23:43 +0800269static char r69006_1080p_cmd_on_cmd31[] = {
Mao Flynnd3d58fb2016-03-02 13:01:49 +0800270 0x29, 0x00, 0x05, 0x80
Ray Zhangb251b2e2015-12-18 16:23:43 +0800271};
272
273
Ray Zhang7bb7b322015-09-07 11:32:21 +0800274static struct mipi_dsi_cmd r69006_1080p_cmd_on_command[] = {
275 {0x4, r69006_1080p_cmd_on_cmd0, 0x00},
276 {0xc, r69006_1080p_cmd_on_cmd1, 0x00},
277 {0x8, r69006_1080p_cmd_on_cmd2, 0x00},
278 {0x8, r69006_1080p_cmd_on_cmd3, 0x00},
279 {0x4, r69006_1080p_cmd_on_cmd4, 0x00},
280 {0x4, r69006_1080p_cmd_on_cmd5, 0x00},
281 {0x4, r69006_1080p_cmd_on_cmd6, 0x00},
282 {0x24, r69006_1080p_cmd_on_cmd7, 0x00},
283 {0x10, r69006_1080p_cmd_on_cmd8, 0x00},
284 {0x10, r69006_1080p_cmd_on_cmd9, 0x00},
285 {0xc, r69006_1080p_cmd_on_cmd10, 0x00},
286 {0x18, r69006_1080p_cmd_on_cmd11, 0x00},
287 {0x14, r69006_1080p_cmd_on_cmd12, 0x00},
288 {0x24, r69006_1080p_cmd_on_cmd13, 0x00},
289 {0x18, r69006_1080p_cmd_on_cmd14, 0x00},
290 {0x10, r69006_1080p_cmd_on_cmd15, 0x00},
291 {0x18, r69006_1080p_cmd_on_cmd16, 0x00},
292 {0x24, r69006_1080p_cmd_on_cmd17, 0x00},
293 {0x8, r69006_1080p_cmd_on_cmd18, 0x00},
294 {0x10, r69006_1080p_cmd_on_cmd19, 0x00},
Ray Zhangb251b2e2015-12-18 16:23:43 +0800295 {0x8, r69006_1080p_cmd_on_cmd20, 0x00},
296 {0x18, r69006_1080p_cmd_on_cmd21, 0x00},
297 {0xc, r69006_1080p_cmd_on_cmd22, 0x00},
298 {0x8, r69006_1080p_cmd_on_cmd23, 0x00},
299 {0x8, r69006_1080p_cmd_on_cmd24, 0x00},
300 {0x4, r69006_1080p_cmd_on_cmd25, 0x00},
301 {0x8, r69006_1080p_cmd_on_cmd26, 0x00},
302 {0x8, r69006_1080p_cmd_on_cmd27, 0x00},
303 {0x8, r69006_1080p_cmd_on_cmd28, 0x00},
Mao Flynnd3d58fb2016-03-02 13:01:49 +0800304 {0x8, r69006_1080p_cmd_on_cmd29, 0x00},
305 {0x4, r69006_1080p_cmd_on_cmd30, 0x78},
306 {0x4, r69006_1080p_cmd_on_cmd31, 0x14}
Ray Zhang7bb7b322015-09-07 11:32:21 +0800307};
308
Ray Zhangb251b2e2015-12-18 16:23:43 +0800309#define R69006_1080P_CMD_ON_COMMAND 32
Ray Zhang7bb7b322015-09-07 11:32:21 +0800310
311
312static char r69006_1080p_cmdoff_cmd0[] = {
313 0x28, 0x00, 0x05, 0x80
314};
315
316static char r69006_1080p_cmdoff_cmd1[] = {
317 0x10, 0x00, 0x05, 0x80
318};
319
320static struct mipi_dsi_cmd r69006_1080p_cmd_off_command[] = {
321 {0x4, r69006_1080p_cmdoff_cmd0, 0x78},
322 {0x4, r69006_1080p_cmdoff_cmd1, 0x96}
323};
324
325#define R69006_1080P_CMD_OFF_COMMAND 2
326
327
328static struct command_state r69006_1080p_cmd_state = {
329 0, 1
330};
331
332/*---------------------------------------------------------------------------*/
333/* Command mode panel information */
334/*---------------------------------------------------------------------------*/
335static struct commandpanel_info r69006_1080p_cmd_command_panel = {
Sandeep Panda474c7e52015-12-29 14:59:34 +0530336 1, 1, 1, 1, 1, 0x2c, 0, 0, 0, 1, 0, 0
Ray Zhang7bb7b322015-09-07 11:32:21 +0800337};
338
339/*---------------------------------------------------------------------------*/
340/* Video mode panel information */
341/*---------------------------------------------------------------------------*/
342static struct videopanel_info r69006_1080p_cmd_video_panel = {
343 1, 0, 0, 0, 1, 1, 2, 0, 0x9
344};
345
346/*---------------------------------------------------------------------------*/
347/* Lane configuration */
348/*---------------------------------------------------------------------------*/
349static struct lane_configuration r69006_1080p_cmd_lane_config = {
350 4, 0, 1, 1, 1, 1, 0
351};
352
353/*---------------------------------------------------------------------------*/
354/* Panel timing */
355/*---------------------------------------------------------------------------*/
356static const uint32_t r69006_1080p_cmd_timings[] = {
Ray Zhangb251b2e2015-12-18 16:23:43 +0800357 0x6E, 0x3F, 0x36, 0x00, 0x5A, 0x4F, 0x38, 0x41, 0x54, 0x03, 0x04, 0x00
Ray Zhang7bb7b322015-09-07 11:32:21 +0800358};
359
Mao Flynn5ecc8c92016-01-29 14:06:10 +0800360static const uint32_t r69006_1080p_14nm_cmd_timings[] = {
361 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
362 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
363 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
364 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
365 0x24, 0x1b, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
366};
367
Ray Zhang7bb7b322015-09-07 11:32:21 +0800368static struct panel_timing r69006_1080p_cmd_timing_info = {
369 0, 4, 0x20, 0x2c
370};
371
372/*---------------------------------------------------------------------------*/
373/* Panel reset sequence */
374/*---------------------------------------------------------------------------*/
375static struct panel_reset_sequence r69006_1080p_cmd_reset_seq = {
Mao Flynnd3d58fb2016-03-02 13:01:49 +0800376 {1, 0, 1, }, {10, 10, 10, }, 2
Ray Zhang7bb7b322015-09-07 11:32:21 +0800377};
378
379/*---------------------------------------------------------------------------*/
380/* Backlight setting */
381/*---------------------------------------------------------------------------*/
382static struct backlight r69006_1080p_cmd_backlight = {
383 1, 1, 4095, 100, 1, "PMIC_8941"
384};
385
Ray Zhangb251b2e2015-12-18 16:23:43 +0800386static struct labibb_desc r69006_1080p_cmd_labibb = {
Vishnuvardhan Prodduturi4aa8dc42015-10-20 21:20:43 +0530387 0, 1, 5700000, 5700000, 5700000, 5700000, 3, 3, 1, 0
Ray Zhangb251b2e2015-12-18 16:23:43 +0800388};
389
Ray Zhang6ec437c2015-12-04 16:08:08 +0800390#define R69006_1080P_CMD_PANEL_ON_DELAY 32
391
Ray Zhang110a90f2015-10-08 16:46:23 +0800392#define R69006_1080P_CMD_SIGNATURE 0xFFFF
393
Ray Zhang7bb7b322015-09-07 11:32:21 +0800394#endif /*_PANEL_R69006_1080P_CMD_H_*/