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 
267