Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
[pandora-kernel.git] / drivers / video / backlight / s6e63m0_gamma.h
1 /* linux/drivers/video/samsung/s6e63m0_brightness.h
2  *
3  * Gamma level definitions.
4  *
5  * Copyright (c) 2009 Samsung Electronics
6  * InKi Dae <inki.dae@samsung.com>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11 */
12
13 #ifndef _S6E63M0_BRIGHTNESS_H
14 #define _S6E63M0_BRIGHTNESS_H
15
16 #define MAX_GAMMA_LEVEL         11
17 #define GAMMA_TABLE_COUNT       21
18
19 /* gamma value: 2.2 */
20 static const unsigned int s6e63m0_22_300[] = {
21         0x18, 0x08, 0x24, 0x5f, 0x50, 0x2d, 0xB6,
22         0xB9, 0xA7, 0xAd, 0xB1, 0x9f, 0xbe, 0xC0,
23         0xB5, 0x00, 0xa0, 0x00, 0xa4, 0x00, 0xdb
24 };
25
26 static const unsigned int s6e63m0_22_280[] = {
27         0x18, 0x08, 0x24, 0x64, 0x56, 0x33, 0xB6,
28         0xBA, 0xA8, 0xAC, 0xB1, 0x9D, 0xC1, 0xC1,
29         0xB7, 0x00, 0x9C, 0x00, 0x9F, 0x00, 0xD6
30 };
31
32 static const unsigned int s6e63m0_22_260[] = {
33         0x18, 0x08, 0x24, 0x66, 0x58, 0x34, 0xB6,
34         0xBA, 0xA7, 0xAF, 0xB3, 0xA0, 0xC1, 0xC2,
35         0xB7, 0x00, 0x97, 0x00, 0x9A, 0x00, 0xD1
36
37 };
38
39 static const unsigned int s6e63m0_22_240[] = {
40         0x18, 0x08, 0x24, 0x62, 0x54, 0x30, 0xB9,
41         0xBB, 0xA9, 0xB0, 0xB3, 0xA1, 0xC1, 0xC3,
42         0xB7, 0x00, 0x91, 0x00, 0x95, 0x00, 0xDA
43
44 };
45 static const unsigned int s6e63m0_22_220[] = {
46         0x18, 0x08, 0x24, 0x63, 0x53, 0x31, 0xB8,
47         0xBC, 0xA9, 0xB0, 0xB5, 0xA2, 0xC4, 0xC4,
48         0xB8, 0x00, 0x8B, 0x00, 0x8E, 0x00, 0xC2
49 };
50
51 static const unsigned int s6e63m0_22_200[] = {
52         0x18, 0x08, 0x24, 0x66, 0x55, 0x34, 0xBA,
53         0xBD, 0xAB, 0xB1, 0xB5, 0xA3, 0xC5, 0xC6,
54         0xB9, 0x00, 0x85, 0x00, 0x88, 0x00, 0xBA
55 };
56
57 static const unsigned int s6e63m0_22_170[] = {
58         0x18, 0x08, 0x24, 0x69, 0x54, 0x37, 0xBB,
59         0xBE, 0xAC, 0xB4, 0xB7, 0xA6, 0xC7, 0xC8,
60         0xBC, 0x00, 0x7B, 0x00, 0x7E, 0x00, 0xAB
61 };
62
63 static const unsigned int s6e63m0_22_140[] = {
64         0x18, 0x08, 0x24, 0x6C, 0x54, 0x3A, 0xBC,
65         0xBF, 0xAC, 0xB7, 0xBB, 0xA9, 0xC9, 0xC9,
66         0xBE, 0x00, 0x71, 0x00, 0x73, 0x00, 0x9E
67 };
68
69 static const unsigned int s6e63m0_22_110[] = {
70         0x18, 0x08, 0x24, 0x70, 0x51, 0x3E, 0xBF,
71         0xC1, 0xAF, 0xB9, 0xBC, 0xAB, 0xCC, 0xCC,
72         0xC2, 0x00, 0x65, 0x00, 0x67, 0x00, 0x8D
73 };
74
75 static const unsigned int s6e63m0_22_90[] = {
76         0x18, 0x08, 0x24, 0x73, 0x4A, 0x3D, 0xC0,
77         0xC2, 0xB1, 0xBB, 0xBE, 0xAC, 0xCE, 0xCF,
78         0xC5, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x82
79 };
80
81 static const unsigned int s6e63m0_22_30[] = {
82         0x18, 0x08, 0x24, 0x78, 0xEC, 0x3D, 0xC8,
83         0xC2, 0xB6, 0xC4, 0xC7, 0xB6, 0xD5, 0xD7,
84         0xCC, 0x00, 0x39, 0x00, 0x36, 0x00, 0x51
85 };
86
87 /* gamma value: 1.9 */
88 static const unsigned int s6e63m0_19_300[] = {
89         0x18, 0x08, 0x24, 0x61, 0x5F, 0x39, 0xBA,
90         0xBD, 0xAD, 0xB1, 0xB6, 0xA5, 0xC4, 0xC5,
91         0xBC, 0x00, 0xA0, 0x00, 0xA4, 0x00, 0xDB
92 };
93
94 static const unsigned int s6e63m0_19_280[] = {
95         0x18, 0x08, 0x24, 0x61, 0x60, 0x39, 0xBB,
96         0xBE, 0xAD, 0xB2, 0xB6, 0xA6, 0xC5, 0xC7,
97         0xBD, 0x00, 0x9B, 0x00, 0x9E, 0x00, 0xD5
98 };
99
100 static const unsigned int s6e63m0_19_260[] = {
101         0x18, 0x08, 0x24, 0x63, 0x61, 0x3B, 0xBA,
102         0xBE, 0xAC, 0xB3, 0xB8, 0xA7, 0xC6, 0xC8,
103         0xBD, 0x00, 0x96, 0x00, 0x98, 0x00, 0xCF
104 };
105
106 static const unsigned int s6e63m0_19_240[] = {
107         0x18, 0x08, 0x24, 0x67, 0x64, 0x3F, 0xBB,
108         0xBE, 0xAD, 0xB3, 0xB9, 0xA7, 0xC8, 0xC9,
109         0xBE, 0x00, 0x90, 0x00, 0x92, 0x00, 0xC8
110 };
111
112 static const unsigned int s6e63m0_19_220[] = {
113         0x18, 0x08, 0x24, 0x68, 0x64, 0x40, 0xBC,
114         0xBF, 0xAF, 0xB4, 0xBA, 0xA9, 0xC8, 0xCA,
115         0xBE, 0x00, 0x8B, 0x00, 0x8C, 0x00, 0xC0
116 };
117
118 static const unsigned int s6e63m0_19_200[] = {
119         0x18, 0x08, 0x24, 0x68, 0x64, 0x3F, 0xBE,
120         0xC0, 0xB0, 0xB6, 0xBB, 0xAB, 0xC8, 0xCB,
121         0xBF, 0x00, 0x85, 0x00, 0x86, 0x00, 0xB8
122 };
123
124 static const unsigned int s6e63m0_19_170[] = {
125         0x18, 0x08, 0x24, 0x69, 0x64, 0x40, 0xBF,
126         0xC1, 0xB0, 0xB9, 0xBE, 0xAD, 0xCB, 0xCD,
127         0xC2, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0xAA
128 };
129
130 static const unsigned int s6e63m0_19_140[] = {
131         0x18, 0x08, 0x24, 0x6E, 0x65, 0x45, 0xC0,
132         0xC3, 0xB2, 0xBA, 0xBE, 0xAE, 0xCD, 0xD0,
133         0xC4, 0x00, 0x70, 0x00, 0x70, 0x00, 0x9C
134 };
135
136 static const unsigned int s6e63m0_19_110[] = {
137         0x18, 0x08, 0x24, 0x6F, 0x65, 0x46, 0xC2,
138         0xC4, 0xB3, 0xBF, 0xC2, 0xB2, 0xCF, 0xD1,
139         0xC6, 0x00, 0x64, 0x00, 0x64, 0x00, 0x8D
140 };
141
142 static const unsigned int s6e63m0_19_90[] = {
143         0x18, 0x08, 0x24, 0x74, 0x60, 0x4A, 0xC3,
144         0xC6, 0xB5, 0xBF, 0xC3, 0xB2, 0xD2, 0xD3,
145         0xC8, 0x00, 0x5B, 0x00, 0x5B, 0x00, 0x81
146 };
147
148 static const unsigned int s6e63m0_19_30[] = {
149         0x18, 0x08, 0x24, 0x84, 0x45, 0x4F, 0xCA,
150         0xCB, 0xBC, 0xC9, 0xCB, 0xBC, 0xDA, 0xDA,
151         0xD0, 0x00, 0x35, 0x00, 0x34, 0x00, 0x4E
152 };
153
154 /* gamma value: 1.7 */
155 static const unsigned int s6e63m0_17_300[] = {
156         0x18, 0x08, 0x24, 0x70, 0x70, 0x4F, 0xBF,
157         0xC2, 0xB2, 0xB8, 0xBC, 0xAC, 0xCB, 0xCD,
158         0xC3, 0x00, 0xA0, 0x00, 0xA4, 0x00, 0xDB
159 };
160
161 static const unsigned int s6e63m0_17_280[] = {
162         0x18, 0x08, 0x24, 0x71, 0x71, 0x50, 0xBF,
163         0xC2, 0xB2, 0xBA, 0xBE, 0xAE, 0xCB, 0xCD,
164         0xC3, 0x00, 0x9C, 0x00, 0x9F, 0x00, 0xD6
165 };
166
167 static const unsigned int s6e63m0_17_260[] = {
168         0x18, 0x08, 0x24, 0x72, 0x72, 0x50, 0xC0,
169         0xC3, 0xB4, 0xB9, 0xBE, 0xAE, 0xCC, 0xCF,
170         0xC4, 0x00, 0x97, 0x00, 0x9A, 0x00, 0xD1
171 };
172
173 static const unsigned int s6e63m0_17_240[] = {
174         0x18, 0x08, 0x24, 0x71, 0x72, 0x4F, 0xC2,
175         0xC4, 0xB5, 0xBB, 0xBF, 0xB0, 0xCC, 0xCF,
176         0xC3, 0x00, 0x91, 0x00, 0x95, 0x00, 0xCA
177 };
178
179 static const unsigned int s6e63m0_17_220[] = {
180         0x18, 0x08, 0x24, 0x71, 0x73, 0x4F, 0xC2,
181         0xC5, 0xB5, 0xBD, 0xC0, 0xB2, 0xCD, 0xD1,
182         0xC5, 0x00, 0x8B, 0x00, 0x8E, 0x00, 0xC2
183 };
184
185 static const unsigned int s6e63m0_17_200[] = {
186         0x18, 0x08, 0x24, 0x72, 0x75, 0x51, 0xC2,
187         0xC6, 0xB5, 0xBF, 0xC1, 0xB3, 0xCE, 0xD1,
188         0xC6, 0x00, 0x85, 0x00, 0x88, 0x00, 0xBA
189 };
190
191 static const unsigned int s6e63m0_17_170[] = {
192         0x18, 0x08, 0x24, 0x75, 0x77, 0x54, 0xC3,
193         0xC7, 0xB7, 0xC0, 0xC3, 0xB4, 0xD1, 0xD3,
194         0xC9, 0x00, 0x7B, 0x00, 0x7E, 0x00, 0xAB
195 };
196
197 static const unsigned int s6e63m0_17_140[] = {
198         0x18, 0x08, 0x24, 0x7B, 0x77, 0x58, 0xC3,
199         0xC8, 0xB8, 0xC2, 0xC6, 0xB6, 0xD3, 0xD4,
200         0xCA, 0x00, 0x71, 0x00, 0x73, 0x00, 0x9E
201 };
202
203 static const unsigned int s6e63m0_17_110[] = {
204         0x18, 0x08, 0x24, 0x81, 0x7B, 0x5D, 0xC6,
205         0xCA, 0xBB, 0xC3, 0xC7, 0xB8, 0xD6, 0xD8,
206         0xCD, 0x00, 0x65, 0x00, 0x67, 0x00, 0x8D
207 };
208
209 static const unsigned int s6e63m0_17_90[] = {
210         0x18, 0x08, 0x24, 0x82, 0x7A, 0x5B, 0xC8,
211         0xCB, 0xBD, 0xC5, 0xCA, 0xBA, 0xD6, 0xD8,
212         0xCE, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x82
213 };
214
215 static const unsigned int s6e63m0_17_30[] = {
216         0x18, 0x08, 0x24, 0x8F, 0x73, 0x63, 0xD1,
217         0xD0, 0xC5, 0xCC, 0xD1, 0xC2, 0xDE, 0xE0,
218         0xD6, 0x00, 0x39, 0x00, 0x36, 0x00, 0x51
219 };
220
221 struct s6e63m0_gamma {
222         unsigned int *gamma_22_table[MAX_GAMMA_LEVEL];
223         unsigned int *gamma_19_table[MAX_GAMMA_LEVEL];
224         unsigned int *gamma_17_table[MAX_GAMMA_LEVEL];
225 };
226
227 static struct s6e63m0_gamma gamma_table = {
228         .gamma_22_table[0] = (unsigned int *)&s6e63m0_22_30,
229         .gamma_22_table[1] = (unsigned int *)&s6e63m0_22_90,
230         .gamma_22_table[2] = (unsigned int *)&s6e63m0_22_110,
231         .gamma_22_table[3] = (unsigned int *)&s6e63m0_22_140,
232         .gamma_22_table[4] = (unsigned int *)&s6e63m0_22_170,
233         .gamma_22_table[5] = (unsigned int *)&s6e63m0_22_200,
234         .gamma_22_table[6] = (unsigned int *)&s6e63m0_22_220,
235         .gamma_22_table[7] = (unsigned int *)&s6e63m0_22_240,
236         .gamma_22_table[8] = (unsigned int *)&s6e63m0_22_260,
237         .gamma_22_table[9] = (unsigned int *)&s6e63m0_22_280,
238         .gamma_22_table[10] = (unsigned int *)&s6e63m0_22_300,
239
240         .gamma_19_table[0] = (unsigned int *)&s6e63m0_19_30,
241         .gamma_19_table[1] = (unsigned int *)&s6e63m0_19_90,
242         .gamma_19_table[2] = (unsigned int *)&s6e63m0_19_110,
243         .gamma_19_table[3] = (unsigned int *)&s6e63m0_19_140,
244         .gamma_19_table[4] = (unsigned int *)&s6e63m0_19_170,
245         .gamma_19_table[5] = (unsigned int *)&s6e63m0_19_200,
246         .gamma_19_table[6] = (unsigned int *)&s6e63m0_19_220,
247         .gamma_19_table[7] = (unsigned int *)&s6e63m0_19_240,
248         .gamma_19_table[8] = (unsigned int *)&s6e63m0_19_260,
249         .gamma_19_table[9] = (unsigned int *)&s6e63m0_19_280,
250         .gamma_19_table[10] = (unsigned int *)&s6e63m0_19_300,
251
252         .gamma_17_table[0] = (unsigned int *)&s6e63m0_17_30,
253         .gamma_17_table[1] = (unsigned int *)&s6e63m0_17_90,
254         .gamma_17_table[2] = (unsigned int *)&s6e63m0_17_110,
255         .gamma_17_table[3] = (unsigned int *)&s6e63m0_17_140,
256         .gamma_17_table[4] = (unsigned int *)&s6e63m0_17_170,
257         .gamma_17_table[5] = (unsigned int *)&s6e63m0_17_200,
258         .gamma_17_table[6] = (unsigned int *)&s6e63m0_17_220,
259         .gamma_17_table[7] = (unsigned int *)&s6e63m0_17_240,
260         .gamma_17_table[8] = (unsigned int *)&s6e63m0_17_260,
261         .gamma_17_table[9] = (unsigned int *)&s6e63m0_17_280,
262         .gamma_17_table[10] = (unsigned int *)&s6e63m0_17_300,
263 };
264
265 #endif
266