blob: 2c3f88df391c1102c0b786258aca2d9fe1bbad85 [file] [log] [blame]
Anna Lemehovace720b22017-05-03 13:51:19 +03001/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
2 *
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_S6D6FA1_1080P_VIDEO_H_
37
38#define _PANEL_S6D6FA1_1080P_VIDEO_H_
39/*---------------------------------------------------------------------------*/
40/* HEADER files */
41/*---------------------------------------------------------------------------*/
42#include "panel.h"
43
44/*---------------------------------------------------------------------------*/
45/* Panel configuration */
46/*---------------------------------------------------------------------------*/
47
48static struct panel_config s6d6fa1_1080p_video_panel_data = {
49 "qcom,mdss_dsi_s6d6fa1_1080p_video", "dsi:0:", "qcom,mdss-dsi-panel",
50 10, 0, "DISPLAY_1", 0, 424000000, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
51};
52
53/*---------------------------------------------------------------------------*/
54/* Panel resolution */
55/*---------------------------------------------------------------------------*/
56static struct panel_resolution s6d6fa1_1080p_video_panel_res = {
57 1080, 1920, 152, 54, 12, 0, 4, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
58};
59
60/*---------------------------------------------------------------------------*/
61/* Panel Color Information */
62/*---------------------------------------------------------------------------*/
63static struct color_info s6d6fa1_1080p_video_color = {
64 24, 0, 0xff, 0, 0, 0
65};
66
67/*---------------------------------------------------------------------------*/
68/* Panel Command information */
69/*---------------------------------------------------------------------------*/
70static char s6d6fa1_1080p_video_init_cmd0[] = {
710x03, 0x00, 0x29, 0xC0,
720xF0, 0x5A, 0x5A, 0xFF, };
73
74static char s6d6fa1_1080p_video_init_cmd1[] = {
750x03, 0x00, 0x29, 0xC0,
760xF1, 0x5A, 0x5A, 0xFF, };
77
78static char s6d6fa1_1080p_video_init_cmd2[] = {
790x03, 0x00, 0x29, 0xC0,
800xFC, 0x5A, 0x5A, 0xFF, };
81
82static char s6d6fa1_1080p_video_init_cmd3[] = {
830x08, 0x00, 0x29, 0xC0,
840xF5, 0x10, 0x18, 0x00,
850xD1, 0xA7, 0x11, 0x08, };
86
87static char s6d6fa1_1080p_video_init_cmd4[] = {
880x07, 0x00, 0x29, 0xC0,
890xB3, 0x10, 0xF0, 0x00,
900xBB, 0x04, 0x08, 0xFF, };
91
92static char s6d6fa1_1080p_video_init_cmd5[] = {
930x07, 0x00, 0x29, 0xC0,
940xB6, 0x29, 0x10, 0x2C,
950x64, 0x64, 0x01, 0xFF, };
96
97static char s6d6fa1_1080p_video_init_cmd6[] = {
980x0F, 0x00, 0x29, 0xC0,
990xB7, 0x00, 0x00, 0x00,
1000x00, 0x00, 0xC0, 0x00,
1010x09, 0x03, 0xF5, 0x00,
1020x00, 0x00, 0x00, 0xFF, };
103
104static char s6d6fa1_1080p_video_init_cmd7[] = {
1050x1C, 0x00, 0x29, 0xC0,
1060xB8, 0x3B, 0x00, 0x18,
1070x18, 0x03, 0x21, 0x11,
1080x00, 0x83, 0xF4, 0xBB,
1090x00, 0x03, 0x1E, 0x21,
1100x00, 0xBE, 0xBB, 0x0B,
1110xE0, 0x70, 0xFF, 0xFF,
1120x00, 0x20, 0x00, 0x00, };
113
114static char s6d6fa1_1080p_video_init_cmd8[] = {
1150x1C, 0x00, 0x29, 0xC0,
1160xB9, 0x1D, 0x00, 0x18,
1170x18, 0x03, 0x00, 0x11,
1180x00, 0x02, 0xF4, 0xBB,
1190x00, 0x03, 0x00, 0x00,
1200x11, 0x86, 0x83, 0x18,
1210x61, 0x20, 0xFF, 0xFF,
1220x00, 0x40, 0x00, 0x00, };
123
124static char s6d6fa1_1080p_video_init_cmd9[] = {
1250x1C, 0x00, 0x29, 0xC0,
1260xBA, 0x3B, 0x00, 0x18,
1270x18, 0x03, 0x21, 0x11,
1280x00, 0x83, 0xF4, 0xBB,
1290x00, 0x03, 0x1E, 0x21,
1300x00, 0xBE, 0xBB, 0x0B,
1310xE0, 0x70, 0xFF, 0xFF,
1320x00, 0x20, 0x00, 0x00, };
133
134static char s6d6fa1_1080p_video_init_cmd10[] = {
1350x1C, 0x00, 0x29, 0xC0,
1360xBB, 0x3B, 0x00, 0x18,
1370x18, 0x03, 0x21, 0x11,
1380x00, 0x83, 0xF4, 0xBB,
1390x00, 0x03, 0x1E, 0x21,
1400x00, 0xBE, 0xBB, 0x0B,
1410xE0, 0x70, 0xFF, 0xFF,
1420x00, 0x20, 0x00, 0x00, };
143
144static char s6d6fa1_1080p_video_init_cmd11[] = {
1450x18, 0x00, 0x29, 0xC0,
1460xBC, 0x20, 0x80, 0x3C,
1470x19, 0x01, 0x02, 0x06,
1480x00, 0x00, 0x2D, 0x06,
1490x0F, 0x13, 0x0B, 0x1E,
1500x04, 0x02, 0x2A, 0x00,
1510x00, 0x02, 0x00, 0x99, };
152
153static char s6d6fa1_1080p_video_init_cmd12[] = {
1540x15, 0x00, 0x29, 0xC0,
1550xBD, 0x01, 0x07, 0x07,
1560x07, 0x00, 0x00, 0x00,
1570x00, 0x05, 0x01, 0x00,
1580x00, 0x00, 0x40, 0x00,
1590x05, 0x2D, 0x05, 0x05,
1600x05, 0xFF, 0xFF, 0xFF, };
161
162static char s6d6fa1_1080p_video_init_cmd13[] = {
1630x2C, 0x00, 0x29, 0xC0,
1640xBE, 0x00, 0x00, 0x00,
1650x00, 0x00, 0x00, 0x02,
1660x0B, 0x0A, 0x0B, 0x07,
1670x0B, 0x04, 0x06, 0x02,
1680x01, 0x00, 0x09, 0x0B,
1690x0E, 0x0D, 0x0C, 0x11,
1700x10, 0x0F, 0x0B, 0x0B,
1710x0B, 0x0B, 0x12, 0x03,
1720x05, 0x02, 0x01, 0x00,
1730x08, 0x0B, 0x0E, 0x0D,
1740x0C, 0x11, 0x10, 0x0F, };
175
176static char s6d6fa1_1080p_video_init_cmd14[] = {
1770x0F, 0x00, 0x29, 0xC0,
1780xBF, 0x00, 0x00, 0x00,
1790x00, 0x0C, 0xCC, 0xCC,
1800xCC, 0xCC, 0x0C, 0xC6,
1810xCC, 0xC7, 0xCC, 0xFF, };
182
183static char s6d6fa1_1080p_video_init_cmd15[] = {
1840x02, 0x00, 0x29, 0xC0,
1850xD0, 0x08, 0xFF, 0xFF, };
186
187static char s6d6fa1_1080p_video_init_cmd16[] = {
1880x02, 0x00, 0x29, 0xC0,
1890xE3, 0x22, 0xFF, 0xFF, };
190
191static char s6d6fa1_1080p_video_init_cmd17[] = {
1920x08, 0x00, 0x29, 0xC0,
1930xE8, 0x00, 0x03, 0x10,
1940x04, 0x02, 0x06, 0xD0, };
195
196static char s6d6fa1_1080p_video_init_cmd18[] = {
1970x07, 0x00, 0x29, 0xC0,
1980xF2, 0x46, 0x43, 0x13,
1990x33, 0xC1, 0x16, 0xFF, };
200
201static char s6d6fa1_1080p_video_init_cmd19[] = {
2020x1C, 0x00, 0x29, 0xC0,
2030xF4, 0x50, 0x50, 0x70,
2040x14, 0x14, 0x14, 0x14,
2050x06, 0x16, 0x26, 0x00,
2060x6E, 0x1F, 0x14, 0x0E,
2070xC9, 0x02, 0x55, 0x35,
2080x54, 0xAA, 0x55, 0x05,
2090x04, 0x44, 0x48, 0x30, };
210
211static char s6d6fa1_1080p_video_init_cmd20[] = {
2120x05, 0x00, 0x29, 0xC0,
2130xF7, 0x00, 0x00, 0x3F,
2140xFF, 0xFF, 0xFF, 0xFF, };
215
216static char s6d6fa1_1080p_video_init_cmd21[] = {
2170x53, 0x00, 0x29, 0xC0,
2180xFA, 0x05, 0x7C, 0x19,
2190x21, 0x2D, 0x39, 0x3F,
2200x45, 0x48, 0x48, 0x56,
2210x5B, 0x3C, 0x3D, 0x3D,
2220x46, 0x43, 0x3E, 0x41,
2230x3D, 0x3A, 0x3A, 0x23,
2240x23, 0x26, 0x2B, 0x1A,
2250x05, 0x7C, 0x19, 0x22,
2260x2E, 0x3A, 0x40, 0x45,
2270x48, 0x48, 0x56, 0x5B,
2280x3C, 0x3D, 0x3D, 0x46,
2290x44, 0x3F, 0x42, 0x3E,
2300x3B, 0x3B, 0x25, 0x24,
2310x27, 0x2C, 0x1A, 0x05,
2320x7C, 0x22, 0x2F, 0x39,
2330x43, 0x48, 0x4C, 0x4D,
2340x4C, 0x5A, 0x5E, 0x3E,
2350x3F, 0x3E, 0x46, 0x44,
2360x3E, 0x41, 0x3D, 0x3A,
2370x3A, 0x23, 0x22, 0x25,
2380x2B, 0x1A, 0x00, 0xFF, };
239
240static char s6d6fa1_1080p_video_init_cmd22[] = {
2410x52, 0x00, 0x29, 0xC0,
2420xFB, 0x05, 0x7C, 0x19,
2430x21, 0x2D, 0x39, 0x3F,
2440x45, 0x48, 0x48, 0x56,
2450x5B, 0x3C, 0x3D, 0x3D,
2460x46, 0x43, 0x3E, 0x41,
2470x3D, 0x3A, 0x3A, 0x23,
2480x23, 0x26, 0x2B, 0x1A,
2490x05, 0x7C, 0x19, 0x22,
2500x2E, 0x3A, 0x40, 0x45,
2510x48, 0x48, 0x56, 0x5B,
2520x3C, 0x3D, 0x3D, 0x46,
2530x44, 0x3F, 0x42, 0x3E,
2540x3B, 0x3B, 0x25, 0x24,
2550x27, 0x2C, 0x1A, 0x05,
2560x7C, 0x22, 0x2F, 0x39,
2570x43, 0x48, 0x4C, 0x4D,
2580x4C, 0x5A, 0x5E, 0x3E,
2590x3F, 0x3E, 0x46, 0x44,
2600x3E, 0x41, 0x3D, 0x3A,
2610x3A, 0x23, 0x22, 0x25,
2620x2B, 0x1A, 0xFF, 0xFF, };
263
264static char s6d6fa1_1080p_video_init_cmd23[] = {
2650x03, 0x00, 0x29, 0xC0,
2660xF0, 0xA5, 0xA5, 0xFF, };
267
268static char s6d6fa1_1080p_video_init_cmd24[] = {
2690x03, 0x00, 0x29, 0xC0,
2700xF1, 0xA5, 0xA5, 0xFF, };
271
272static char s6d6fa1_1080p_video_init_cmd25[] = {
2730x03, 0x00, 0x29, 0xC0,
2740xFC, 0xA5, 0xA5, 0xFF, };
275
276/* NVM write*/
277/*static char s6d6fa1_1080p_video_init_cmd26[] = {
2780x03, 0x00, 0x29, 0xC0,
2790xF0, 0x5A, 0x5A, 0xFF, };
280
281static char s6d6fa1_1080p_video_init_cmd27[] = {
2820x03, 0x00, 0x29, 0xC0,
2830xF1, 0x5A, 0x5A, 0xFF, };
284
285static char s6d6fa1_1080p_video_init_cmd28[] = {
2860x03, 0x00, 0x29, 0xC0,
2870xF0, 0x5A, 0x5A, 0xFF, };
288
289static char s6d6fa1_1080p_video_init_cmd29[] = {
2900x03, 0x00, 0x29, 0xC0,
2910xF1, 0x5A, 0x5A, 0xFF, };
292
293static char s6d6fa1_1080p_video_init_cmd30[] = {
2940x02, 0x00, 0x29, 0xC0,
2950xD0, 0x01, 0xFF, 0xFF, };
296
297static char s6d6fa1_1080p_video_init_cmd31[] = {
2980x02, 0x00, 0x29, 0xC0,
2990xD0, 0x00, 0xFF, 0xFF, };
300
301static char s6d6fa1_1080p_video_init_cmd32[] = {
3020x03, 0x00, 0x29, 0xC0,
3030xF0, 0x5A, 0x5A, 0xFF, };
304
305static char s6d6fa1_1080p_video_init_cmd33[] = {
3060x03, 0x00, 0x29, 0xC0,
3070xF1, 0x5A, 0x5A, 0xFF, };*/
308
309static char s6d6fa1_1080p_video_on_cmd0[] = {
3100x02, 0x00, 0x29, 0xC0,
3110x51, 0xFF, 0xFF, 0xFF, };
312
313static char s6d6fa1_1080p_video_on_cmd1[] = {
3140x02, 0x00, 0x29, 0xC0,
3150x53, 0x2C, 0xFF, 0xFF, };
316
317static char s6d6fa1_1080p_video_on_cmd2[] = {
3180x02, 0x00, 0x29, 0xC0,
3190x55, 0x00, 0xFF, 0xFF, };
320
321static char s6d6fa1_1080p_video_on_cmd3[] = {
3220x02, 0x00, 0x29, 0xC0,
3230x35, 0x00, 0xFF, 0xFF, };
324
325static char s6d6fa1_1080p_video_on_cmd4[] = {
3260x11, 0x00, 0x05, 0x80 };
327
328static char s6d6fa1_1080p_video_on_cmd5[] = {
3290x29, 0x00, 0x05, 0x80 };
330
331static struct mipi_dsi_cmd s6d6fa1_1080p_video_on_command[] = {
332{ 0x8 , s6d6fa1_1080p_video_init_cmd0 ,0x00},
333{ 0x8 , s6d6fa1_1080p_video_init_cmd1 ,0x00},
334{ 0x8 , s6d6fa1_1080p_video_init_cmd2 ,0x00},
335{ 0xc , s6d6fa1_1080p_video_init_cmd3 ,0x00},
336{ 0xc , s6d6fa1_1080p_video_init_cmd4 ,0x00},
337{ 0xc , s6d6fa1_1080p_video_init_cmd5 ,0x00},
338{ 0x14, s6d6fa1_1080p_video_init_cmd6 ,0x00},
339{ 0x20, s6d6fa1_1080p_video_init_cmd7 ,0x00},
340{ 0x20, s6d6fa1_1080p_video_init_cmd8 ,0x00},
341{ 0x20, s6d6fa1_1080p_video_init_cmd9 ,0x00},
342{ 0x20, s6d6fa1_1080p_video_init_cmd10 ,0x00},
343{ 0x1c, s6d6fa1_1080p_video_init_cmd11 ,0x00},
344{ 0x1c, s6d6fa1_1080p_video_init_cmd12 ,0x00},
345{ 0x30, s6d6fa1_1080p_video_init_cmd13 ,0x00},
346{ 0x14, s6d6fa1_1080p_video_init_cmd14 ,0x00},
347{ 0x8 , s6d6fa1_1080p_video_init_cmd15 ,0x00},
348{ 0x8 , s6d6fa1_1080p_video_init_cmd16 ,0x00},
349{ 0xc , s6d6fa1_1080p_video_init_cmd17 ,0x00},
350{ 0xc , s6d6fa1_1080p_video_init_cmd18 ,0x00},
351{ 0x20, s6d6fa1_1080p_video_init_cmd19 ,0x00},
352{ 0xc , s6d6fa1_1080p_video_init_cmd20 ,0x00},
353{ 0x58, s6d6fa1_1080p_video_init_cmd21 ,0x00},
354{ 0x58, s6d6fa1_1080p_video_init_cmd22 ,0x00},
355{ 0x8 , s6d6fa1_1080p_video_init_cmd23 ,0x00},
356{ 0x8 , s6d6fa1_1080p_video_init_cmd24 ,0x00},
357{ 0x8 , s6d6fa1_1080p_video_init_cmd25 ,0x00},
358{ 0x8 , s6d6fa1_1080p_video_on_cmd0 ,0x00},
359{ 0x8 , s6d6fa1_1080p_video_on_cmd1 ,0x00},
360{ 0x8 , s6d6fa1_1080p_video_on_cmd2 ,0x00},
361{ 0x8 , s6d6fa1_1080p_video_on_cmd3 ,0x00},
362{ 0x4 , s6d6fa1_1080p_video_on_cmd4 ,0x78},
363{ 0x4 , s6d6fa1_1080p_video_on_cmd5 ,0x00},
364};
365#define S6D6FA1_1080P_VIDEO_ON_COMMAND 32
366
367static char s6d6fa1_1080p_videooff_cmd0[] = {
3680x28, 0x00, 0x05, 0x80 };
369
370static char s6d6fa1_1080p_videooff_cmd1[] = {
3710x10, 0x00, 0x05, 0x80 };
372
373static struct mipi_dsi_cmd s6d6fa1_1080p_video_off_command[] = {
374{ 0x4 , s6d6fa1_1080p_videooff_cmd0 , 0x14},
375{ 0x4 , s6d6fa1_1080p_videooff_cmd1 , 0x50}
376};
377#define S6D6FA1_1080P_VIDEO_OFF_COMMAND 2
378
379
380static struct command_state s6d6fa1_1080p_video_state = {
381 0, 1
382};
383
384/*---------------------------------------------------------------------------*/
385/* Command mode panel information */
386/*---------------------------------------------------------------------------*/
387
388static struct commandpanel_info s6d6fa1_1080p_video_command_panel = {
389 1, 1, 1, 0, 0, 0x2c, 0x3c, 0, 0, 1, 0, 0
390};
391
392/*---------------------------------------------------------------------------*/
393/* Video mode panel information */
394/*---------------------------------------------------------------------------*/
395
396static struct videopanel_info s6d6fa1_1080p_video_video_panel = {
397 1, 0, 0, 0, 1, 1, 2, 0, 0x9
398};
399
400/*---------------------------------------------------------------------------*/
401/* Lane Configuration */
402/*---------------------------------------------------------------------------*/
403
404static struct lane_configuration s6d6fa1_1080p_video_lane_config = {
405 4, 0, 1, 1, 1, 1
406};
407
408
409/*---------------------------------------------------------------------------*/
410/* Panel Timing */
411/*---------------------------------------------------------------------------*/
412// 900Mbps
413const uint32_t s6d6fa1_1080p_video_timings[] = {
414 0xe6, 0x38, 0x26, 0x00, 0x68, 0x6e, 0x2a, 0x3c, 0x2c, 0x03, 0x04, 0x00
415};
416
417static struct panel_timing s6d6fa1_1080p_video_timing_info = {
418 0, 4, 0x03, 0x2b
419};
420
421static struct panel_reset_sequence s6d6fa1_1080p_video_panel_reset_seq = {
422{ 1, 0, 1, }, { 10, 10, 10 }, 2
423};
424
425/*---------------------------------------------------------------------------*/
426/* Backlight Settings */
427/*---------------------------------------------------------------------------*/
428
429static struct backlight s6d6fa1_1080p_video_backlight = {
430 1, 0, 255, 100, 2, "PMIC_8941"
431};
432
433
434#define S6D6FA1_1080P_VIDEO_SIGNATURE 0xFFFF
435
436#endif /*_PANEL_S6D6FA1_1080P_VIDEO_H_*/