tizen 2.3.1 release
[kernel/linux-3.0.git] / arch / arm / mach-exynos / s2p-panel.c
1 /*
2  * This program is free software; you can redistribute it and/or modify it
3  * under the terms of the GNU General Public License as published by the
4  * Free Software Foundation; either version 2 of the License, or (at your
5  * option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful, but
8  * WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
10  * General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License along
13  * with this program; if not, write to the Free Software Foundation, Inc.,
14  * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
15  */
16 #include <linux/kernel.h>
17 #include <linux/types.h>
18 #include <linux/ld9040.h>
19
20 #define SLEEPMSEC               0x1000
21 #define ENDDEF                  0x2000
22 #define DEFMASK                 0xFF00
23 #define COMMAND_ONLY            0xFE
24 #define DATA_ONLY               0xFF
25
26 static const unsigned short SEQ_INIT_DISPLAY_SETTING[] = {
27         /* USER_SETTING */
28         0xF0, 0x5A,
29         DATA_ONLY, 0x5A,
30         /* ACL ON */
31         0xC1, 0x4D,
32         DATA_ONLY, 0x96,        DATA_ONLY, 0x1D,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
33         DATA_ONLY, 0x01,        DATA_ONLY, 0xDF,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
34         DATA_ONLY, 0x03,        DATA_ONLY, 0x1F,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
35         DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x01,
36         DATA_ONLY, 0x08,        DATA_ONLY, 0x0F,        DATA_ONLY, 0x16,        DATA_ONLY, 0x1D,
37         DATA_ONLY, 0x24,        DATA_ONLY, 0x2A,        DATA_ONLY, 0x31,        DATA_ONLY, 0x38,
38         DATA_ONLY, 0x3F,        DATA_ONLY, 0x46,
39         /* PANEL CONDITION */
40         0xF8, 0x05,
41         DATA_ONLY, 0x5E,
42         DATA_ONLY, 0x96,
43         DATA_ONLY, 0x6B,
44         DATA_ONLY, 0x7D,
45         DATA_ONLY, 0x0D,
46         DATA_ONLY, 0x3F,
47         DATA_ONLY, 0x00,
48         DATA_ONLY, 0x00,
49         DATA_ONLY, 0x32,
50         DATA_ONLY, 0x00,
51         DATA_ONLY, 0x00,
52         DATA_ONLY, 0x00,
53         DATA_ONLY, 0x00,
54         DATA_ONLY, 0x00,
55         DATA_ONLY, 0x00,
56         DATA_ONLY, 0x07,
57         DATA_ONLY, 0x07,
58         DATA_ONLY, 0x20,
59         DATA_ONLY, 0x20,
60         DATA_ONLY, 0x20,
61         DATA_ONLY, 0x00,
62         DATA_ONLY, 0x00,
63         /* DISPLAY_CONDITION */
64         0xF2, 0x02,
65         DATA_ONLY, 0x06,
66         DATA_ONLY, 0x0A,
67         DATA_ONLY, 0x10,
68         DATA_ONLY, 0x10,
69         /* GTCON */
70         0xF7, 0x09,
71         DATA_ONLY, 0x00,
72         DATA_ONLY, 0x00,
73         /* MANPWR */
74         0xB0, 0x04,
75         /* PWR_CTRL */
76         0xF4, 0x0A,
77         DATA_ONLY, 0x87,
78         DATA_ONLY, 0x25,
79         DATA_ONLY, 0x6A,
80         DATA_ONLY, 0x44,
81         DATA_ONLY, 0x02,
82         DATA_ONLY, 0x88,
83         /* ELVSS_ON */
84         0xB1, 0x0D,
85         DATA_ONLY, 0x00,
86         DATA_ONLY, 0x16,
87         ENDDEF, 0x00
88 };
89
90 static const unsigned short SEQ_INIT_ETC_SETTING[] = {
91         /* GAMMA_SET1 */
92         0xF9, 0x00,
93         DATA_ONLY, 0xC7,
94         DATA_ONLY, 0xC4,
95         DATA_ONLY, 0xAC,
96         DATA_ONLY, 0xC9,
97         DATA_ONLY, 0x00,
98         DATA_ONLY, 0x7B,
99         DATA_ONLY, 0x00,
100         DATA_ONLY, 0xB5,
101         DATA_ONLY, 0xC0,
102         DATA_ONLY, 0xA8,
103         DATA_ONLY, 0xC7,
104         DATA_ONLY, 0x00,
105         DATA_ONLY, 0xA3,
106         DATA_ONLY, 0x00,
107         DATA_ONLY, 0xBD,
108         DATA_ONLY, 0xBF,
109         DATA_ONLY, 0xA6,
110         DATA_ONLY, 0xC6,
111         DATA_ONLY, 0x00,
112         DATA_ONLY, 0xA4,
113         /* GAMMA_CTRL */
114         0xFB, 0x02,
115         DATA_ONLY, 0x5A,
116         /* SLEEP OUT */
117         0x11, COMMAND_ONLY,
118         ENDDEF, 0x00
119 };
120
121 static const unsigned short SEQ_USER_SETTING[] = {
122         0xF0, 0x5A,
123
124         DATA_ONLY, 0x5A,
125         ENDDEF, 0x00
126 };
127 static const unsigned short SEQ_ACL_ON[] = {
128         0xC1, 0x4D,
129
130         DATA_ONLY, 0x96,        DATA_ONLY, 0x1D,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
131         DATA_ONLY, 0x01,        DATA_ONLY, 0xDF,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
132         DATA_ONLY, 0x03,        DATA_ONLY, 0x1F,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
133         DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x01,
134         DATA_ONLY, 0x08,        DATA_ONLY, 0x0F,        DATA_ONLY, 0x16,        DATA_ONLY, 0x1D,
135         DATA_ONLY, 0x24,        DATA_ONLY, 0x2A,        DATA_ONLY, 0x31,        DATA_ONLY, 0x38,
136         DATA_ONLY, 0x3F,        DATA_ONLY, 0x46,
137
138         0xC0, 0x01,
139
140         ENDDEF, 0x00
141 };
142
143 static const unsigned short SEQ_ACL_OFF[] = {
144         0xC0, 0x00,
145
146         ENDDEF, 0x00
147 };
148
149
150 static const unsigned short SEQ_ACL_40P[] = {
151         0xC1, 0x4D,
152
153         DATA_ONLY, 0x96,        DATA_ONLY, 0x1D,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
154         DATA_ONLY, 0x01,        DATA_ONLY, 0xDF,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
155         DATA_ONLY, 0x03,        DATA_ONLY, 0x1F,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
156         DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x01,
157         DATA_ONLY, 0x06,        DATA_ONLY, 0x11,        DATA_ONLY, 0x1A,        DATA_ONLY, 0x20,
158         DATA_ONLY, 0x25,        DATA_ONLY, 0x29,        DATA_ONLY, 0x2D,        DATA_ONLY, 0x30,
159         DATA_ONLY, 0x33,        DATA_ONLY, 0x35,
160
161         0xC0, 0x01,
162
163         ENDDEF, 0x00
164 };
165
166
167 static const unsigned short SEQ_ACL_43P[] = {
168         0xC1, 0x4D,
169
170         DATA_ONLY, 0x96,        DATA_ONLY, 0x1D,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
171         DATA_ONLY, 0x01,        DATA_ONLY, 0xDF,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
172         DATA_ONLY, 0x03,        DATA_ONLY, 0x1F,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
173         DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x01,
174         DATA_ONLY, 0x07,        DATA_ONLY, 0x12,        DATA_ONLY, 0x1C,        DATA_ONLY, 0x23,
175         DATA_ONLY, 0x29,        DATA_ONLY, 0x2D,        DATA_ONLY, 0x31,        DATA_ONLY, 0x34,
176         DATA_ONLY, 0x37,        DATA_ONLY, 0x3A,
177
178         0xC0, 0x01,
179
180         ENDDEF, 0x00
181 };
182
183
184
185
186 static const unsigned short SEQ_ACL_45P[] = {
187         0xC1, 0x4D,
188
189         DATA_ONLY, 0x96,        DATA_ONLY, 0x1D,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
190         DATA_ONLY, 0x01,        DATA_ONLY, 0xDF,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
191         DATA_ONLY, 0x03,        DATA_ONLY, 0x1F,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
192         DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x01,
193         DATA_ONLY, 0x07,        DATA_ONLY, 0x13,        DATA_ONLY, 0x1E,        DATA_ONLY, 0x25,
194         DATA_ONLY, 0x2B,        DATA_ONLY, 0x30,        DATA_ONLY, 0x34,        DATA_ONLY, 0x37,
195         DATA_ONLY, 0x3A,        DATA_ONLY, 0x3D,
196
197         0xC0, 0x01,
198
199         ENDDEF, 0x00
200 };
201
202
203 static const unsigned short SEQ_ACL_47P[] = {
204         0xC1, 0x4D,
205
206         DATA_ONLY, 0x96,        DATA_ONLY, 0x1D,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
207         DATA_ONLY, 0x01,        DATA_ONLY, 0xDF,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
208         DATA_ONLY, 0x03,        DATA_ONLY, 0x1F,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
209         DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x01,
210         DATA_ONLY, 0x07,        DATA_ONLY, 0x14,        DATA_ONLY, 0x20,        DATA_ONLY, 0x28,
211         DATA_ONLY, 0x2E,        DATA_ONLY, 0x33,        DATA_ONLY, 0x37,        DATA_ONLY, 0x3B,
212         DATA_ONLY, 0x3E,        DATA_ONLY, 0x41,
213
214         0xC0, 0x01,
215
216         ENDDEF, 0x00
217 };
218
219 static const unsigned short SEQ_ACL_48P[] = {
220         0xC1, 0x4D,
221
222         DATA_ONLY, 0x96,        DATA_ONLY, 0x1D,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
223         DATA_ONLY, 0x01,        DATA_ONLY, 0xDF,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
224         DATA_ONLY, 0x03,        DATA_ONLY, 0x1F,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
225         DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x01,
226         DATA_ONLY, 0x08,        DATA_ONLY, 0x15,        DATA_ONLY, 0x20,        DATA_ONLY, 0x29,
227         DATA_ONLY, 0x2F,        DATA_ONLY, 0x34,        DATA_ONLY, 0x39,        DATA_ONLY, 0x3D,
228         DATA_ONLY, 0x40,        DATA_ONLY, 0x43,
229
230         0xC0, 0x01,
231
232         ENDDEF, 0x00
233 };
234
235 static const unsigned short SEQ_ACL_50P[] = {
236         0xC1, 0x4D,
237
238         DATA_ONLY, 0x96,        DATA_ONLY, 0x1D,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
239         DATA_ONLY, 0x01,        DATA_ONLY, 0xDF,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
240         DATA_ONLY, 0x03,        DATA_ONLY, 0x1F,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,
241         DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x00,        DATA_ONLY, 0x01,
242         DATA_ONLY, 0x08,        DATA_ONLY, 0x16,        DATA_ONLY, 0x22,        DATA_ONLY, 0x2B,
243         DATA_ONLY, 0x31,        DATA_ONLY, 0x37,        DATA_ONLY, 0x3B,        DATA_ONLY, 0x3F,
244         DATA_ONLY, 0x43,        DATA_ONLY, 0x46,
245
246         0xC0, 0x01,
247
248         ENDDEF, 0x00
249 };
250
251 static const unsigned short *ACL_cutoff_set[] = {
252         SEQ_ACL_OFF,
253         SEQ_ACL_40P,
254         SEQ_ACL_43P,
255         SEQ_ACL_45P,
256         SEQ_ACL_47P,
257         SEQ_ACL_48P,
258         SEQ_ACL_50P,
259 };
260
261 static const unsigned short SEQ_ELVSS_ON[] = {
262         0xB1, 0x0D,
263
264         DATA_ONLY, 0x00,
265         DATA_ONLY, 0x16,
266         ENDDEF, 0x00
267 };
268
269
270 static const unsigned short SEQ_ELVSS_49[] = {
271         0xB2, 0x10,
272
273         DATA_ONLY, 0x10,
274         DATA_ONLY, 0x10,
275         DATA_ONLY, 0x10,
276         ENDDEF, 0x00
277 };
278
279 static const unsigned short SEQ_ELVSS_41[] = {
280         0xB2, 0x17,
281         DATA_ONLY, 0x17,
282         DATA_ONLY, 0x17,
283         DATA_ONLY, 0x17,
284         ENDDEF, 0x00
285 };
286
287 static const unsigned short SEQ_ELVSS_39[] = {
288         0xB2, 0x1A,
289         DATA_ONLY, 0x1A,
290         DATA_ONLY, 0x1A,
291         DATA_ONLY, 0x1A,
292         ENDDEF, 0x00
293 };
294
295 static const unsigned short SEQ_ELVSS_35[] = {
296         0xB2, 0x1E,
297         DATA_ONLY, 0x1E,
298         DATA_ONLY, 0x1E,
299         DATA_ONLY, 0x1E,
300         ENDDEF, 0x00
301 };
302
303 static const unsigned short *SEQ_ELVSS_set[] = {
304         SEQ_ELVSS_35,
305         SEQ_ELVSS_39,
306         SEQ_ELVSS_41,
307         SEQ_ELVSS_49,
308 };
309
310 static const unsigned short SEQ_GTCON[] = {
311         0xF7, 0x09,
312
313         ENDDEF, 0x00
314 };
315
316 static const unsigned short SEQ_PANEL_CONDITION[] = {
317         0xF8, 0x05,
318         DATA_ONLY, 0x5E,
319         DATA_ONLY, 0x96,
320         DATA_ONLY, 0x6B,
321         DATA_ONLY, 0x7D,
322         DATA_ONLY, 0x0D,
323         DATA_ONLY, 0x3F,
324         DATA_ONLY, 0x00,
325         DATA_ONLY, 0x00,
326         DATA_ONLY, 0x32,
327         DATA_ONLY, 0x00,
328         DATA_ONLY, 0x00,
329         DATA_ONLY, 0x00,
330         DATA_ONLY, 0x00,
331         DATA_ONLY, 0x00,
332         DATA_ONLY, 0x00,
333         DATA_ONLY, 0x07,
334         DATA_ONLY, 0x07,
335         DATA_ONLY, 0x20,
336         DATA_ONLY, 0x20,
337         DATA_ONLY, 0x20,
338         DATA_ONLY, 0x00,
339         DATA_ONLY, 0x00,
340         ENDDEF, 0x00
341 };
342
343 static const unsigned short SEQ_GAMMA_SET1[] = {
344         0xF9, 0x00,
345         DATA_ONLY, 0xC7,
346         DATA_ONLY, 0xC4,
347         DATA_ONLY, 0xAC,
348         DATA_ONLY, 0xC9,
349         DATA_ONLY, 0x00,
350         DATA_ONLY, 0x7B,
351         DATA_ONLY, 0x00,
352         DATA_ONLY, 0xB5,
353         DATA_ONLY, 0xC0,
354         DATA_ONLY, 0xA8,
355         DATA_ONLY, 0xC7,
356         DATA_ONLY, 0x00,
357         DATA_ONLY, 0xA3,
358         DATA_ONLY, 0x00,
359         DATA_ONLY, 0xBD,
360         DATA_ONLY, 0xBF,
361         DATA_ONLY, 0xA6,
362         DATA_ONLY, 0xC6,
363         DATA_ONLY, 0x00,
364         DATA_ONLY, 0xA4,
365         ENDDEF, 0x00
366 };
367
368 static const unsigned short SEQ_GAMMA_CTRL[] = {
369         0xFB, 0x02,
370
371         DATA_ONLY, 0x5A,
372         ENDDEF, 0x00
373 };
374
375 static const unsigned short SEQ_GAMMA_START[] = {
376         0xF9, COMMAND_ONLY,
377
378         ENDDEF, 0x00
379 };
380
381 static const unsigned short SEQ_APON[] = {
382         0xF3, 0x00,
383
384         DATA_ONLY, 0x00,
385         DATA_ONLY, 0x00,
386         DATA_ONLY, 0x0A,
387         DATA_ONLY, 0x02,
388         ENDDEF, 0x00
389 };
390
391 static const unsigned short SEQ_DISPCTL[] = {
392         0xF2, 0x02,
393
394         DATA_ONLY, 0x06,
395         DATA_ONLY, 0x0A,
396         DATA_ONLY, 0x10,
397         DATA_ONLY, 0x10,
398         ENDDEF, 0x00
399 };
400
401
402 static const unsigned short SEQ_MANPWR[] = {
403         0xB0, 0x04,
404         ENDDEF, 0x00
405 };
406
407 static const unsigned short SEQ_PWR_CTRL[] = {
408         0xF4, 0x0A,
409
410         DATA_ONLY, 0x87,
411         DATA_ONLY, 0x25,
412         DATA_ONLY, 0x6A,
413         DATA_ONLY, 0x44,
414         DATA_ONLY, 0x02,
415         ENDDEF, 0x00
416 };
417
418 static const unsigned short SEQ_SLPOUT[] = {
419         0x11, COMMAND_ONLY,
420         SLEEPMSEC, 120,
421         ENDDEF, 0x00
422 };
423
424 static const unsigned short SEQ_SLPIN[] = {
425         0x10, COMMAND_ONLY,
426         ENDDEF, 0x00
427 };
428
429 static const unsigned short SEQ_DISPON[] = {
430         0x29, COMMAND_ONLY,
431         ENDDEF, 0x00
432 };
433
434 static const unsigned short SEQ_DISPOFF[] = {
435         0x28, COMMAND_ONLY,
436         ENDDEF, 0x00
437 };
438
439 static const unsigned short SEQ_VCI1_1ST_EN[] = {
440         0xF3, 0x10,
441
442         DATA_ONLY, 0x00,
443         DATA_ONLY, 0x00,
444         DATA_ONLY, 0x00,
445         DATA_ONLY, 0x02,
446         ENDDEF, 0x00
447 };
448
449 static const unsigned short SEQ_VL1_EN[] = {
450         0xF3, 0x11,
451
452         DATA_ONLY, 0x00,
453         DATA_ONLY, 0x00,
454         DATA_ONLY, 0x00,
455         DATA_ONLY, 0x02,
456         ENDDEF, 0x00
457 };
458
459 static const unsigned short SEQ_VL2_EN[] = {
460         0xF3, 0x13,
461
462         DATA_ONLY, 0x00,
463         DATA_ONLY, 0x00,
464         DATA_ONLY, 0x00,
465         DATA_ONLY, 0x02,
466         ENDDEF, 0x00
467 };
468
469 static const unsigned short SEQ_VCI1_2ND_EN[] = {
470         0xF3, 0x33,
471
472         DATA_ONLY, 0x00,
473         DATA_ONLY, 0x00,
474         DATA_ONLY, 0x00,
475         DATA_ONLY, 0x02,
476         ENDDEF, 0x00
477 };
478
479 static const unsigned short SEQ_VL3_EN[] = {
480         0xF3, 0x37,
481
482         DATA_ONLY, 0x00,
483         DATA_ONLY, 0x00,
484         DATA_ONLY, 0x00,
485         DATA_ONLY, 0x02,
486         ENDDEF, 0x00
487 };
488
489 static const unsigned short SEQ_VREG1_AMP_EN[] = {
490         0xF3, 0x37,
491
492         DATA_ONLY, 0x01,
493         DATA_ONLY, 0x00,
494         DATA_ONLY, 0x00,
495         DATA_ONLY, 0x02,
496         ENDDEF, 0x00
497 };
498
499 static const unsigned short SEQ_VGH_AMP_EN[] = {
500         0xF3, 0x37,
501
502         DATA_ONLY, 0x11,
503         DATA_ONLY, 0x00,
504         DATA_ONLY, 0x00,
505         DATA_ONLY, 0x02,
506         ENDDEF, 0x00
507 };
508
509 static const unsigned short SEQ_VGL_AMP_EN[] = {
510         0xF3, 0x37,
511
512         DATA_ONLY, 0x31,
513         DATA_ONLY, 0x00,
514         DATA_ONLY, 0x00,
515         DATA_ONLY, 0x02,
516         ENDDEF, 0x00
517 };
518
519 static const unsigned short SEQ_VMOS_AMP_EN[] = {
520         0xF3, 0x37,
521
522         DATA_ONLY, 0xB1,
523         DATA_ONLY, 0x00,
524         DATA_ONLY, 0x00,
525         DATA_ONLY, 0x03,
526         ENDDEF, 0x00
527 };
528
529 static const unsigned short SEQ_VINT_AMP_EN[] = {
530         0xF3, 0x37,
531
532         DATA_ONLY, 0xF1,
533         /* DATA_ONLY, 0x71,     VMOS/VBL/VBH not used */
534         DATA_ONLY, 0x00,
535         DATA_ONLY, 0x00,
536         DATA_ONLY, 0x03,
537         /* DATA_ONLY, 0x02,     VMOS/VBL/VBH not used */
538         ENDDEF, 0x00
539 };
540
541 static const unsigned short SEQ_VBH_AMP_EN[] = {
542         0xF3, 0x37,
543
544         DATA_ONLY, 0xF9,
545         DATA_ONLY, 0x00,
546         DATA_ONLY, 0x00,
547         DATA_ONLY, 0x03,
548         ENDDEF, 0x00
549 };
550
551 static const unsigned short SEQ_VBL_AMP_EN[] = {
552         0xF3, 0x37,
553
554         DATA_ONLY, 0xFD,
555         DATA_ONLY, 0x00,
556         DATA_ONLY, 0x00,
557         DATA_ONLY, 0x03,
558         ENDDEF, 0x00
559 };
560
561 static const unsigned short SEQ_GAM_AMP_EN[] = {
562         0xF3, 0x37,
563
564         DATA_ONLY, 0xFF,
565         /* DATA_ONLY, 0x73,     VMOS/VBL/VBH not used */
566         DATA_ONLY, 0x00,
567         DATA_ONLY, 0x00,
568         DATA_ONLY, 0x03,
569         /* DATA_ONLY, 0x02,     VMOS/VBL/VBH not used */
570         ENDDEF, 0x00
571 };
572
573 static const unsigned short SEQ_SD_AMP_EN[] = {
574         0xF3, 0x37,
575
576         DATA_ONLY, 0xFF,
577         /* DATA_ONLY, 0x73,     VMOS/VBL/VBH not used */
578         DATA_ONLY, 0x80,
579         DATA_ONLY, 0x00,
580         DATA_ONLY, 0x03,
581         /* DATA_ONLY, 0x02,     VMOS/VBL/VBH not used */
582         ENDDEF, 0x00
583 };
584
585 static const unsigned short SEQ_GLS_EN[] = {
586         0xF3, 0x37,
587
588         DATA_ONLY, 0xFF,
589         /* DATA_ONLY, 0x73,     VMOS/VBL/VBH not used */
590         DATA_ONLY, 0x81,
591         DATA_ONLY, 0x00,
592         DATA_ONLY, 0x03,
593         /* DATA_ONLY, 0x02,     VMOS/VBL/VBH not used */
594         ENDDEF, 0x00
595 };
596
597 static const unsigned short SEQ_ELS_EN[] = {
598         0xF3, 0x37,
599
600         DATA_ONLY, 0xFF,
601         /* DATA_ONLY, 0x73,     VMOS/VBL/VBH not used */
602         DATA_ONLY, 0x83,
603         DATA_ONLY, 0x00,
604         DATA_ONLY, 0x03,
605         /* DATA_ONLY, 0x02,     VMOS/VBL/VBH not used */
606         ENDDEF, 0x00
607 };
608
609 static const unsigned short SEQ_EL_ON[] = {
610         0xF3, 0x37,
611
612         DATA_ONLY, 0xFF,
613         /* DATA_ONLY, 0x73,     VMOS/VBL/VBH not used */
614         DATA_ONLY, 0x87,
615         DATA_ONLY, 0x00,
616         DATA_ONLY, 0x03,
617         /* DATA_ONLY, 0x02,     VMOS/VBL/VBH not used */
618         ENDDEF, 0x00
619 };
620
621 #define MAX_GAMMA_LEVEL         25
622 #define GAMMA_TABLE_COUNT               21
623
624 /* [U1] OCTA 4.27 XVGA - gamma value: 2.2 */
625
626 static const unsigned int ld9040_22_300[] = {
627   0x00, 0xCA, 0xC4, 0xB8, 0xC6, 0x00, 0xAB
628 , 0x00, 0xC3, 0xC1, 0xB4, 0xC0, 0x00, 0xD1
629 , 0x00, 0xC6, 0xC2, 0xB1, 0xBF, 0x00, 0xDF
630 };
631
632 static const unsigned int ld9040_22_290[] = {
633   0x00, 0xCB, 0xC5, 0xB8, 0xC6, 0x00, 0xAA
634 , 0x00, 0xC3, 0xC2, 0xB5, 0xC1, 0x00, 0xCF
635 , 0x00, 0xC7, 0xC2, 0xB2, 0xBF, 0x00, 0xDE
636 };
637
638 static const unsigned int ld9040_22_280[] = {
639   0x00, 0xCC, 0xC5, 0xBA, 0xC6, 0x00, 0xA7
640 , 0x00, 0xC3, 0xC1, 0xB6, 0xC2, 0x00, 0xCB
641 , 0x00, 0xC7, 0xC2, 0xB4, 0xBF, 0x00, 0xDA
642 };
643
644 static const unsigned int ld9040_22_270[] = {
645   0x00, 0xCC, 0xC4, 0xBB, 0xC7, 0x00, 0xA3
646 , 0x00, 0xC3, 0xC2, 0xB6, 0xC2, 0x00, 0xC8
647 , 0x00, 0xC8, 0xC1, 0xB3, 0xC1, 0x00, 0xD6
648 };
649 static const unsigned int ld9040_22_260[] = {
650   0x00, 0xCD, 0xC5, 0xB6, 0xC8, 0x00, 0xA3
651 , 0x00, 0xC3, 0xC3, 0xB6, 0xC3, 0x00, 0xC8
652 , 0x00, 0xC8, 0xC3, 0xB4, 0xC2, 0x00, 0xD5
653 };
654
655 static const unsigned int ld9040_22_250[] = {
656   0x00, 0xCC, 0xC5, 0xBD, 0xCA, 0x00, 0xA0
657 , 0x00, 0xC3, 0xC3, 0xB8, 0xC4, 0x00, 0xC4
658 , 0x00, 0xC8, 0xC2, 0xB5, 0xC3, 0x00, 0xD2
659 };
660
661 static const unsigned int ld9040_22_240[] = {
662   0x00, 0xCC, 0xC5, 0xBD, 0xCA, 0x00, 0x9E
663 , 0x00, 0xC4, 0xC4, 0xB8, 0xC4, 0x00, 0xC1
664 , 0x00, 0xC9, 0xC3, 0xB6, 0xC2, 0x00, 0xCF
665 };
666
667 static const unsigned int ld9040_22_230[] = {
668   0x00, 0xCD, 0xC6, 0xBD, 0xCA, 0x00, 0x9B
669 , 0x00, 0xC3, 0xC4, 0xB9, 0xC4, 0x00, 0xBE
670 , 0x00, 0xCA, 0xC4, 0xB6, 0xC3, 0x00, 0xCB
671 };
672
673 static const unsigned int ld9040_22_220[] = {
674   0x00, 0xCD, 0xC6, 0xBD, 0xCC, 0x00, 0x98
675 , 0x00, 0xC3, 0xC5, 0xB9, 0xC5, 0x00, 0xBA
676 , 0x00, 0xC9, 0xC4, 0xB7, 0xC4, 0x00, 0xC7
677 };
678
679 static const unsigned int ld9040_22_210[] = {
680   0x00, 0xCE, 0xC7, 0xBD, 0xCC, 0x00, 0x95
681 , 0x00, 0xC3, 0xC4, 0xBA, 0xC6, 0x00, 0xB7
682 , 0x00, 0xCA, 0xC5, 0xB8, 0xC4, 0x00, 0xC3
683 };
684
685 static const unsigned int ld9040_22_200[] = {
686   0x00, 0xCF, 0xC7, 0xBE, 0xCD, 0x00, 0x92
687 , 0x00, 0xC3, 0xC5, 0xBA, 0xC7, 0x00, 0xB3
688 , 0x00, 0xCB, 0xC5, 0xB9, 0xC4, 0x00, 0xC0
689 };
690
691 static const unsigned int ld9040_22_190[] = {
692   0x00, 0xCE, 0xC8, 0xBF, 0xCD, 0x00, 0x8F
693 , 0x00, 0xC3, 0xC5, 0xBA, 0xC8, 0x00, 0xAF
694 , 0x00, 0xCA, 0xC5, 0xBA, 0xC5, 0x00, 0xBC
695 };
696
697 static const unsigned int ld9040_22_180[] = {
698   0x00, 0xCE, 0xC7, 0xC1, 0xCD, 0x00, 0x8C
699 , 0x00, 0xC4, 0xC5, 0xBB, 0xC8, 0x00, 0xAC
700 , 0x00, 0xCA, 0xC4, 0xBB, 0xC6, 0x00, 0xB8
701 };
702
703 static const unsigned int ld9040_22_170[] = {
704   0x00, 0xCE, 0xC7, 0xC1, 0xCF, 0x00, 0x88
705 , 0x00, 0xC3, 0xC5, 0xBC, 0xCA, 0x00, 0xA7
706 , 0x00, 0xCB, 0xC5, 0xBB, 0xC7, 0x00, 0xB3
707 };
708
709 static const unsigned int ld9040_22_160[] = {
710   0x00, 0xCE, 0xC9, 0xC1, 0xCF, 0x00, 0x85
711 , 0x00, 0xC2, 0xC6, 0xBD, 0xCA, 0x00, 0xA3
712 , 0x00, 0xCB, 0xC6, 0xBB, 0xC8, 0x00, 0xAF
713 };
714
715 static const unsigned int ld9040_22_150[] = {
716   0x00, 0xCF, 0xC9, 0xC1, 0xD1, 0x00, 0x82
717 , 0x00, 0xC3, 0xC6, 0xBE, 0xCB, 0x00, 0x9F
718 , 0x00, 0xCC, 0xC6, 0xBB, 0xC9, 0x00, 0xAB
719 };
720
721 static const unsigned int ld9040_22_140[] = {
722   0x00, 0xCF, 0xCA, 0xC1, 0xD0, 0x00, 0x7F
723 , 0x00, 0xC3, 0xC6, 0xBF, 0xCB, 0x00, 0x9B
724 , 0x00, 0xCC, 0xC8, 0xBD, 0xC9, 0x00, 0xA6
725 };
726
727 static const unsigned int ld9040_22_130[] = {
728   0x00, 0xCF, 0xCB, 0xC2, 0xD1, 0x00, 0x7B
729 , 0x00, 0xC2, 0xC7, 0xBF, 0xCC, 0x00, 0x97
730 , 0x00, 0xCC, 0xC8, 0xBE, 0xCB, 0x00, 0xA1
731 };
732
733 static const unsigned int ld9040_22_120[] = {
734   0x00, 0xD0, 0xCB, 0xC2, 0xD3, 0x00, 0x77
735 , 0x00, 0xC2, 0xC8, 0xC0, 0xCD, 0x00, 0x92
736 , 0x00, 0xCD, 0xC8, 0xBE, 0xCC, 0x00, 0x9C
737 };
738
739 static const unsigned int ld9040_22_110[] = {
740   0x00, 0xD0, 0xCB, 0xC3, 0xD3, 0x00, 0x74
741 , 0x00, 0xC2, 0xC8, 0xC1, 0xCE, 0x00, 0x8D
742 , 0x00, 0xCD, 0xC8, 0xBF, 0xCC, 0x00, 0x98
743 };
744
745 static const unsigned int ld9040_22_100[] = {
746   0x00, 0xD1, 0xCB, 0xC5, 0xD4, 0x00, 0x6F
747 , 0x00, 0xC2, 0xC8, 0xC2, 0xCF, 0x00, 0x88
748 , 0x00, 0xCE, 0xC9, 0xC0, 0xCE, 0x00, 0x92
749 };
750
751 static const unsigned int ld9040_22_90[] = {
752   0x00, 0xD2, 0xCA, 0xC5, 0xD4, 0x00, 0x6A
753 , 0x00, 0xC0, 0xC8, 0xC2, 0xD0, 0x00, 0x82
754 , 0x00, 0xCE, 0xC9, 0xC0, 0xCF, 0x00, 0x8B
755 };
756
757 static const unsigned int ld9040_22_80[] = {
758   0x00, 0xD2, 0xCB, 0xC6, 0xD7, 0x00, 0x65
759 , 0x00, 0xC0, 0xC9, 0xC3, 0xD2, 0x00, 0x7C
760 , 0x00, 0xCE, 0xCA, 0xC2, 0xD1, 0x00, 0x85
761 };
762
763 static const unsigned int ld9040_22_70[] = {
764   0x00, 0xD4, 0xCD, 0xC7, 0xD7, 0x00, 0x60
765 , 0x00, 0xBC, 0xCB, 0xC4, 0xD3, 0x00, 0x76
766 , 0x00, 0xCF, 0xCC, 0xC3, 0xD2, 0x00, 0x7F
767 };
768
769 static const unsigned int ld9040_22_60[] = {
770   0x00, 0xD5, 0xCD, 0xC8, 0xD7, 0x00, 0x5B
771 , 0x00, 0xBA, 0xCA, 0xC5, 0xD4, 0x00, 0x71
772 , 0x00, 0xD0, 0xCC, 0xC5, 0xD3, 0x00, 0x78
773 };
774
775 static const unsigned int ld9040_22_50[] = {
776   0x00, 0xD6, 0xCE, 0xCA, 0xD8, 0x00, 0x55
777 , 0x00, 0xB9, 0xCA, 0xC6, 0xD6, 0x00, 0x69
778 , 0x00, 0xD1, 0xCC, 0xC6, 0xD5, 0x00, 0x71
779 };
780
781 static const unsigned int ld9040_22_40[] = {
782   0x00, 0xD9, 0xCE, 0xCA, 0xD9, 0x00, 0x4F
783 , 0x00, 0xB5, 0xCA, 0xC7, 0xD8, 0x00, 0x61
784 , 0x00, 0xD2, 0xCE, 0xC6, 0xD6, 0x00, 0x69
785 };
786
787 static const unsigned int ld9040_22_30_dimming[] = {
788   0x00, 0xD9, 0xD3, 0xCC, 0xDA, 0x00, 0x46
789 , 0x00, 0xB1, 0xC9, 0xC9, 0xD9, 0x00, 0x58
790 , 0x00, 0xD2, 0xD0, 0xC9, 0xD8, 0x00, 0x5E
791 };
792
793 static const unsigned int *p22Gamma_set[] = {
794         ld9040_22_30_dimming,
795         ld9040_22_40,
796         ld9040_22_70,
797         ld9040_22_90,
798         ld9040_22_100,
799         ld9040_22_110,
800         ld9040_22_120,
801         ld9040_22_130,
802         ld9040_22_140,
803         ld9040_22_150,
804         ld9040_22_160,
805         ld9040_22_170,
806         ld9040_22_180,
807         ld9040_22_190,
808         ld9040_22_200,
809         ld9040_22_210,
810         ld9040_22_220,
811         ld9040_22_230,
812         ld9040_22_240,
813         ld9040_22_250,
814         ld9040_22_260,
815         ld9040_22_270,
816         ld9040_22_280,
817         ld9040_22_290,
818         ld9040_22_300,
819 };
820
821 /*  OCTA 4.52 XVGA - gamma value: 1.9 */
822 static const unsigned int ld9040_19_300[] = {
823         0x00, 0xCD, 0xC8, 0xC0, 0xCC, 0x00, 0xAA,
824         0x00, 0xC9, 0xC7, 0xBA, 0xC6, 0x00, 0xD0,
825         0x00, 0xCA, 0xC5, 0xB8, 0xC6, 0x00, 0xDE
826 };
827
828 static const unsigned int ld9040_19_290[] = {
829         0x00, 0xCF, 0xC7, 0xC0, 0xCE, 0x00, 0xAB,
830         0x00, 0xCA, 0xC7, 0xBB, 0xC8, 0x00, 0xD0,
831         0x00, 0xCC, 0xC5, 0xB8, 0xC7, 0x00, 0xDF
832 };
833
834 static const unsigned int ld9040_19_280[] = {
835         0x00, 0xCF, 0xC9, 0xC0, 0xCD, 0x00, 0xA9,
836         0x00, 0xCA, 0xC8, 0xBC, 0xC8, 0x00, 0xCD,
837         0x00, 0xCB, 0xC7, 0xB9, 0xC6, 0x00, 0xDC
838 };
839
840 static const unsigned int ld9040_19_270[] = {
841         0x00, 0xD0, 0xCA, 0xC0, 0xCD, 0x00, 0xA7,
842         0x00, 0xCA, 0xC8, 0xBC, 0xC9, 0x00, 0xCA,
843         0x00, 0xCB, 0xC8, 0xBA, 0xC6, 0x00, 0xD9
844 };
845
846 static const unsigned int ld9040_19_260[] = {
847         0x00, 0xD0, 0xCA, 0xC1, 0xCD, 0x00, 0xA5,
848         0x00, 0xCA, 0xC7, 0xBE, 0xC9, 0x00, 0xC7,
849         0x00, 0xCC, 0xC7, 0xBB, 0xC7, 0x00, 0xD6
850 };
851
852 static const unsigned int ld9040_19_250[] = {
853         0x00, 0xD0, 0xCC, 0xC1, 0xCD, 0x00, 0xA2,
854         0x00, 0xCB, 0xC8, 0xBD, 0xCA, 0x00, 0xC4,
855         0x00, 0xCC, 0xC8, 0xBB, 0xC8, 0x00, 0xD2
856 };
857
858 static const unsigned int ld9040_19_240[] = {
859         0x00, 0xCF, 0xCB, 0xC2, 0xCE, 0x00, 0xA0,
860         0x00, 0xCB, 0xC8, 0xBE, 0xCA, 0x00, 0xC1,
861         0x00, 0xCB, 0xC8, 0xBC, 0xC8, 0x00, 0xCF
862 };
863
864 static const unsigned int ld9040_19_230[] = {
865         0x00, 0xCF, 0xCA, 0xC3, 0xD0, 0x00, 0x9C,
866         0x00, 0xCB, 0xC8, 0xBF, 0xCB, 0x00, 0xBD,
867         0x00, 0xCD, 0xC7, 0xBC, 0xCA, 0x00, 0xCA
868 };
869
870 static const unsigned int ld9040_19_220[] = {
871         0x00, 0xCF, 0xCB, 0xC4, 0xD0, 0x00, 0x99,
872         0x00, 0xCB, 0xCA, 0xBF, 0xCB, 0x00, 0xBA,
873         0x00, 0xCC, 0xC8, 0xBD, 0xCB, 0x00, 0xC6
874 };
875
876 static const unsigned int ld9040_19_210[] = {
877         0x00, 0xD0, 0xCA, 0xC4, 0xD1, 0x00, 0x96,
878         0x00, 0xCB, 0xC9, 0xC0, 0xCC, 0x00, 0xB6,
879         0x00, 0xCD, 0xC8, 0xBD, 0xCB, 0x00, 0xC3
880 };
881
882 static const unsigned int ld9040_19_200[] = {
883         0x00, 0xD1, 0xCB, 0xC4, 0xD2, 0x00, 0x93,
884         0x00, 0xCB, 0xCA, 0xC0, 0xCD, 0x00, 0xB2,
885         0x00, 0xCD, 0xCA, 0xBE, 0xCB, 0x00, 0xBF
886 };
887
888
889 static const unsigned int ld9040_19_190[] = {
890         0x00, 0xD1, 0xCC, 0xC5, 0xD2, 0x00, 0x90,
891         0x00, 0xCB, 0xCA, 0xC1, 0xCE, 0x00, 0xAE,
892         0x00, 0xCD, 0xCA, 0xC0, 0xCB, 0x00, 0xBB
893 };
894
895
896 static const unsigned int ld9040_19_180[] = {
897         0x00, 0xD2, 0xCC, 0xC5, 0xD2, 0x00, 0x8D,
898         0x00, 0xCC, 0xC9, 0xC2, 0xCE, 0x00, 0xAB,
899         0x00, 0xCD, 0xCA, 0xC0, 0xCC, 0x00, 0xB7
900 };
901
902
903 static const unsigned int ld9040_19_170[] = {
904         0x00, 0xD2, 0xCC, 0xC6, 0xD3, 0x00, 0x89,
905         0x00, 0xCC, 0xCA, 0xC2, 0xCF, 0x00, 0xA7,
906         0x00, 0xCE, 0xC9, 0xC1, 0xCE, 0x00, 0xB2
907 };
908
909 static const unsigned int ld9040_19_160[] = {
910         0x00, 0xD2, 0xCC, 0xC6, 0xD5, 0x00, 0x86,
911         0x00, 0xCC, 0xCB, 0xC2, 0xCF, 0x00, 0xA3,
912         0x00, 0xCF, 0xC9, 0xC0, 0xCF, 0x00, 0xAF
913 };
914
915 static const unsigned int ld9040_19_150[] = {
916         0x00, 0xD1, 0xCD, 0xC7, 0xD6, 0x00, 0x82,
917         0x00, 0xCB, 0xCC, 0xC4, 0xD0, 0x00, 0x9F,
918         0x00, 0xCE, 0xCA, 0xC1, 0xCF, 0x00, 0xAA
919 };
920
921 static const unsigned int ld9040_19_140[] = {
922         0x00, 0xD2, 0xCD, 0xC6, 0xD8, 0x00, 0x7E,
923         0x00, 0xCB, 0xCC, 0xC4, 0xD3, 0x00, 0x99,
924         0x00, 0xCF, 0xCB, 0xC1, 0xD1, 0x00, 0xA5
925 };
926
927 static const unsigned int ld9040_19_130[] = {
928         0x00, 0xD3, 0xCE, 0xC7, 0xD6, 0x00, 0x7B,
929         0x00, 0xCB, 0xCD, 0xC5, 0xD2, 0x00, 0x96,
930         0x00, 0xD0, 0xCD, 0xC3, 0xCF, 0x00, 0xA1
931 };
932
933 static const unsigned int ld9040_19_120[] = {
934         0x00, 0xD4, 0xCE, 0xC8, 0xD7, 0x00, 0x77,
935         0x00, 0xCB, 0xCD, 0xC6, 0xD3, 0x00, 0x91,
936         0x00, 0xD0, 0xCC, 0xC5, 0xD1, 0x00, 0x9B
937 };
938
939 static const unsigned int ld9040_19_110[] = {
940         0x00, 0xD4, 0xCF, 0xC9, 0xD6, 0x00, 0x74,
941         0x00, 0xCC, 0xCE, 0xC6, 0xD4, 0x00, 0x8C,
942         0x00, 0xCF, 0xCD, 0xC6, 0xD1, 0x00, 0x97
943 };
944
945 static const unsigned int ld9040_19_100[] = {
946         0x00, 0xD4, 0xCD, 0xCB, 0xD8, 0x00, 0x6F,
947         0x00, 0xCB, 0xCE, 0xC7, 0xD5, 0x00, 0x87,
948         0x00, 0xD0, 0xCD, 0xC5, 0xD4, 0x00, 0x91
949 };
950
951 static const unsigned int ld9040_19_90[] = {
952         0x00, 0xD6, 0xCF, 0xCA, 0xDA, 0x00, 0x6A,
953         0x00, 0xCB, 0xCF, 0xC8, 0xD7, 0x00, 0x81,
954         0x00, 0xD2, 0xCE, 0xC5, 0xD6, 0x00, 0x8B
955 };
956
957
958 static const unsigned int ld9040_19_80[] = {
959         0x00, 0xD7, 0xCF, 0xCB, 0xDA, 0x00, 0x66,
960         0x00, 0xCB, 0xCF, 0xCA, 0xD7, 0x00, 0x7C,
961         0x00, 0xD3, 0xCF, 0xC7, 0xD5, 0x00, 0x86
962 };
963
964 static const unsigned int ld9040_19_70[] = {
965         0x00, 0xD7, 0xD1, 0xCC, 0xDA, 0x00, 0x61,
966         0x00, 0xCA, 0xD0, 0xCA, 0xD8, 0x00, 0x77,
967         0x00, 0xD2, 0xD1, 0xC9, 0xD6, 0x00, 0x7F
968 };
969
970 static const unsigned int ld9040_19_60[] = {
971         0x00, 0xD9, 0xD0, 0xCD, 0xDA, 0x00, 0x5D,
972         0x00, 0xCC, 0xCF, 0xCB, 0xD9, 0x00, 0x70,
973         0x00, 0xD4, 0xD0, 0xCA, 0xD8, 0x00, 0x78
974 };
975
976 static const unsigned int ld9040_19_50[] = {
977         0x00, 0xD8, 0xD2, 0xCF, 0xDB, 0x00, 0x56,
978         0x00, 0xCA, 0xD1, 0xCC, 0xDB, 0x00, 0x69,
979         0x00, 0xD3, 0xD1, 0xCC, 0xDA, 0x00, 0x70
980 };
981
982 static const unsigned int ld9040_19_40[] = {
983         0x00, 0xDA, 0xD2, 0xD1, 0xDC, 0x00, 0x4F,
984         0x00, 0xC6, 0xD2, 0xCF, 0xDB, 0x00, 0x61,
985         0x00, 0xD4, 0xD2, 0xCE, 0xDB, 0x00, 0x68
986 };
987
988 static const unsigned int ld9040_19_30_dimming[] = {
989         0x00, 0xDC, 0xD5, 0xD2, 0xDE, 0x00, 0x46,
990         0x00, 0xC3, 0xD2, 0xCF, 0xDE, 0x00, 0x58,
991         0x00, 0xD3, 0xD4, 0xCF, 0xDD, 0x00, 0x5E
992 };
993
994 static const unsigned int *p19Gamma_set[] = {
995         ld9040_19_30_dimming,
996         ld9040_19_40,
997         ld9040_19_70,
998         ld9040_19_90,
999         ld9040_19_100,
1000         ld9040_19_110,
1001         ld9040_19_120,
1002         ld9040_19_130,
1003         ld9040_19_140,
1004         ld9040_19_150,
1005         ld9040_19_160,
1006         ld9040_19_170,
1007         ld9040_19_180,
1008         ld9040_19_190,
1009         ld9040_19_200,
1010         ld9040_19_210,
1011         ld9040_19_220,
1012         ld9040_19_230,
1013         ld9040_19_240,
1014         ld9040_19_250,
1015         ld9040_19_260,
1016         ld9040_19_270,
1017         ld9040_19_280,
1018         ld9040_19_290,
1019         ld9040_19_300,
1020 };
1021
1022 struct ld9040_panel_data s2plus_panel_data = {
1023         .seq_display_set = SEQ_INIT_DISPLAY_SETTING,
1024         .seq_etc_set = SEQ_INIT_ETC_SETTING,
1025         .seq_user_set = SEQ_USER_SETTING,
1026         .seq_panelcondition_set = SEQ_PANEL_CONDITION,
1027         .seq_displayctl_set = SEQ_DISPCTL,
1028         .seq_gtcon_set = SEQ_GTCON,
1029         .seq_manpwr_set = SEQ_MANPWR,
1030         .seq_pwrctl_set = SEQ_PWR_CTRL,
1031         .seq_gamma_set1 = SEQ_GAMMA_SET1,
1032         .display_on = SEQ_DISPON,
1033         .display_off = SEQ_DISPOFF,
1034         .sleep_in = SEQ_SLPIN,
1035         .sleep_out = SEQ_SLPOUT,
1036         .gamma_start = SEQ_GAMMA_START,
1037         .gamma_ctrl = SEQ_GAMMA_CTRL,
1038         .gamma19_table = p19Gamma_set,
1039         .gamma22_table = p22Gamma_set,
1040         .acl_table = ACL_cutoff_set,
1041         .elvss_table = SEQ_ELVSS_set,
1042         .acl_on = SEQ_ACL_ON,
1043         .elvss_on = SEQ_ELVSS_ON,
1044         .gamma_table_size = ARRAY_SIZE(p22Gamma_set),
1045 };
1046
1047