camera: delete compile warning
[firefly-linux-kernel-4.4.55.git] / drivers / media / video / hm5065.c
1  #include "generic_sensor.h"\r
2 \r
3 /*
4 *      Driver Version Note\r
5 *v0.0.1: this driver is compatible with generic_sensor\r
6 *v0.1.1:\r
7 *        add sensor_focus_af_const_pause_usr_cb;\r
8 */\r
9 static int version = KERNEL_VERSION(0,1,1);\r
10 module_param(version, int, S_IRUGO);\r
11 \r
12 \r
13 static int debug=1;\r
14 module_param(debug, int, S_IRUGO|S_IWUSR);\r
15 \r
16 #define dprintk(level, fmt, arg...) do {                        \\r
17         if (debug >= level)                                     \\r
18         printk(KERN_WARNING fmt , ## arg); } while (0)\r
19 \r
20 /* Sensor Driver Configuration Begin */\r
21 #define SENSOR_NAME RK29_CAM_SENSOR_HM5065\r
22 #define SENSOR_V4L2_IDENT V4L2_IDENT_HM5065\r
23 #define SENSOR_ID 0x039E\r
24 #define SENSOR_BUS_PARAM                                         (SOCAM_MASTER |\\r
25                                                                                          SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
26                                                                                          SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8  |SOCAM_MCLK_24MHZ)\r
27 #define SENSOR_PREVIEW_W                                         800\r
28 #define SENSOR_PREVIEW_H                                         600\r
29 #define SENSOR_PREVIEW_FPS                                       15000     // 15fps \r
30 #define SENSOR_FULLRES_L_FPS                             7500      // 7.5fps\r
31 #define SENSOR_FULLRES_H_FPS                             7500      // 7.5fps\r
32 #define SENSOR_720P_FPS                                          30000\r
33 #define SENSOR_1080P_FPS                                         15000\r
34 \r
35 #define SENSOR_REGISTER_LEN                              2                 // sensor register address bytes\r
36 #define SENSOR_VALUE_LEN                                         1                 // sensor register value bytes\r
37                                                                         \r
38 static unsigned int SensorConfiguration = (CFG_WhiteBalance|CFG_Effect\r
39                                            |CFG_Scene|CFG_Focus|CFG_FocusContinues\r
40                                            |CFG_FocusZone);\r
41 \r
42 static unsigned int SensorChipID[] = {SENSOR_ID};\r
43 /* Sensor Driver Configuration End */\r
44 \r
45 \r
46 #define SENSOR_NAME_STRING(a) STR(CONS(SENSOR_NAME, a))\r
47 #define SENSOR_NAME_VARFUN(a) CONS(SENSOR_NAME, a)\r
48 \r
49 #define SensorRegVal(a,b) CONS4(SensorReg,SENSOR_REGISTER_LEN,Val,SENSOR_VALUE_LEN)(a,b)\r
50 #define sensor_write(client,reg,v) CONS4(sensor_write_reg,SENSOR_REGISTER_LEN,val,SENSOR_VALUE_LEN)(client,(reg),(v))\r
51 #define sensor_read(client,reg,v) CONS4(sensor_read_reg,SENSOR_REGISTER_LEN,val,SENSOR_VALUE_LEN)(client,(reg),(v))\r
52 #define sensor_write_array generic_sensor_write_array\r
53 \r
54 \r
55 /* hm5065 VCM Command and Status Registers */
56 #define AF_TARGETPOS_REG_H         0x0700
57 #define AF_TARGETPOS_REG_L         0x0701
58
59 #define AF_MODES_REG               0x070A
60 #define AF_AUTOCMDS_REG            0x070b
61 #define AF_LENSPOS_REG_H           0x06F0
62 #define AF_LENSPOS_REG_L           0x06F1
63 #define AF_MANUCMDS_REG            0x070c
64 #define AF_FINISHCHK_REG           0x07ae   //[0]: false    [1] : true
65
66 #define FACE_LC                    0x0714   //[0] : focus , [1] : AE Â\93\84Ó
67 #define FACE_START_XH              0x0715
68 #define FACE_START_XL              0x0716
69 #define FACE_SIZE_XH               0x0717
70 #define FACE_SIZE_XL               0x0718
71 #define FACE_START_YH              0x0719
72 #define FACE_START_YL              0x071A
73 #define FACE_SIZE_YH               0x071B
74 #define FACE_SIZE_YL               0x071C
75
76
77 #define AF_ZONE0_WEIGHT            0x0808
78 #define AF_ZONE1_WEIGHT            0x0809
79 #define AF_ZONE2_WEIGHT            0x080A
80 #define AF_ZONE3_WEIGHT            0x080B
81 #define AF_ZONE4_WEIGHT            0x080C
82 #define AF_ZONE5_WEIGHT            0x080D
83 #define AF_ZONE6_WEIGHT            0x080E\r
84 \r
85 \r
86 struct sensor_parameter\r
87 {\r
88     int af_pos[2];\r
89 };\r
90 \r
91 struct specific_sensor{\r
92         struct generic_sensor common_sensor;\r
93         //define user data below\r
94         struct sensor_parameter parameter;\r
95 \r
96 };\r
97 \r
98 /*\r
99 *  The follow setting need been filled.\r
100 *  \r
101 *  Must Filled:\r
102 *  sensor_init_data :                           Sensor initial setting;\r
103 *  sensor_fullres_lowfps_data :         Sensor full resolution setting with best auality, recommand for video;\r
104 *  sensor_preview_data :                        Sensor preview resolution setting, recommand it is vga or svga;\r
105 *  sensor_softreset_data :                      Sensor software reset register;\r
106 *  sensor_check_id_data :                       Sensir chip id register;\r
107 *\r
108 *  Optional filled:\r
109 *  sensor_fullres_highfps_data:         Sensor full resolution setting with high framerate, recommand for video;\r
110 *  sensor_720p:                                         Sensor 720p setting, it is for video;\r
111 *  sensor_1080p:                                        Sensor 1080p setting, it is for video;\r
112 *\r
113 *  :::::WARNING:::::\r
114 *  The SensorEnd which is the setting end flag must be filled int the last of each setting;\r
115 */\r
116 \r
117 /* Sensor initial setting */\r
118 static struct rk_sensor_reg sensor_init_data[] = {\r
119 \r
120         {0xffff,0x01},    // 2013-03-01 Start new patch 
121         {0x9000,0x03}, 
122         {0xA000,0x90}, 
123         {0xA001,0x0C}, 
124         {0xA002,0x56}, 
125         {0xA003,0xE0}, 
126         {0xA004,0xFE}, 
127         {0xA005,0xA3}, 
128         {0xA006,0xE0}, 
129         {0xA007,0xFF}, 
130         {0xA008,0x12}, 
131         {0xA009,0x42}, 
132         {0xA00A,0x85}, 
133         {0xA00B,0x90}, 
134         {0xA00C,0x01}, 
135         {0xA00D,0xB7}, 
136         {0xA00E,0xEE}, 
137         {0xA00F,0xF0}, 
138         {0xA010,0xFC}, 
139         {0xA011,0xA3}, 
140         {0xA012,0xEF}, 
141         {0xA013,0xF0}, 
142         {0xA014,0xFD}, 
143         {0xA015,0x90}, 
144         {0xA016,0x06}, 
145         {0xA017,0x05}, 
146         {0xA018,0xE0}, 
147         {0xA019,0x75}, 
148         {0xA01A,0xF0}, 
149         {0xA01B,0x02}, 
150         {0xA01C,0xA4}, 
151         {0xA01D,0x2D}, 
152         {0xA01E,0xFF}, 
153         {0xA01F,0xE5}, 
154         {0xA020,0xF0}, 
155         {0xA021,0x3C}, 
156         {0xA022,0xFE}, 
157         {0xA023,0xAB}, 
158         {0xA024,0x07}, 
159         {0xA025,0xFA}, 
160         {0xA026,0x33}, 
161         {0xA027,0x95}, 
162         {0xA028,0xE0}, 
163         {0xA029,0xF9}, 
164         {0xA02A,0xF8}, 
165         {0xA02B,0x90}, 
166         {0xA02C,0x0B}, 
167         {0xA02D,0x4B}, 
168         {0xA02E,0xE0}, 
169         {0xA02F,0xFE}, 
170         {0xA030,0xA3}, 
171         {0xA031,0xE0}, 
172         {0xA032,0xFF}, 
173         {0xA033,0xEE}, 
174         {0xA034,0x33}, 
175         {0xA035,0x95}, 
176         {0xA036,0xE0}, 
177         {0xA037,0xFD}, 
178         {0xA038,0xFC}, 
179         {0xA039,0x12}, 
180         {0xA03A,0x0C}, 
181         {0xA03B,0x7B}, 
182         {0xA03C,0x90}, 
183         {0xA03D,0x01}, 
184         {0xA03E,0xB9}, 
185         {0xA03F,0x12}, 
186         {0xA040,0x0E}, 
187         {0xA041,0x05}, 
188         {0xA042,0x90}, 
189         {0xA043,0x01}, 
190         {0xA044,0xB9}, 
191         {0xA045,0xE0}, 
192         {0xA046,0xFC}, 
193         {0xA047,0xA3}, 
194         {0xA048,0xE0}, 
195         {0xA049,0xFD}, 
196         {0xA04A,0xA3}, 
197         {0xA04B,0xE0}, 
198         {0xA04C,0xFE}, 
199         {0xA04D,0xA3}, 
200         {0xA04E,0xE0}, 
201         {0xA04F,0xFF}, 
202         {0xA050,0x78}, 
203         {0xA051,0x08}, 
204         {0xA052,0x12}, 
205         {0xA053,0x0D}, 
206         {0xA054,0xBF}, 
207         {0xA055,0xA8}, 
208         {0xA056,0x04}, 
209         {0xA057,0xA9}, 
210         {0xA058,0x05}, 
211         {0xA059,0xAA}, 
212         {0xA05A,0x06}, 
213         {0xA05B,0xAB}, 
214         {0xA05C,0x07}, 
215         {0xA05D,0x90}, 
216         {0xA05E,0x0B}, 
217         {0xA05F,0x49}, 
218         {0xA060,0xE0}, 
219         {0xA061,0xFE}, 
220         {0xA062,0xA3}, 
221         {0xA063,0xE0}, 
222         {0xA064,0xFF}, 
223         {0xA065,0xEE}, 
224         {0xA066,0x33}, 
225         {0xA067,0x95}, 
226         {0xA068,0xE0}, 
227         {0xA069,0xFD}, 
228         {0xA06A,0xFC}, 
229         {0xA06B,0xC3}, 
230         {0xA06C,0xEF}, 
231         {0xA06D,0x9B}, 
232         {0xA06E,0xFF}, 
233         {0xA06F,0xEE}, 
234         {0xA070,0x9A}, 
235         {0xA071,0xFE}, 
236         {0xA072,0xED}, 
237         {0xA073,0x99}, 
238         {0xA074,0xFD}, 
239         {0xA075,0xEC}, 
240         {0xA076,0x98}, 
241         {0xA077,0xFC}, 
242         {0xA078,0x78}, 
243         {0xA079,0x01}, 
244         {0xA07A,0x12}, 
245         {0xA07B,0x0D}, 
246         {0xA07C,0xBF}, 
247         {0xA07D,0x90}, 
248         {0xA07E,0x0C}, 
249         {0xA07F,0x4A}, 
250         {0xA080,0xE0}, 
251         {0xA081,0xFC}, 
252         {0xA082,0xA3}, 
253         {0xA083,0xE0}, 
254         {0xA084,0xF5}, 
255         {0xA085,0x82}, 
256         {0xA086,0x8C}, 
257         {0xA087,0x83}, 
258         {0xA088,0xC0}, 
259         {0xA089,0x83}, 
260         {0xA08A,0xC0}, 
261         {0xA08B,0x82}, 
262         {0xA08C,0x90}, 
263         {0xA08D,0x0B}, 
264         {0xA08E,0x48}, 
265         {0xA08F,0xE0}, 
266         {0xA090,0xD0}, 
267         {0xA091,0x82}, 
268         {0xA092,0xD0}, 
269         {0xA093,0x83}, 
270         {0xA094,0x75}, 
271         {0xA095,0xF0}, 
272         {0xA096,0x02}, 
273         {0xA097,0x12}, 
274         {0xA098,0x0E}, 
275         {0xA099,0x45}, 
276         {0xA09A,0xEE}, 
277         {0xA09B,0xF0}, 
278         {0xA09C,0xA3}, 
279         {0xA09D,0xEF}, 
280         {0xA09E,0xF0}, 
281         {0xA09F,0x02}, 
282         {0xA0A0,0xBA}, 
283         {0xA0A1,0xD8}, 
284         {0xA0A2,0x90}, 
285         {0xA0A3,0x30}, 
286         {0xA0A4,0x18}, 
287         {0xA0A5,0xe4}, 
288         {0xA0A6,0xf0}, 
289         {0xA0A7,0x74}, 
290         {0xA0A8,0x3f}, 
291         {0xA0A9,0xf0}, 
292         {0xA0AA,0x22}, 
293         {0xA0BF,0x90}, 
294         {0xA0C0,0x00}, 
295         {0xA0C1,0x5E}, 
296         {0xA0C2,0xE0}, 
297         {0xA0C3,0xFF}, 
298         {0xA0C4,0x70}, 
299         {0xA0C5,0x20}, 
300         {0xA0C6,0x90}, 
301         {0xA0C7,0x47}, 
302         {0xA0C8,0x04}, 
303         {0xA0C9,0x74}, 
304         {0xA0CA,0x0A}, 
305         {0xA0CB,0xF0}, 
306         {0xA0CC,0xA3}, 
307         {0xA0CD,0x74}, 
308         {0xA0CE,0x30}, 
309         {0xA0CF,0xF0}, 
310         {0xA0D0,0x90}, 
311         {0xA0D1,0x47}, 
312         {0xA0D2,0x0C}, 
313         {0xA0D3,0x74}, 
314         {0xA0D4,0x07}, 
315         {0xA0D5,0xF0}, 
316         {0xA0D6,0xA3}, 
317         {0xA0D7,0x74}, 
318         {0xA0D8,0xA8}, 
319         {0xA0D9,0xF0}, 
320         {0xA0DA,0x90}, 
321         {0xA0DB,0x47}, 
322         {0xA0DC,0xA4}, 
323         {0xA0DD,0x74}, 
324         {0xA0DE,0x01}, 
325         {0xA0DF,0xF0}, 
326         {0xA0E0,0x90}, 
327         {0xA0E1,0x47}, 
328         {0xA0E2,0xA8}, 
329         {0xA0E3,0xF0}, 
330         {0xA0E4,0x80}, 
331         {0xA0E5,0x50}, 
332         {0xA0E6,0xEF}, 
333         {0xA0E7,0x64}, 
334         {0xA0E8,0x01}, 
335         {0xA0E9,0x60}, 
336         {0xA0EA,0x04}, 
337         {0xA0EB,0xEF}, 
338         {0xA0EC,0xB4}, 
339         {0xA0ED,0x03}, 
340         {0xA0EE,0x20}, 
341         {0xA0EF,0x90}, 
342         {0xA0F0,0x47}, 
343         {0xA0F1,0x04}, 
344         {0xA0F2,0x74}, 
345         {0xA0F3,0x05}, 
346         {0xA0F4,0xF0}, 
347         {0xA0F5,0xA3}, 
348         {0xA0F6,0x74}, 
349         {0xA0F7,0x18}, 
350         {0xA0F8,0xF0}, 
351         {0xA0F9,0x90}, 
352         {0xA0FA,0x47}, 
353         {0xA0FB,0x0C}, 
354         {0xA0FC,0x74}, 
355         {0xA0FD,0x03}, 
356         {0xA0FE,0xF0}, 
357         {0xA0FF,0xA3}, 
358         {0xA100,0x74}, 
359         {0xA101,0xD4}, 
360         {0xA102,0xF0}, 
361         {0xA103,0x90}, 
362         {0xA104,0x47}, 
363         {0xA105,0xA4}, 
364         {0xA106,0x74}, 
365         {0xA107,0x02}, 
366         {0xA108,0xF0}, 
367         {0xA109,0x90}, 
368         {0xA10A,0x47}, 
369         {0xA10B,0xA8}, 
370         {0xA10C,0xF0}, 
371         {0xA10D,0x80}, 
372         {0xA10E,0x27}, 
373         {0xA10F,0xEF}, 
374         {0xA110,0x64}, 
375         {0xA111,0x02}, 
376         {0xA112,0x60}, 
377         {0xA113,0x04}, 
378         {0xA114,0xEF}, 
379         {0xA115,0xB4}, 
380         {0xA116,0x04}, 
381         {0xA117,0x1E}, 
382         {0xA118,0x90}, 
383         {0xA119,0x47}, 
384         {0xA11A,0x04}, 
385         {0xA11B,0x74}, 
386         {0xA11C,0x02}, 
387         {0xA11D,0xF0}, 
388         {0xA11E,0xA3}, 
389         {0xA11F,0x74}, 
390         {0xA120,0x8C}, 
391         {0xA121,0xF0}, 
392         {0xA122,0x90}, 
393         {0xA123,0x47}, 
394         {0xA124,0x0C}, 
395         {0xA125,0x74}, 
396         {0xA126,0x01}, 
397         {0xA127,0xF0}, 
398         {0xA128,0xA3}, 
399         {0xA129,0x74}, 
400         {0xA12A,0xEA}, 
401         {0xA12B,0xF0}, 
402         {0xA12C,0x90}, 
403         {0xA12D,0x47}, 
404         {0xA12E,0xA4}, 
405         {0xA12F,0x74}, 
406         {0xA130,0x04}, 
407         {0xA131,0xF0}, 
408         {0xA132,0x90}, 
409         {0xA133,0x47}, 
410         {0xA134,0xA8}, 
411         {0xA135,0xF0}, 
412         {0xA136,0x22}, 
413         {0xA137,0x74}, 
414         {0xA138,0x04}, 
415         {0xA139,0xF0}, 
416         {0xA13A,0xA3}, 
417         {0xA13B,0x74}, 
418         {0xA13C,0x20}, 
419         {0xA13D,0xF0}, 
420         {0xA13E,0xE4}, 
421         {0xA13F,0xF5}, 
422         {0xA140,0x22}, 
423         {0xA141,0xE5}, 
424         {0xA142,0x22}, 
425         {0xA143,0xC3}, 
426         {0xA144,0x94}, 
427         {0xA145,0x40}, 
428         {0xA146,0x40}, 
429         {0xA147,0x03}, 
430         {0xA148,0x02}, 
431         {0xA149,0xF1}, 
432         {0xA14A,0xFD}, 
433         {0xA14B,0x90}, 
434         {0xA14C,0x0A}, 
435         {0xA14D,0xBA}, 
436         {0xA14E,0xE0}, 
437         {0xA14F,0xFE}, 
438         {0xA150,0xA3}, 
439         {0xA151,0xE0}, 
440         {0xA152,0xFF}, 
441         {0xA153,0xF5}, 
442         {0xA154,0x82}, 
443         {0xA155,0x8E}, 
444         {0xA156,0x83}, 
445         {0xA157,0xE0}, 
446         {0xA158,0x54}, 
447         {0xA159,0x70}, 
448         {0xA15A,0xFD}, 
449         {0xA15B,0xC4}, 
450         {0xA15C,0x54}, 
451         {0xA15D,0x0F}, 
452         {0xA15E,0xFD}, 
453         {0xA15F,0x90}, 
454         {0xA160,0x0A}, 
455         {0xA161,0xBC}, 
456         {0xA162,0xE0}, 
457         {0xA163,0xFA}, 
458         {0xA164,0xA3}, 
459         {0xA165,0xE0}, 
460         {0xA166,0xF5}, 
461         {0xA167,0x82}, 
462         {0xA168,0x8A}, 
463         {0xA169,0x83}, 
464         {0xA16A,0xED}, 
465         {0xA16B,0xF0}, 
466         {0xA16C,0x90}, 
467         {0xA16D,0x0A}, 
468         {0xA16E,0xBD}, 
469         {0xA16F,0xE0}, 
470         {0xA170,0x04}, 
471         {0xA171,0xF0}, 
472         {0xA172,0x70}, 
473         {0xA173,0x06}, 
474         {0xA174,0x90}, 
475         {0xA175,0x0A}, 
476         {0xA176,0xBC}, 
477         {0xA177,0xE0}, 
478         {0xA178,0x04}, 
479         {0xA179,0xF0}, 
480         {0xA17A,0x8F}, 
481         {0xA17B,0x82}, 
482         {0xA17C,0x8E}, 
483         {0xA17D,0x83}, 
484         {0xA17E,0xA3}, 
485         {0xA17F,0xE0}, 
486         {0xA180,0xFF}, 
487         {0xA181,0x90}, 
488         {0xA182,0x0A}, 
489         {0xA183,0xBC}, 
490         {0xA184,0xE0}, 
491         {0xA185,0xFC}, 
492         {0xA186,0xA3}, 
493         {0xA187,0xE0}, 
494         {0xA188,0xF5}, 
495         {0xA189,0x82}, 
496         {0xA18A,0x8C}, 
497         {0xA18B,0x83}, 
498         {0xA18C,0xEF}, 
499         {0xA18D,0xF0}, 
500         {0xA18E,0x90}, 
501         {0xA18F,0x0A}, 
502         {0xA190,0xBD}, 
503         {0xA191,0xE0}, 
504         {0xA192,0x04}, 
505         {0xA193,0xF0}, 
506         {0xA194,0x70}, 
507         {0xA195,0x06}, 
508         {0xA196,0x90}, 
509         {0xA197,0x0A}, 
510         {0xA198,0xBC}, 
511         {0xA199,0xE0}, 
512         {0xA19A,0x04}, 
513         {0xA19B,0xF0}, 
514         {0xA19C,0x90}, 
515         {0xA19D,0x0A}, 
516         {0xA19E,0xBA}, 
517         {0xA19F,0xE0}, 
518         {0xA1A0,0xFE}, 
519         {0xA1A1,0xA3}, 
520         {0xA1A2,0xE0}, 
521         {0xA1A3,0xFF}, 
522         {0xA1A4,0xF5}, 
523         {0xA1A5,0x82}, 
524         {0xA1A6,0x8E}, 
525         {0xA1A7,0x83}, 
526         {0xA1A8,0xE0}, 
527         {0xA1A9,0x54}, 
528         {0xA1AA,0x07}, 
529         {0xA1AB,0xFD}, 
530         {0xA1AC,0x90}, 
531         {0xA1AD,0x0A}, 
532         {0xA1AE,0xBC}, 
533         {0xA1AF,0xE0}, 
534         {0xA1B0,0xFA}, 
535         {0xA1B1,0xA3}, 
536         {0xA1B2,0xE0}, 
537         {0xA1B3,0xF5}, 
538         {0xA1B4,0x82}, 
539         {0xA1B5,0x8A}, 
540         {0xA1B6,0x83}, 
541         {0xA1B7,0xED}, 
542         {0xA1B8,0xF0}, 
543         {0xA1B9,0x90}, 
544         {0xA1BA,0x0A}, 
545         {0xA1BB,0xBD}, 
546         {0xA1BC,0xE0}, 
547         {0xA1BD,0x04}, 
548         {0xA1BE,0xF0}, 
549         {0xA1BF,0x70}, 
550         {0xA1C0,0x06}, 
551         {0xA1C1,0x90}, 
552         {0xA1C2,0x0A}, 
553         {0xA1C3,0xBC}, 
554         {0xA1C4,0xE0}, 
555         {0xA1C5,0x04}, 
556         {0xA1C6,0xF0}, 
557         {0xA1C7,0x8F}, 
558         {0xA1C8,0x82}, 
559         {0xA1C9,0x8E}, 
560         {0xA1CA,0x83}, 
561         {0xA1CB,0xA3}, 
562         {0xA1CC,0xA3}, 
563         {0xA1CD,0xE0}, 
564         {0xA1CE,0xFF}, 
565         {0xA1CF,0x90}, 
566         {0xA1D0,0x0A}, 
567         {0xA1D1,0xBC}, 
568         {0xA1D2,0xE0}, 
569         {0xA1D3,0xFC}, 
570         {0xA1D4,0xA3}, 
571         {0xA1D5,0xE0}, 
572         {0xA1D6,0xF5}, 
573         {0xA1D7,0x82}, 
574         {0xA1D8,0x8C}, 
575         {0xA1D9,0x83}, 
576         {0xA1DA,0xEF}, 
577         {0xA1DB,0xF0}, 
578         {0xA1DC,0x90}, 
579         {0xA1DD,0x0A}, 
580         {0xA1DE,0xBD}, 
581         {0xA1DF,0xE0}, 
582         {0xA1E0,0x04}, 
583         {0xA1E1,0xF0}, 
584         {0xA1E2,0x70}, 
585         {0xA1E3,0x06}, 
586         {0xA1E4,0x90}, 
587         {0xA1E5,0x0A}, 
588         {0xA1E6,0xBC}, 
589         {0xA1E7,0xE0}, 
590         {0xA1E8,0x04}, 
591         {0xA1E9,0xF0}, 
592         {0xA1EA,0x90}, 
593         {0xA1EB,0x0A}, 
594         {0xA1EC,0xBB}, 
595         {0xA1ED,0xE0}, 
596         {0xA1EE,0x24}, 
597         {0xA1EF,0x03}, 
598         {0xA1F0,0xF0}, 
599         {0xA1F1,0x90}, 
600         {0xA1F2,0x0A}, 
601         {0xA1F3,0xBA}, 
602         {0xA1F4,0xE0}, 
603         {0xA1F5,0x34}, 
604         {0xA1F6,0x00}, 
605         {0xA1F7,0xF0}, 
606         {0xA1F8,0x05}, 
607         {0xA1F9,0x22}, 
608         {0xA1FA,0x02}, 
609         {0xA1FB,0xF1}, 
610         {0xA1FC,0x41}, 
611         {0xA1FD,0x90}, 
612         {0xA1FE,0x0A}, 
613         {0xA1FF,0xBA}, 
614         {0xA200,0x74}, 
615         {0xA201,0x0E}, 
616         {0xA202,0xF0}, 
617         {0xA203,0xA3}, 
618         {0xA204,0x74}, 
619         {0xA205,0xDC}, 
620         {0xA206,0xF0}, 
621         {0xA207,0xA3}, 
622         {0xA208,0x74}, 
623         {0xA209,0x05}, 
624         {0xA20A,0xF0}, 
625         {0xA20B,0xA3}, 
626         {0xA20C,0x74}, 
627         {0xA20D,0x61}, 
628         {0xA20E,0xF0}, 
629         {0xA20F,0x90}, 
630         {0xA210,0x0A}, 
631         {0xA211,0xBA}, 
632         {0xA212,0xE0}, 
633         {0xA213,0xFE}, 
634         {0xA214,0xA3}, 
635         {0xA215,0xE0}, 
636         {0xA216,0xAA}, 
637         {0xA217,0x06}, 
638         {0xA218,0xF9}, 
639         {0xA219,0x7B}, 
640         {0xA21A,0x01}, 
641         {0xA21B,0xC0}, 
642         {0xA21C,0x02}, 
643         {0xA21D,0xA3}, 
644         {0xA21E,0xE0}, 
645         {0xA21F,0xFE}, 
646         {0xA220,0xA3}, 
647         {0xA221,0xE0}, 
648         {0xA222,0xAA}, 
649         {0xA223,0x06}, 
650         {0xA224,0xF8}, 
651         {0xA225,0xAC}, 
652         {0xA226,0x02}, 
653         {0xA227,0x7D}, 
654         {0xA228,0x01}, 
655         {0xA229,0xD0}, 
656         {0xA22A,0x02}, 
657         {0xA22B,0x7E}, 
658         {0xA22C,0x00}, 
659         {0xA22D,0x7F}, 
660         {0xA22E,0x04}, 
661         {0xA22F,0x12}, 
662         {0xA230,0x0F}, 
663         {0xA231,0x6F}, 
664         {0xA232,0x02}, 
665         {0xA233,0x66}, 
666         {0xA234,0xD9}, 
667         {0xA235,0x90}, 
668         {0xA236,0x07}, 
669         {0xA237,0xD0}, 
670         {0xA238,0x02}, 
671         {0xA239,0xA2}, 
672         {0xA23A,0x69}, 
673         {0xA240,0x02}, 
674         {0xA241,0x21}, 
675         {0xA242,0x7F}, 
676         {0xA243,0x02}, 
677         {0xA244,0x21}, 
678         {0xA245,0xF4}, 
679         {0xA246,0x02}, 
680         {0xA247,0xA6}, 
681         {0xA248,0x15}, 
682         {0xA249,0x60}, 
683         {0xA24A,0x0A}, 
684         {0xA24B,0xEF}, 
685         {0xA24C,0xB4}, 
686         {0xA24D,0x01}, 
687         {0xA24E,0x16}, 
688         {0xA24F,0x90}, 
689         {0xA250,0x00}, 
690         {0xA251,0x5D}, 
691         {0xA252,0xE0}, 
692         {0xA253,0x70}, 
693         {0xA254,0x10}, 
694         {0xA255,0x12}, 
695         {0xA256,0x26}, 
696         {0xA257,0xC8}, 
697         {0xA258,0x90}, 
698         {0xA259,0x00}, 
699         {0xA25A,0x11}, 
700         {0xA25B,0x74}, 
701         {0xA25C,0x30}, 
702         {0xA25D,0xF0}, 
703         {0xA25E,0x90}, 
704         {0xA25F,0x00}, 
705         {0xA260,0x10}, 
706         {0xA261,0x74}, 
707         {0xA262,0x01}, 
708         {0xA263,0xF0}, 
709         {0xA264,0x22}, 
710         {0xA265,0x12}, 
711         {0xA266,0x25}, 
712         {0xA267,0xA8}, 
713         {0xA268,0x02}, 
714         {0xA269,0x29}, 
715         {0xA26A,0xFC}, 
716         {0xA26B,0x44}, 
717         {0xA26C,0x18}, 
718         {0xA26D,0xF0}, 
719         {0xA26E,0x90}, 
720         {0xA26F,0x72}, 
721         {0xA270,0x18}, 
722         {0xA271,0xE0}, 
723         {0xA272,0x44}, 
724         {0xA273,0x18}, 
725         {0xA274,0xF0}, 
726         {0xA275,0x00}, 
727         {0xA276,0x00}, 
728         {0xA277,0x00}, 
729         {0xA278,0x00}, 
730         {0xA279,0x00}, 
731         {0xA27A,0x00}, 
732         {0xA27B,0x90}, 
733         {0xA27C,0x72}, 
734         {0xA27D,0x08}, 
735         {0xA27E,0xE0}, 
736         {0xA27F,0x44}, 
737         {0xA280,0x10}, 
738         {0xA281,0xF0}, 
739         {0xA282,0x90}, 
740         {0xA283,0x72}, 
741         {0xA284,0x14}, 
742         {0xA285,0xE0}, 
743         {0xA286,0x54}, 
744         {0xA287,0xFD}, 
745         {0xA288,0xF0}, 
746         {0xA289,0x22}, 
747         {0xA29B,0xF0}, 
748         {0xA29C,0xD3}, 
749         {0xA29D,0x90}, 
750         {0xA29E,0x07}, 
751         {0xA29F,0x91}, 
752         {0xA2A0,0xE0}, 
753         {0xA2A1,0x94}, 
754         {0xA2A2,0x21}, 
755         {0xA2A3,0x90}, 
756         {0xA2A4,0x07}, 
757         {0xA2A5,0x90}, 
758         {0xA2A6,0xE0}, 
759         {0xA2A7,0x64}, 
760         {0xA2A8,0x80}, 
761         {0xA2A9,0x94}, 
762         {0xA2AA,0x81}, 
763         {0xA2AB,0x40}, 
764         {0xA2AC,0x08}, 
765         {0xA2AD,0x90}, 
766         {0xA2AE,0x07}, 
767         {0xA2AF,0xCB}, 
768         {0xA2B0,0x74}, 
769         {0xA2B1,0xFF}, 
770         {0xA2B2,0xF0}, 
771         {0xA2B3,0x80}, 
772         {0xA2B4,0x06}, 
773         {0xA2B5,0x90}, 
774         {0xA2B6,0x07}, 
775         {0xA2B7,0xCB}, 
776         {0xA2B8,0x74}, 
777         {0xA2B9,0x01}, 
778         {0xA2BA,0xF0}, 
779         {0xA2BB,0x02}, 
780         {0xA2BC,0xB5}, 
781         {0xA2BD,0xC3}, 
782         {0xA2BE,0x90}, 
783         {0xA2BF,0x08}, 
784         {0xA2C0,0x34}, 
785         {0xA2C1,0xE0}, 
786         {0xA2C2,0xFC}, 
787         {0xA2C3,0xA3}, 
788         {0xA2C4,0xE0}, 
789         {0xA2C5,0xFD}, 
790         {0xA2C6,0xA3}, 
791         {0xA2C7,0xE0}, 
792         {0xA2C8,0xFE}, 
793         {0xA2C9,0xA3}, 
794         {0xA2CA,0xE0}, 
795         {0xA2CB,0xFF}, 
796         {0xA2CC,0x90}, 
797         {0xA2CD,0x07}, 
798         {0xA2CE,0xD0}, 
799         {0xA2CF,0xE0}, 
800         {0xA2D0,0xF8}, 
801         {0xA2D1,0xA3}, 
802         {0xA2D2,0xE0}, 
803         {0xA2D3,0xF9}, 
804         {0xA2D4,0xA3}, 
805         {0xA2D5,0xE0}, 
806         {0xA2D6,0xFA}, 
807         {0xA2D7,0xA3}, 
808         {0xA2D8,0xE0}, 
809         {0xA2D9,0xFB}, 
810         {0xA2DA,0xD3}, 
811         {0xA2DB,0x12}, 
812         {0xA2DC,0x0D}, 
813         {0xA2DD,0xAE}, 
814         {0xA2DE,0x40}, 
815         {0xA2DF,0x0B}, 
816         {0xA2E0,0x12}, 
817         {0xA2E1,0xB5}, 
818         {0xA2E2,0x49}, 
819         {0xA2E3,0x90}, 
820         {0xA2E4,0x07}, 
821         {0xA2E5,0xA4}, 
822         {0xA2E6,0x74}, 
823         {0xA2E7,0x02}, 
824         {0xA2E8,0xF0}, 
825         {0xA2E9,0x80}, 
826         {0xA2EA,0x09}, 
827         {0xA2EB,0x12}, 
828         {0xA2EC,0xB7}, 
829         {0xA2ED,0x51}, 
830         {0xA2EE,0x90}, 
831         {0xA2EF,0x07}, 
832         {0xA2F0,0xA4}, 
833         {0xA2F1,0x74}, 
834         {0xA2F2,0x05}, 
835         {0xA2F3,0xF0}, 
836         {0xA2F4,0x02}, 
837         {0xA2F5,0xA2}, 
838         {0xA2F6,0xDA}, 
839         {0xA2F7,0x90}, 
840         {0xA2F8,0x0E}, 
841         {0xA2F9,0xE0}, 
842         {0xA2FA,0xE0}, 
843         {0xA2FB,0xFD}, 
844         {0xA2FC,0xA3}, 
845         {0xA2FD,0xE0}, 
846         {0xA2FE,0x90}, 
847         {0xA2FF,0x02}, 
848         {0xA300,0xA2}, 
849         {0xA301,0xCD}, 
850         {0xA302,0xF0}, 
851         {0xA303,0xA3}, 
852         {0xA304,0xED}, 
853         {0xA305,0xF0}, 
854         {0xA306,0x90}, 
855         {0xA307,0x0E}, 
856         {0xA308,0xE2}, 
857         {0xA309,0xE0}, 
858         {0xA30A,0xFD}, 
859         {0xA30B,0xA3}, 
860         {0xA30C,0xE0}, 
861         {0xA30D,0x90}, 
862         {0xA30E,0x02}, 
863         {0xA30F,0xA8}, 
864         {0xA310,0xCD}, 
865         {0xA311,0xF0}, 
866         {0xA312,0xA3}, 
867         {0xA313,0xED}, 
868         {0xA314,0xF0}, 
869         {0xA315,0xE4}, 
870         {0xA316,0x90}, 
871         {0xA317,0x06}, 
872         {0xA318,0x38}, 
873         {0xA319,0xF0}, 
874         {0xA31A,0x02}, 
875         {0xA31B,0x67}, 
876         {0xA31C,0x63}, 
877         {0xA31D,0x90}, 
878         {0xA31E,0x0E}, 
879         {0xA31F,0xE8}, 
880         {0xA320,0xE0}, 
881         {0xA321,0x90}, 
882         {0xA322,0x02}, 
883         {0xA323,0x62}, 
884         {0xA324,0xF0}, 
885         {0xA325,0x90}, 
886         {0xA326,0x0E}, 
887         {0xA327,0xE9}, 
888         {0xA328,0xE0}, 
889         {0xA329,0x90}, 
890         {0xA32A,0x02}, 
891         {0xA32B,0x63}, 
892         {0xA32C,0xF0}, 
893         {0xA32D,0x02}, 
894         {0xA32E,0x67}, 
895         {0xA32F,0x1F}, 
896         {0xA33B,0x90}, 
897         {0xA33C,0x0E}, 
898         {0xA33D,0x14}, 
899         {0xA33E,0xE0}, 
900         {0xA33F,0xFE}, 
901         {0xA340,0xA3}, 
902         {0xA341,0xE0}, 
903         {0xA342,0xFF}, 
904         {0xA343,0x90}, 
905         {0xA344,0x06}, 
906         {0xA345,0xD9}, 
907         {0xA346,0xEE}, 
908         {0xA347,0xF0}, 
909         {0xA348,0xA3}, 
910         {0xA349,0xEF}, 
911         {0xA34A,0xF0}, 
912         {0xA34B,0x90}, 
913         {0xA34C,0x0E}, 
914         {0xA34D,0x18}, 
915         {0xA34E,0xE0}, 
916         {0xA34F,0xFD}, 
917         {0xA350,0x7C}, 
918         {0xA351,0x00}, 
919         {0xA352,0xC3}, 
920         {0xA353,0xEF}, 
921         {0xA354,0x9D}, 
922         {0xA355,0xEE}, 
923         {0xA356,0x9C}, 
924         {0xA357,0x50}, 
925         {0xA358,0x09}, 
926         {0xA359,0xE4}, 
927         {0xA35A,0x90}, 
928         {0xA35B,0x06}, 
929         {0xA35C,0xD7}, 
930         {0xA35D,0xF0}, 
931         {0xA35E,0xA3}, 
932         {0xA35F,0xF0}, 
933         {0xA360,0x80}, 
934         {0xA361,0x13}, 
935         {0xA362,0xC3}, 
936         {0xA363,0x90}, 
937         {0xA364,0x06}, 
938         {0xA365,0xDA}, 
939         {0xA366,0xE0}, 
940         {0xA367,0x9D}, 
941         {0xA368,0xFE}, 
942         {0xA369,0x90}, 
943         {0xA36A,0x06}, 
944         {0xA36B,0xD9}, 
945         {0xA36C,0xE0}, 
946         {0xA36D,0x9C}, 
947         {0xA36E,0x90}, 
948         {0xA36F,0x06}, 
949         {0xA370,0xD7}, 
950         {0xA371,0xF0}, 
951         {0xA372,0xA3}, 
952         {0xA373,0xCE}, 
953         {0xA374,0xF0}, 
954         {0xA375,0x90}, 
955         {0xA376,0x0E}, 
956         {0xA377,0x18}, 
957         {0xA378,0xE0}, 
958         {0xA379,0xF9}, 
959         {0xA37A,0xFF}, 
960         {0xA37B,0x90}, 
961         {0xA37C,0x06}, 
962         {0xA37D,0xC2}, 
963         {0xA37E,0xE0}, 
964         {0xA37F,0xFC}, 
965         {0xA380,0xA3}, 
966         {0xA381,0xE0}, 
967         {0xA382,0xFD}, 
968         {0xA383,0xC3}, 
969         {0xA384,0x9F}, 
970         {0xA385,0xFF}, 
971         {0xA386,0xEC}, 
972         {0xA387,0x94}, 
973         {0xA388,0x00}, 
974         {0xA389,0xFE}, 
975         {0xA38A,0x90}, 
976         {0xA38B,0x0E}, 
977         {0xA38C,0x16}, 
978         {0xA38D,0xE0}, 
979         {0xA38E,0xFA}, 
980         {0xA38F,0xA3}, 
981         {0xA390,0xE0}, 
982         {0xA391,0xFB}, 
983         {0xA392,0xD3}, 
984         {0xA393,0x9F}, 
985         {0xA394,0xEA}, 
986         {0xA395,0x9E}, 
987         {0xA396,0x40}, 
988         {0xA397,0x0A}, 
989         {0xA398,0x90}, 
990         {0xA399,0x06}, 
991         {0xA39A,0xD5}, 
992         {0xA39B,0xEC}, 
993         {0xA39C,0xF0}, 
994         {0xA39D,0xA3}, 
995         {0xA39E,0xED}, 
996         {0xA39F,0xF0}, 
997         {0xA3A0,0x80}, 
998         {0xA3A1,0x0E}, 
999         {0xA3A2,0xE9}, 
1000         {0xA3A3,0x7E}, 
1001         {0xA3A4,0x00}, 
1002         {0xA3A5,0x2B}, 
1003         {0xA3A6,0xFF}, 
1004         {0xA3A7,0xEE}, 
1005         {0xA3A8,0x3A}, 
1006         {0xA3A9,0x90}, 
1007         {0xA3AA,0x06}, 
1008         {0xA3AB,0xD5}, 
1009         {0xA3AC,0xF0}, 
1010         {0xA3AD,0xA3}, 
1011         {0xA3AE,0xEF}, 
1012         {0xA3AF,0xF0}, 
1013         {0xA3B0,0xE9}, 
1014         {0xA3B1,0xFB}, 
1015         {0xA3B2,0x7A}, 
1016         {0xA3B3,0x00}, 
1017         {0xA3B4,0x90}, 
1018         {0xA3B5,0x0E}, 
1019         {0xA3B6,0x15}, 
1020         {0xA3B7,0xE0}, 
1021         {0xA3B8,0x2B}, 
1022         {0xA3B9,0xFE}, 
1023         {0xA3BA,0x90}, 
1024         {0xA3BB,0x0E}, 
1025         {0xA3BC,0x14}, 
1026         {0xA3BD,0xE0}, 
1027         {0xA3BE,0x3A}, 
1028         {0xA3BF,0x90}, 
1029         {0xA3C0,0x06}, 
1030         {0xA3C1,0xE1}, 
1031         {0xA3C2,0xF0}, 
1032         {0xA3C3,0xA3}, 
1033         {0xA3C4,0xCE}, 
1034         {0xA3C5,0xF0}, 
1035         {0xA3C6,0xC3}, 
1036         {0xA3C7,0x90}, 
1037         {0xA3C8,0x0E}, 
1038         {0xA3C9,0x17}, 
1039         {0xA3CA,0xE0}, 
1040         {0xA3CB,0x9B}, 
1041         {0xA3CC,0xFE}, 
1042         {0xA3CD,0x90}, 
1043         {0xA3CE,0x0E}, 
1044         {0xA3CF,0x16}, 
1045         {0xA3D0,0x02}, 
1046         {0xA3D1,0x20}, 
1047         {0xA3D2,0xD5}, 
1048         {0xA3D3,0x90}, 
1049         {0xA3d4,0x0E}, 
1050         {0xA3d5,0xE4}, 
1051         {0xA3d6,0xE0}, 
1052         {0xA3d7,0x90}, 
1053         {0xA3d8,0x02}, 
1054         {0xA3d9,0x66}, 
1055         {0xA3da,0xF0}, 
1056         {0xA3DB,0x90}, 
1057         {0xA3dc,0x0E}, 
1058         {0xA3dd,0xE5}, 
1059         {0xA3de,0xE0}, 
1060         {0xA3df,0x90}, 
1061         {0xA3e0,0x02}, 
1062         {0xA3e1,0x64}, 
1063         {0xA3e2,0xF0}, 
1064         {0xA3e3,0x90}, 
1065         {0xA3e4,0x0E}, 
1066         {0xA3e5,0xE6}, 
1067         {0xA3e6,0xE0}, 
1068         {0xA3e7,0x90}, 
1069         {0xA3e8,0x02}, 
1070         {0xA3e9,0x65}, 
1071         {0xA3ea,0xF0}, 
1072         {0xA3eb,0x02}, 
1073         {0xA3ec,0x67}, 
1074         {0xA3ed,0xA5}, 
1075         {0xA3f0,0x12}, 
1076         {0xA3f1,0x47}, 
1077         {0xA3f2,0x59}, 
1078         {0xA3f3,0x90}, 
1079         {0xA3f4,0x00}, 
1080         {0xA3f5,0xB5}, 
1081         {0xA3f6,0xE0}, 
1082         {0xA3f7,0xB4}, 
1083         {0xA3f8,0x02}, 
1084         {0xA3f9,0x03}, 
1085         {0xA3fa,0x12}, 
1086         {0xA3fb,0x47}, 
1087         {0xA3fc,0x59}, 
1088         {0xA3fd,0x02}, 
1089         {0xA3fe,0xC5}, 
1090         {0xA3ff,0xC3}, 
1091         {0xA400,0x90}, 
1092         {0xA401,0x00}, 
1093         {0xA402,0x3D}, 
1094         {0xA403,0xF0}, 
1095         {0xA404,0x90}, 
1096         {0xA405,0x00}, 
1097         {0xA406,0x84}, 
1098         {0xA407,0xE0}, 
1099         {0xA408,0xFE}, 
1100         {0xA409,0x90}, 
1101         {0xA40A,0x00}, 
1102         {0xA40B,0x3E}, 
1103         {0xA40C,0xF0}, 
1104         {0xA40D,0xEF}, 
1105         {0xA40E,0x70}, 
1106         {0xA40F,0x03}, 
1107         {0xA410,0xEE}, 
1108         {0xA411,0x60}, 
1109         {0xA412,0x04}, 
1110         {0xA413,0x7F}, 
1111         {0xA414,0x01}, 
1112         {0xA415,0x80}, 
1113         {0xA416,0x02}, 
1114         {0xA417,0x7F}, 
1115         {0xA418,0x00}, 
1116         {0xA419,0x90}, 
1117         {0xA41A,0x00}, 
1118         {0xA41B,0x3F}, 
1119         {0xA41C,0xEF}, 
1120         {0xA41D,0xF0}, 
1121         {0xA41E,0x02}, 
1122         {0xA41F,0x89}, 
1123         {0xA420,0xD3}, 
1124         {0xA421,0x90}, 
1125         {0xA422,0x00}, 
1126         {0xA423,0x12}, 
1127         {0xA424,0xE0}, 
1128         {0xA425,0xFF}, 
1129         {0xA426,0x70}, 
1130         {0xA427,0x0C}, 
1131         {0xA428,0x90}, 
1132         {0xA429,0x00}, 
1133         {0xA42A,0x46}, 
1134         {0xA42B,0xE0}, 
1135         {0xA42C,0xC3}, 
1136         {0xA42D,0x94}, 
1137         {0xA42E,0x07}, 
1138         {0xA42F,0x40}, 
1139         {0xA430,0x03}, 
1140         {0xA431,0x75}, 
1141         {0xA432,0x2E}, 
1142         {0xA433,0x02}, 
1143         {0xA434,0xEF}, 
1144         {0xA435,0xB4}, 
1145         {0xA436,0x01}, 
1146         {0xA437,0x0C}, 
1147         {0xA438,0x90}, 
1148         {0xA439,0x00}, 
1149         {0xA43A,0x66}, 
1150         {0xA43B,0xE0}, 
1151         {0xA43C,0xC3}, 
1152         {0xA43D,0x94}, 
1153         {0xA43E,0x07}, 
1154         {0xA43F,0x40}, 
1155         {0xA440,0x03}, 
1156         {0xA441,0x75}, 
1157         {0xA442,0x2E}, 
1158         {0xA443,0x02}, 
1159         {0xA444,0x02}, 
1160         {0xA445,0xA7}, 
1161         {0xA446,0x9E}, 
1162         {0xA447,0xC3}, 
1163         {0xA448,0x90}, 
1164         {0xA449,0x0B}, 
1165         {0xA44A,0x8F}, 
1166         {0xA44B,0xE0}, 
1167         {0xA44C,0x94}, 
1168         {0xA44D,0x00}, 
1169         {0xA44E,0x90}, 
1170         {0xA44F,0x0B}, 
1171         {0xA450,0x8E}, 
1172         {0xA451,0xE0}, 
1173         {0xA452,0x94}, 
1174         {0xA453,0x41}, 
1175         {0xA454,0x40}, 
1176         {0xA455,0x22}, 
1177         {0xA456,0x90}, 
1178         {0xA457,0x0B}, 
1179         {0xA458,0x91}, 
1180         {0xA459,0xE0}, 
1181         {0xA45A,0x94}, 
1182         {0xA45B,0x00}, 
1183         {0xA45C,0x90}, 
1184         {0xA45D,0x0B}, 
1185         {0xA45E,0x90}, 
1186         {0xA45F,0xE0}, 
1187         {0xA460,0x94}, 
1188         {0xA461,0x41}, 
1189         {0xA462,0x40}, 
1190         {0xA463,0x14}, 
1191         {0xA464,0x90}, 
1192         {0xA465,0x0B}, 
1193         {0xA466,0x93}, 
1194         {0xA467,0xE0}, 
1195         {0xA468,0x94}, 
1196         {0xA469,0x00}, 
1197         {0xA46A,0x90}, 
1198         {0xA46B,0x0B}, 
1199         {0xA46C,0x92}, 
1200         {0xA46D,0xE0}, 
1201         {0xA46E,0x94}, 
1202         {0xA46F,0x41}, 
1203         {0xA470,0x40}, 
1204         {0xA471,0x06}, 
1205         {0xA472,0x90}, 
1206         {0xA473,0x01}, 
1207         {0xA474,0xA4}, 
1208         {0xA475,0x02}, 
1209         {0xA476,0x86}, 
1210         {0xA477,0x57}, 
1211         {0xA478,0x02}, 
1212         {0xA479,0x86}, 
1213         {0xA47A,0x5C}, 
1214         {0xA500,0xF5}, 
1215         {0xA501,0x3B}, 
1216         {0xA502,0x90}, 
1217         {0xA503,0x06}, 
1218         {0xA504,0x6C}, 
1219         {0xA505,0xE0}, 
1220         {0xA506,0xFF}, 
1221         {0xA507,0xE5}, 
1222         {0xA508,0x3B}, 
1223         {0xA509,0xC3}, 
1224         {0xA50A,0x9F}, 
1225         {0xA50B,0x40}, 
1226         {0xA50C,0x03}, 
1227         {0xA50D,0x02}, 
1228         {0xA50E,0xF6}, 
1229         {0xA50F,0x0E}, 
1230         {0xA510,0x90}, 
1231         {0xA511,0x0B}, 
1232         {0xA512,0xC6}, 
1233         {0xA513,0xE0}, 
1234         {0xA514,0x14}, 
1235         {0xA515,0x60}, 
1236         {0xA516,0x3C}, 
1237         {0xA517,0x14}, 
1238         {0xA518,0x60}, 
1239         {0xA519,0x6B}, 
1240         {0xA51A,0x24}, 
1241         {0xA51B,0x02}, 
1242         {0xA51C,0x60}, 
1243         {0xA51D,0x03}, 
1244         {0xA51E,0x02}, 
1245         {0xA51F,0xF5}, 
1246         {0xA520,0xB5}, 
1247         {0xA521,0x90}, 
1248         {0xA522,0x0A}, 
1249         {0xA523,0x9A}, 
1250         {0xA524,0xE0}, 
1251         {0xA525,0xFB}, 
1252         {0xA526,0xA3}, 
1253         {0xA527,0xE0}, 
1254         {0xA528,0xFA}, 
1255         {0xA529,0xA3}, 
1256         {0xA52A,0xE0}, 
1257         {0xA52B,0xF9}, 
1258         {0xA52C,0x85}, 
1259         {0xA52D,0x3B}, 
1260         {0xA52E,0x82}, 
1261         {0xA52F,0x75}, 
1262         {0xA530,0x83}, 
1263         {0xA531,0x00}, 
1264         {0xA532,0x12}, 
1265         {0xA533,0x0A}, 
1266         {0xA534,0xB8}, 
1267         {0xA535,0xFF}, 
1268         {0xA536,0x74}, 
1269         {0xA537,0xAB}, 
1270         {0xA538,0x25}, 
1271         {0xA539,0x3B}, 
1272         {0xA53A,0xF5}, 
1273         {0xA53B,0x82}, 
1274         {0xA53C,0xE4}, 
1275         {0xA53D,0x34}, 
1276         {0xA53E,0x0A}, 
1277         {0xA53F,0xF5}, 
1278         {0xA540,0x83}, 
1279         {0xA541,0xE0}, 
1280         {0xA542,0xFD}, 
1281         {0xA543,0xC3}, 
1282         {0xA544,0xEF}, 
1283         {0xA545,0x9D}, 
1284         {0xA546,0xFE}, 
1285         {0xA547,0xE4}, 
1286         {0xA548,0x94}, 
1287         {0xA549,0x00}, 
1288         {0xA54A,0x90}, 
1289         {0xA54B,0x0B}, 
1290         {0xA54C,0xCA}, 
1291         {0xA54D,0xF0}, 
1292         {0xA54E,0xA3}, 
1293         {0xA54F,0xCE}, 
1294         {0xA550,0xF0}, 
1295         {0xA551,0x80}, 
1296         {0xA552,0x62}, 
1297         {0xA553,0x90}, 
1298         {0xA554,0x0A}, 
1299         {0xA555,0x9A}, 
1300         {0xA556,0xE0}, 
1301         {0xA557,0xFB}, 
1302         {0xA558,0xA3}, 
1303         {0xA559,0xE0}, 
1304         {0xA55A,0xFA}, 
1305         {0xA55B,0xA3}, 
1306         {0xA55C,0xE0}, 
1307         {0xA55D,0xF9}, 
1308         {0xA55E,0x85}, 
1309         {0xA55F,0x3B}, 
1310         {0xA560,0x82}, 
1311         {0xA561,0x75}, 
1312         {0xA562,0x83}, 
1313         {0xA563,0x00}, 
1314         {0xA564,0x12}, 
1315         {0xA565,0x0A}, 
1316         {0xA566,0xB8}, 
1317         {0xA567,0xFF}, 
1318         {0xA568,0x74}, 
1319         {0xA569,0x9D}, 
1320         {0xA56A,0x25}, 
1321         {0xA56B,0x3B}, 
1322         {0xA56C,0xF5}, 
1323         {0xA56D,0x82}, 
1324         {0xA56E,0xE4}, 
1325         {0xA56F,0x34}, 
1326         {0xA570,0x0A}, 
1327         {0xA571,0xF5}, 
1328         {0xA572,0x83}, 
1329         {0xA573,0xE0}, 
1330         {0xA574,0xFD}, 
1331         {0xA575,0xC3}, 
1332         {0xA576,0xEF}, 
1333         {0xA577,0x9D}, 
1334         {0xA578,0xFE}, 
1335         {0xA579,0xE4}, 
1336         {0xA57A,0x94}, 
1337         {0xA57B,0x00}, 
1338         {0xA57C,0x90}, 
1339         {0xA57D,0x0B}, 
1340         {0xA57E,0xCA}, 
1341         {0xA57F,0xF0}, 
1342         {0xA580,0xA3}, 
1343         {0xA581,0xCE}, 
1344         {0xA582,0xF0}, 
1345         {0xA583,0x80}, 
1346         {0xA584,0x30}, 
1347         {0xA585,0x90}, 
1348         {0xA586,0x0A}, 
1349         {0xA587,0x9A}, 
1350         {0xA588,0xE0}, 
1351         {0xA589,0xFB}, 
1352         {0xA58A,0xA3}, 
1353         {0xA58B,0xE0}, 
1354         {0xA58C,0xFA}, 
1355         {0xA58D,0xA3}, 
1356         {0xA58E,0xE0}, 
1357         {0xA58F,0xF9}, 
1358         {0xA590,0x85}, 
1359         {0xA591,0x3B}, 
1360         {0xA592,0x82}, 
1361         {0xA593,0x75}, 
1362         {0xA594,0x83}, 
1363         {0xA595,0x00}, 
1364         {0xA596,0x12}, 
1365         {0xA597,0x0A}, 
1366         {0xA598,0xB8}, 
1367         {0xA599,0xFF}, 
1368         {0xA59A,0x74}, 
1369         {0xA59B,0xA4}, 
1370         {0xA59C,0x25}, 
1371         {0xA59D,0x3B}, 
1372         {0xA59E,0xF5}, 
1373         {0xA59F,0x82}, 
1374         {0xA5A0,0xE4}, 
1375         {0xA5A1,0x34}, 
1376         {0xA5A2,0x0A}, 
1377         {0xA5A3,0xF5}, 
1378         {0xA5A4,0x83}, 
1379         {0xA5A5,0xE0}, 
1380         {0xA5A6,0xFD}, 
1381         {0xA5A7,0xC3}, 
1382         {0xA5A8,0xEF}, 
1383         {0xA5A9,0x9D}, 
1384         {0xA5AA,0xFE}, 
1385         {0xA5AB,0xE4}, 
1386         {0xA5AC,0x94}, 
1387         {0xA5AD,0x00}, 
1388         {0xA5AE,0x90}, 
1389         {0xA5AF,0x0B}, 
1390         {0xA5B0,0xCA}, 
1391         {0xA5B1,0xF0}, 
1392         {0xA5B2,0xA3}, 
1393         {0xA5B3,0xCE}, 
1394         {0xA5B4,0xF0}, 
1395         {0xA5B5,0x90}, 
1396         {0xA5B6,0x07}, 
1397         {0xA5B7,0x83}, 
1398         {0xA5B8,0xE0}, 
1399         {0xA5B9,0xFF}, 
1400         {0xA5BA,0x7E}, 
1401         {0xA5BB,0x00}, 
1402         {0xA5BC,0x90}, 
1403         {0xA5BD,0x0D}, 
1404         {0xA5BE,0xF6}, 
1405         {0xA5BF,0xEE}, 
1406         {0xA5C0,0xF0}, 
1407         {0xA5C1,0xA3}, 
1408         {0xA5C2,0xEF}, 
1409         {0xA5C3,0xF0}, 
1410         {0xA5C4,0x90}, 
1411         {0xA5C5,0x0B}, 
1412         {0xA5C6,0xCA}, 
1413         {0xA5C7,0xE0}, 
1414         {0xA5C8,0xFC}, 
1415         {0xA5C9,0xA3}, 
1416         {0xA5CA,0xE0}, 
1417         {0xA5CB,0xFD}, 
1418         {0xA5CC,0xD3}, 
1419         {0xA5CD,0x9F}, 
1420         {0xA5CE,0x74}, 
1421         {0xA5CF,0x80}, 
1422         {0xA5D0,0xF8}, 
1423         {0xA5D1,0xEC}, 
1424         {0xA5D2,0x64}, 
1425         {0xA5D3,0x80}, 
1426         {0xA5D4,0x98}, 
1427         {0xA5D5,0x40}, 
1428         {0xA5D6,0x0C}, 
1429         {0xA5D7,0x90}, 
1430         {0xA5D8,0x0B}, 
1431         {0xA5D9,0xC8}, 
1432         {0xA5DA,0xE0}, 
1433         {0xA5DB,0x04}, 
1434         {0xA5DC,0xF0}, 
1435         {0xA5DD,0xA3}, 
1436         {0xA5DE,0xE0}, 
1437         {0xA5DF,0x04}, 
1438         {0xA5E0,0xF0}, 
1439         {0xA5E1,0x80}, 
1440         {0xA5E2,0x26}, 
1441         {0xA5E3,0x90}, 
1442         {0xA5E4,0x0D}, 
1443         {0xA5E5,0xF6}, 
1444         {0xA5E6,0xE0}, 
1445         {0xA5E7,0xFE}, 
1446         {0xA5E8,0xA3}, 
1447         {0xA5E9,0xE0}, 
1448         {0xA5EA,0xFF}, 
1449         {0xA5EB,0xC3}, 
1450         {0xA5EC,0xE4}, 
1451         {0xA5ED,0x9F}, 
1452         {0xA5EE,0xFF}, 
1453         {0xA5EF,0xE4}, 
1454         {0xA5F0,0x9E}, 
1455         {0xA5F1,0xFE}, 
1456         {0xA5F2,0xC3}, 
1457         {0xA5F3,0xED}, 
1458         {0xA5F4,0x9F}, 
1459         {0xA5F5,0xEE}, 
1460         {0xA5F6,0x64}, 
1461         {0xA5F7,0x80}, 
1462         {0xA5F8,0xF8}, 
1463         {0xA5F9,0xEC}, 
1464         {0xA5FA,0x64}, 
1465         {0xA5FB,0x80}, 
1466         {0xA5FC,0x98}, 
1467         {0xA5FD,0x50}, 
1468         {0xA5FE,0x0A}, 
1469         {0xA5FF,0x90}, 
1470         {0xA600,0x0B}, 
1471         {0xA601,0xC8}, 
1472         {0xA602,0xE0}, 
1473         {0xA603,0x14}, 
1474         {0xA604,0xF0}, 
1475         {0xA605,0xA3}, 
1476         {0xA606,0xE0}, 
1477         {0xA607,0x04}, 
1478         {0xA608,0xF0}, 
1479         {0xA609,0x05}, 
1480         {0xA60A,0x3B}, 
1481         {0xA60B,0x02}, 
1482         {0xA60C,0xF5}, 
1483         {0xA60D,0x02}, 
1484         {0xA60E,0x90}, 
1485         {0xA60F,0x08}, 
1486         {0xA610,0x58}, 
1487         {0xA611,0x02}, 
1488         {0xA612,0x9D}, 
1489         {0xA613,0x50}, 
1490         {0x9006,0xBA}, 
1491         {0x9007,0x75}, 
1492         {0x9008,0x00}, 
1493         {0x9009,0x00}, 
1494         {0x900A,0x02}, 
1495         {0x900D,0x01}, 
1496         {0x900E,0xA2}, 
1497         {0x900F,0x8F}, 
1498         {0x9010,0x00}, 
1499         {0x9011,0xCB}, 
1500         {0x9012,0x03}, 
1501         {0x9016,0xE6}, 
1502         {0x9017,0x6B}, 
1503         {0x9018,0x02}, 
1504         {0x9019,0x6B}, 
1505         {0x901A,0x02}, 
1506         {0x901D,0x01}, 
1507         {0x901E,0xAC}, 
1508         {0x901F,0x70}, 
1509         {0x9020,0x00}, 
1510         {0x9021,0xC5}, 
1511         {0x9022,0x03}, 
1512         {0x9026,0x9C}, 
1513         {0x9027,0x5B}, 
1514         {0x9028,0x00}, 
1515         {0x9029,0xBF}, 
1516         {0x902A,0x02}, 
1517         {0x902E,0x60}, 
1518         {0x902F,0x1C}, 
1519         {0x9030,0x01}, 
1520         {0x9031,0x37}, 
1521         {0x9032,0x02}, 
1522         {0x9035,0x01}, 
1523         {0x9036,0xBA}, 
1524         {0x9037,0x70}, 
1525         {0x9038,0x00}, 
1526         {0x9039,0x00}, 
1527         {0x903A,0x03}, 
1528         {0x903E,0x21}, 
1529         {0x903F,0x3F}, 
1530         {0x9040,0x02}, 
1531         {0x9041,0x40}, 
1532         {0x9042,0x02}, 
1533         {0x9046,0x21}, 
1534         {0x9047,0xEA}, 
1535         {0x9048,0x02}, 
1536         {0x9049,0x43}, 
1537         {0x904A,0x02}, 
1538         {0x904E,0xA6}, 
1539         {0x904F,0x12}, 
1540         {0x9050,0x02}, 
1541         {0x9051,0x46}, 
1542         {0x9052,0x02}, 
1543         {0x9056,0x29}, 
1544         {0x9057,0xE3}, 
1545         {0x9058,0x02}, 
1546         {0x9059,0x49}, 
1547         {0x905A,0x02}, 
1548         {0x905D,0x01}, 
1549         {0x905E,0x9C}, 
1550         {0x905F,0x6E}, 
1551         {0x9060,0x05}, 
1552         {0x9061,0x00}, 
1553         {0x9062,0x02}, 
1554         {0x9065,0x01}, 
1555         {0x9066,0xA2}, 
1556         {0x9067,0x66}, 
1557         {0x9068,0x02}, 
1558         {0x9069,0x35}, 
1559         {0x906A,0x02}, 
1560         {0x906D,0x01}, 
1561         {0x906E,0xB5}, 
1562         {0x906F,0xC2}, 
1563         {0x9070,0x02}, 
1564         {0x9071,0x9B}, 
1565         {0x9072,0x02}, 
1566         {0x9075,0x01}, 
1567         {0x9076,0xA2}, 
1568         {0x9077,0xD4}, 
1569         {0x9078,0x02}, 
1570         {0x9079,0xBE}, 
1571         {0x907A,0x02}, 
1572         {0x907D,0x01}, 
1573         {0x907E,0xB7}, 
1574         {0x907F,0xEA}, 
1575         {0x9080,0x00}, 
1576         {0x9081,0x02}, 
1577         {0x9082,0x03}, 
1578         {0x9086,0x67}, 
1579         {0x9087,0x31}, 
1580         {0x9088,0x02}, 
1581         {0x9089,0xF7}, 
1582         {0x908A,0x02}, 
1583         {0x908E,0x66}, 
1584         {0x908F,0xED}, 
1585         {0x9090,0x03}, 
1586         {0x9091,0x1D}, 
1587         {0x9092,0x02}, 
1588         {0x9096,0x67}, 
1589         {0x9097,0x73}, 
1590         {0x9098,0x03}, 
1591         {0x9099,0xD3}, 
1592         {0x909A,0x02}, 
1593         {0x909E,0x20}, 
1594         {0x909F,0x40}, 
1595         {0x90A0,0x03}, 
1596         {0x90A1,0x3B}, 
1597         {0x90A2,0x02}, 
1598         {0x90A6,0xC5}, 
1599         {0x90A7,0xC0}, 
1600         {0x90A8,0x03}, 
1601         {0x90A9,0xF0}, 
1602         {0x90AA,0x02}, 
1603         {0x90AE,0x41}, 
1604         {0x90AF,0xB3}, 
1605         {0x90B0,0x00}, 
1606         {0x90B1,0xA2}, 
1607         {0x90B2,0x02}, 
1608         {0x90B6,0x44}, 
1609         {0x90B7,0xBA}, 
1610         {0x90B8,0x00}, 
1611         {0x90B9,0xF0}, 
1612         {0x90BA,0x03}, 
1613         {0x90BE,0x89}, 
1614         {0x90BF,0x99}, 
1615         {0x90C0,0x04}, 
1616         {0x90C1,0x00}, 
1617         {0x90C2,0x02}, 
1618         {0x90C6,0xA7}, 
1619         {0x90C7,0x91}, 
1620         {0x90C8,0x04}, 
1621         {0x90C9,0x21}, 
1622         {0x90CA,0x02}, 
1623         {0x90CE,0x3A}, 
1624         {0x90CF,0x51}, 
1625         {0x90D0,0x00}, 
1626         {0x90D1,0xA2}, 
1627         {0x90D2,0x02}, 
1628         {0x90D6,0x86}, 
1629         {0x90D7,0x54}, 
1630         {0x90D8,0x04}, 
1631         {0x90D9,0x47}, 
1632         {0x90DA,0x02}, 
1633         {0x9000,0x01}, 
1634         {0xffff,0x00},   // 2013-03-01 end\r
1635         SensorWaitMs(200),\r
1636     {0x0009,0x16}, //10\r
1637     {0x0085,0x00}, \r
1638     {0x0040,0x00},\r
1639     {0x0016,0x00},\r
1640     {0x0046,0x00},\r
1641     {0x0041,0x00},\r
1642     {0x00B5,0x02},\r
1643     {0x7101,0x44},\r
1644     {0x00ED,0x0A},\r
1645     {0x00EE,0x1E},\r
1646     {0x00B3,0x80},\r
1647     {0x7104,0x00},\r
1648     {0x7105,0x80},\r
1649     {0x019C,0x4B},\r
1650     {0x019D,0x20},\r
1651     {0x0129,0x00},\r
1652     {0x0130,0x00},\r
1653     {0x0083,0x01},\r
1654     {0x0084,0x01},\r
1655     {0x01A1,0x80},\r
1656     {0x01A2,0x80},\r
1657     {0x01A3,0x80},\r
1658     {0x01A0,0x01},\r
1659     {0x0021,0x00},\r
1660     {0x0022,0x01},\r
1661 \r
1662     {0x0040,0x00}, //00\r
1663     {0x0060,0x00},\r
1664     {0x0013,0x00},\r
1665     {0x0041,0x00},//00:5M 03:SVGA\r
1666 \r
1667     {0x0061,0x00},\r
1668     {0x0046,0x02},\r
1669     {0x0066,0x02},\r
1670     {0x0012,0x00},\r
1671     {0x7102,0x09},\r
1672     {0x7103,0x00},\r
1673     {0x7158,0x00},\r
1674     {0x00E8,0x01},\r
1675     {0x7000,0x2C},\r
1676     {0x5200,0x01},\r
1677     {0x7000,0x0C},\r
1678     {0x0143,0x5F},\r
1679     {0x0144,0x0D},\r
1680     {0x02C2,0x00},\r
1681     {0x02C3,0xC0},\r
1682     {0x015E,0x40},\r
1683     {0x015F,0x00},\r
1684     {0x0390,0x01},\r
1685     {0x0391,0x00},\r
1686     {0x0392,0x00},\r
1687     {0x03A0,0x14},\r
1688     {0x03A1,0x00},\r
1689     {0x03A2,0x5A},\r
1690     {0x03A3,0xEE},\r
1691     {0x03A4,0x69},\r
1692     {0x03A5,0x49},\r
1693     {0x03A6,0x3E},\r
1694     {0x03A7,0x00},\r
1695     {0x03A8,0x39},\r
1696     {0x03A9,0x33},\r
1697     {0x03B0,0x60},\r
1698     {0x03B1,0x00},\r
1699     {0x03B2,0x5A},\r
1700     {0x03B3,0xEE},\r
1701     {0x03B4,0x69},\r
1702     {0x03B5,0x49},\r
1703     {0x03B6,0x3E},\r
1704     {0x03B7,0x00},\r
1705     {0x03B8,0x3D},\r
1706     {0x03B9,0x20},\r
1707     {0x03C0,0x10},\r
1708     {0x03C1,0x00},\r
1709     {0x03C2,0x5A},\r
1710     {0x03C3,0xEE},\r
1711     {0x03C4,0x69},\r
1712     {0x03C5,0x49},\r
1713     {0x03C6,0x3A},\r
1714     {0x03C7,0x80},\r
1715     {0x03D0,0x64},\r
1716     {0x03D1,0x00},\r
1717     {0x03D2,0x5A},\r
1718     {0x03D3,0xEE},\r
1719     {0x03D4,0x69},\r
1720     {0x03D5,0x49},\r
1721     {0x03D6,0x34},\r
1722     {0x03D7,0xD1},\r
1723     {0x004C,0x08},\r
1724     {0x006C,0x08},\r
1725     {0x0350,0x00},\r
1726     {0x0351,0x5A},\r
1727     {0x0352,0xEE},\r
1728     {0x0353,0x69},\r
1729     {0x0354,0x49},\r
1730     {0x0355,0x39},\r
1731     {0x0356,0x6D},\r
1732     {0x0357,0x19},\r
1733     {0x0358,0x00},\r
1734     {0x0359,0x3C},\r
1735     {0x035A,0x5A},\r
1736     {0x035B,0xEE},\r
1737     {0x035C,0x69},\r
1738     {0x035D,0x49},\r
1739     {0x035E,0x39},\r
1740     {0x035F,0x85},\r
1741     {0x0049,0x14},\r
1742     {0x004A,0x0D},\r
1743     {0x0069,0x14},\r
1744     {0x006A,0x0D},\r
1745     {0x0090,0x00},\r
1746     {0x0091,0x5A},\r
1747     {0x0092,0xEE},\r
1748     {0x0093,0x3E},\r
1749     {0x0094,0x00},\r
1750     {0x0095,0x69},\r
1751     {0x0096,0x49},\r
1752     {0x0097,0x39},\r
1753     {0x0098,0xCF},\r
1754     {0x00A0,0x00},\r
1755     {0x00A1,0x5A},\r
1756     {0x00A2,0xEE},\r
1757     {0x00A3,0x3E},\r
1758     {0x00A4,0x00},\r
1759     {0x00A5,0x69},\r
1760     {0x00A6,0x49},\r
1761     {0x00A7,0x3B},\r
1762     {0x00A8,0x80},\r
1763     {0x0420,0x00},     //new LSC start - 0306\r
1764     {0x0421,0x26},\r
1765     {0x0422,0xff},\r
1766     {0x0423,0x03},\r
1767     {0x0424,0x00},\r
1768     {0x0425,0x63},\r
1769     {0x0426,0x00},\r
1770     {0x0427,0x8e},\r
1771     {0x0428,0xff},\r
1772     {0x0429,0xf3},\r
1773     {0x042A,0x00},\r
1774     {0x042B,0x26},\r
1775     {0x042C,0xff},\r
1776     {0x042D,0xc8},\r
1777     {0x042E,0xff},\r
1778     {0x042F,0x5f},\r
1779     {0x0430,0x00},\r
1780     {0x0431,0x10}, \r
1781     {0x0432,0xfe},\r
1782     {0x0433,0xcf}, \r
1783     {0x0434,0x00},\r
1784     {0x0435,0xc2}, \r
1785     {0x0436,0x00},\r
1786     {0x0437,0xf2}, \r
1787     {0x0438,0xff},\r
1788     {0x0439,0xd0}, \r
1789     {0x043A,0x00},\r
1790     {0x043B,0xa1}, \r
1791     {0x043C,0x00},\r
1792     {0x043D,0x2f}, \r
1793     {0x043E,0xfe},\r
1794     {0x043F,0xdc},\r
1795     {0x0450,0x00},\r
1796     {0x0451,0x36},  \r
1797     {0x0452,0xff},\r
1798     {0x0453,0x60},  \r
1799     {0x0454,0x00},\r
1800     {0x0455,0x43},  \r
1801     {0x0456,0x00},\r
1802     {0x0457,0x6b},  \r
1803     {0x0458,0xff},\r
1804     {0x0459,0xdf},  \r
1805     {0x045A,0x00},\r
1806     {0x045B,0x83},  \r
1807     {0x045C,0xff},\r
1808     {0x045D,0xeb},  \r
1809     {0x045E,0xff},\r
1810     {0x045F,0x5f},\r
1811     {0x0440,0x00},\r
1812     {0x0441,0x36},        \r
1813     {0x0442,0xff},\r
1814     {0x0443,0x3e},        \r
1815     {0x0444,0x00},\r
1816     {0x0445,0x6d},        \r
1817     {0x0446,0x00},\r
1818     {0x0447,0x87},        \r
1819     {0x0448,0x00},\r
1820     {0x0449,0x0f},        \r
1821     {0x044A,0xff},\r
1822     {0x044B,0xd3},        \r
1823     {0x044C,0x00},\r
1824     {0x044D,0x18},        \r
1825     {0x044E,0xff},\r
1826     {0x044F,0x4f},\r
1827     {0x0561,0x08},\r
1828     {0x0460,0x00},\r
1829     {0x0461,0x22},\r
1830     {0x0462,0xff},\r
1831     {0x0463,0x0a},\r
1832     {0x0464,0x00},\r
1833     {0x0465,0x63},\r
1834     {0x0466,0x00},\r
1835     {0x0467,0x8b},\r
1836     {0x0468,0xff},\r
1837     {0x0469,0xf9},\r
1838     {0x046A,0x00},\r
1839     {0x046B,0x17},\r
1840     {0x046C,0xff},\r
1841     {0x046D,0xbd},\r
1842     {0x046E,0xff},\r
1843     {0x046F,0x65},\r
1844     {0x0470,0x00},\r
1845     {0x0471,0x15}, \r
1846     {0x0472,0xfe},\r
1847     {0x0473,0xd7}, \r
1848     {0x0474,0x00},\r
1849     {0x0475,0xb6}, \r
1850     {0x0476,0x00},\r
1851     {0x0477,0xe5}, \r
1852     {0x0478,0xff},\r
1853     {0x0479,0xd0}, \r
1854     {0x047A,0x00},\r
1855     {0x047B,0xb2}, \r
1856     {0x047C,0x00},\r
1857     {0x047D,0x2c}, \r
1858     {0x047E,0xfe},\r
1859     {0x047F,0xe6},\r
1860     {0x0490,0x00},\r
1861     {0x0491,0x2b},  \r
1862     {0x0492,0xff},\r
1863     {0x0493,0x71},  \r
1864     {0x0494,0x00},\r
1865     {0x0495,0x43},  \r
1866     {0x0496,0x00},\r
1867     {0x0497,0x69},  \r
1868     {0x0498,0xff},\r
1869     {0x0499,0xd7},  \r
1870     {0x049A,0x00},\r
1871     {0x049B,0x59},  \r
1872     {0x049C,0xff},\r
1873     {0x049D,0xde},  \r
1874     {0x049E,0xff},\r
1875     {0x049F,0x76},                                    \r
1876     {0x0480,0x00},\r
1877     {0x0481,0x38},        \r
1878     {0x0482,0xff},\r
1879     {0x0483,0x3a},        \r
1880     {0x0484,0x00},\r
1881     {0x0485,0x6b},        \r
1882     {0x0486,0x00},\r
1883     {0x0487,0x86},        \r
1884     {0x0488,0x00},\r
1885     {0x0489,0x14},        \r
1886     {0x048A,0xff},\r
1887     {0x048B,0xd7},        \r
1888     {0x048C,0x00},\r
1889     {0x048D,0x13},        \r
1890     {0x048E,0xff},\r
1891     {0x048F,0x58},\r
1892     {0x0562,0x08},\r
1893     {0x04A0,0x00},\r
1894     {0x04A1,0x17},\r
1895     {0x04A2,0xff},\r
1896     {0x04A3,0x2e},\r
1897     {0x04A4,0x00},\r
1898     {0x04A5,0x5d},\r
1899     {0x04A6,0x00},\r
1900     {0x04A7,0x7a},\r
1901     {0x04A8,0xff},\r
1902     {0x04A9,0xf9},\r
1903     {0x04AA,0xff},\r
1904     {0x04AB,0xc0},\r
1905     {0x04AC,0xff},\r
1906     {0x04AD,0xc7},\r
1907     {0x04AE,0xff},\r
1908     {0x04AF,0x7d},\r
1909     {0x04B0,0x00},\r
1910     {0x04B1,0x13}, \r
1911     {0x04B2,0xff},\r
1912     {0x04B3,0x45}, \r
1913     {0x04B4,0x00},\r
1914     {0x04B5,0x70}, \r
1915     {0x04B6,0x00},\r
1916     {0x04B7,0x96}, \r
1917     {0x04B8,0xff},\r
1918     {0x04B9,0xde}, \r
1919     {0x04BA,0x00},\r
1920     {0x04BB,0x17}, \r
1921     {0x04BC,0x00},\r
1922     {0x04BD,0x23}, \r
1923     {0x04BE,0xff},\r
1924     {0x04BF,0x46},\r
1925     {0x04D0,0x00},\r
1926     {0x04D1,0x17},  \r
1927     {0x04D2,0xff},\r
1928     {0x04D3,0x99},  \r
1929     {0x04D4,0x00},\r
1930     {0x04D5,0x3d},  \r
1931     {0x04D6,0x00},\r
1932     {0x04D7,0x5f},  \r
1933     {0x04D8,0xff},\r
1934     {0x04D9,0xd1},  \r
1935     {0x04DA,0xff},\r
1936     {0x04DB,0xe2},  \r
1937     {0x04DC,0xff},\r
1938     {0x04DD,0xc6},  \r
1939     {0x04DE,0xff},\r
1940     {0x04DF,0x9c},                                    \r
1941     {0x04C0,0x00},\r
1942     {0x04C1,0x32},        \r
1943     {0x04C2,0xff},\r
1944     {0x04C3,0x4e},        \r
1945     {0x04C4,0x00},\r
1946     {0x04C5,0x5e},        \r
1947     {0x04C6,0x00},\r
1948     {0x04C7,0x7c},        \r
1949     {0x04C8,0x00},\r
1950     {0x04C9,0x17},        \r
1951     {0x04CA,0xff},\r
1952     {0x04CB,0x9b},        \r
1953     {0x04CC,0x00},\r
1954     {0x04CD,0x06},        \r
1955     {0x04CE,0xff},\r
1956     {0x04CF,0x70},\r
1957     {0x0563,0x05},\r
1958     {0x04E0,0x00},\r
1959     {0x04E1,0x11},\r
1960     {0x04E2,0xff},\r
1961     {0x04E3,0x20},\r
1962     {0x04E4,0x00},\r
1963     {0x04E5,0x5f},\r
1964     {0x04E6,0x00},\r
1965     {0x04E7,0x7b},\r
1966     {0x04E8,0x00},\r
1967     {0x04E9,0x02},\r
1968     {0x04EA,0xff},\r
1969     {0x04EB,0xf1},\r
1970     {0x04EC,0xff},\r
1971     {0x04ED,0xb7},\r
1972     {0x04EE,0xff},\r
1973     {0x04EF,0x7b},\r
1974     {0x04F0,0x00},\r
1975     {0x04F1,0x1c}, \r
1976     {0x04F2,0xff},\r
1977     {0x04F3,0x08}, \r
1978     {0x04F4,0x00},\r
1979     {0x04F5,0x7e}, \r
1980     {0x04F6,0x00},\r
1981     {0x04F7,0xac}, \r
1982     {0x04F8,0xff},\r
1983     {0x04F9,0xeb}, \r
1984     {0x04FA,0x00},\r
1985     {0x04FB,0x93}, \r
1986     {0x04FC,0x00},\r
1987     {0x04FD,0x1b}, \r
1988     {0x04FE,0xff},\r
1989     {0x04FF,0x11}, \r
1990     {0x0510,0xff},\r
1991     {0x0511,0xfe},  \r
1992     {0x0512,0xff},\r
1993     {0x0513,0x8e},  \r
1994     {0x0514,0x00},\r
1995     {0x0515,0x4a},  \r
1996     {0x0516,0x00},\r
1997     {0x0517,0x6e},  \r
1998     {0x0518,0xff},\r
1999     {0x0519,0xbb},  \r
2000     {0x051A,0xff},\r
2001     {0x051B,0xcc},  \r
2002     {0x051C,0xff},\r
2003     {0x051D,0x9a},  \r
2004     {0x051E,0xff},\r
2005     {0x051F,0xa2},  \r
2006     {0x0500,0x00},\r
2007     {0x0501,0x30},        \r
2008     {0x0502,0xff},\r
2009     {0x0503,0x36},        \r
2010     {0x0504,0x00},\r
2011     {0x0505,0x5d},        \r
2012     {0x0506,0x00},\r
2013     {0x0507,0x81},        \r
2014     {0x0508,0x00},\r
2015     {0x0509,0x1f},        \r
2016     {0x050A,0xff},\r
2017     {0x050B,0xd4},        \r
2018     {0x050C,0xff},\r
2019     {0x050D,0xfe},        \r
2020     {0x050E,0xff},\r
2021     {0x050F,0x75},\r
2022     {0x0564,0x00}, //new LSC end\r
2023     {0x0324,0x39},\r
2024     {0x0325,0xAE},\r
2025     {0x0326,0x3A},\r
2026     {0x0327,0x29},\r
2027     {0x0328,0x3B},\r
2028     {0x0329,0x0A},\r
2029     {0x032A,0x3B},\r
2030     {0x032B,0x62},\r
2031     {0x0320,0x01},\r
2032     {0x0321,0x04},\r
2033     {0x0322,0x01},\r
2034     {0x0323,0x01},\r
2035     {0x0330,0x01},\r
2036     {0x0384,0x00},\r
2037     {0x0337,0x01},\r
2038     {0x03EC,0x39},\r
2039     {0x03ED,0x85},\r
2040     {0x03FC,0x3A},\r
2041     {0x03FD,0x14},\r
2042     {0x040C,0x3A},\r
2043     {0x040D,0xF6},\r
2044     {0x041C,0x3B},\r
2045     {0x041D,0x9A},\r
2046     {0x03E0,0xB6},\r
2047     {0x03E1,0x04},\r
2048     {0x03E2,0xBB},\r
2049     {0x03E3,0xE9},\r
2050     {0x03E4,0xBC},\r
2051     {0x03E5,0x70},\r
2052     {0x03E6,0x37},\r
2053     {0x03E7,0x02},\r
2054     {0x03E8,0xBC},\r
2055     {0x03E9,0x00},\r
2056     {0x03EA,0xBF},\r
2057     {0x03EB,0x12},\r
2058     {0x03F0,0xBA},\r
2059     {0x03F1,0x7B},\r
2060     {0x03F2,0xBA},\r
2061     {0x03F3,0x83},\r
2062     {0x03F4,0xBB},\r
2063     {0x03F5,0xBC},\r
2064     {0x03F6,0x38},\r
2065     {0x03F7,0x2D},\r
2066     {0x03F8,0xBB},\r
2067     {0x03F9,0x23},\r
2068     {0x03FA,0xBD},\r
2069     {0x03FB,0xAC},\r
2070     {0x0400,0xBE},\r
2071     {0x0401,0x96},\r
2072     {0x0402,0xB9},\r
2073     {0x0403,0xBE},\r
2074     {0x0404,0xBB},\r
2075     {0x0405,0x57},\r
2076     {0x0406,0x3A},\r
2077     {0x0407,0xBB},\r
2078     {0x0408,0xB3},\r
2079     {0x0409,0x17},\r
2080     {0x040A,0xBE},\r
2081     {0x040B,0x66},\r
2082     {0x0410,0xBB},\r
2083     {0x0411,0x2A},\r
2084     {0x0412,0xBA},\r
2085     {0x0413,0x00},\r
2086     {0x0414,0xBB},\r
2087     {0x0415,0x10},\r
2088     {0x0416,0xB8},\r
2089     {0x0417,0xCD},\r
2090     {0x0418,0xB7},\r
2091     {0x0419,0x5C},\r
2092     {0x041A,0xBB},\r
2093     {0x041B,0x6C},\r
2094     {0x01f8,0x3c},\r
2095     {0x01f9,0x00},\r
2096     {0x01fa,0x00},\r
2097     {0x02a2,0x3e},\r
2098     {0x02a3,0x00},\r
2099     {0x02a4,0x3e},\r
2100     {0x02a5,0x00},\r
2101     {0x02a6,0x3e},\r
2102     {0x02a7,0x00},\r
2103     {0x02a8,0x3e},\r
2104     {0x02a9,0x00},\r
2105     {0x056c,0x42},\r
2106     {0x056d,0x00},\r
2107     {0x056e,0x42},\r
2108     {0x056f,0x00},\r
2109     {0x0570,0x42},\r
2110     {0x0571,0x00},\r
2111     {0x0572,0x42},\r
2112     {0x0573,0x00},\r
2113     {0x0081,0x55},  //6E->55\r
2114     {0x0588,0x00},\r
2115     {0x0589,0x5A},\r
2116     {0x058A,0xEE},\r
2117     {0x058B,0x69},\r
2118     {0x058C,0x49},\r
2119     {0x058D,0x3D},\r
2120     {0x058E,0x3D},\r
2121     {0x0080,0x6C},\r
2122     {0x0082,0x5A},\r
2123     {0x0010,0x01},\r
2124 \r
2125     SensorWaitMs(200),\r
2126 \r
2127     {0x4708,0x00},\r
2128     {0x4709,0x00},\r
2129     {0x4710,0x00},\r
2130     {0x4711,0x00},\r
2131     //AF intial setting\r
2132     {0x0659,0x01},//03-06 new af @ vcm\r
2133     {0x065A,0x00},\r
2134     {0x06C9,0x01},\r
2135     {0x06CD,0x01},\r
2136     {0x06CE,0xBD},\r
2137     {0x06CF,0x00},\r
2138     {0x06D0,0x93},\r
2139     {0x06D1,0x02},\r
2140     {0x06D2,0x30},\r
2141     {0x06D3,0xD4},\r
2142     {0x06D4,0x01},\r
2143     {0x06DB,0x59},\r
2144     {0x06DC,0x0d},\r
2145     {0x0730,0x00},\r
2146     {0x0731,0x00},\r
2147     {0x0732,0x03},\r
2148     {0x0733,0xFF},\r
2149     {0x0734,0x03},\r
2150     {0x0735,0x70},\r
2151     {0x0755,0x01},\r
2152     {0x0756,0x00},\r
2153     {0x075A,0x00},\r
2154     {0x075B,0x01},\r
2155     {0x075E,0x00},\r
2156     {0x0764,0x01},\r
2157     {0x0766,0x01},\r
2158     {0x0768,0x01},\r
2159     {0x076A,0x00},\r
2160     {0x0758,0x01},\r
2161     {0x075C,0x01},\r
2162     {0x0770,0x98},\r
2163     {0x0771,0x19},\r
2164     {0x0772,0x1B},\r
2165     {0x0774,0x01},\r
2166     {0x0775,0x4a},\r
2167     {0x0777,0x00},\r
2168     {0x0778,0x45},\r
2169     {0x0779,0x00},\r
2170     {0x077A,0x02},\r
2171     {0x077D,0x01},\r
2172     {0x077E,0x03},\r
2173     {0x0783,0x10},\r
2174     {0x0785,0x14},\r
2175     {0x0788,0x04},\r
2176     {0x0846,0x06},\r
2177     {0x0847,0x05},\r
2178     {0xC41A,0x05},\r
2179     {0xC423,0x11},\r
2180     {0xC427,0x11},\r
2181     {0x300B,0x09},\r
2182 \r
2183     {0x7000,0x08}, \r
2184     {0x5200,0x09}, \r
2185     {0x00B2,0x50}, \r
2186     {0x00B3,0x80}, \r
2187     {0x00B5,0x01}, \r
2188     {0x0030,0x14}, \r
2189     {0x0040,0x01}, //AB2\r
2190     {0x0041,0x03}, //SVGA mode\r
2191 \r
2192     {0x0010,0x01},\r
2193     SensorWaitMs(200),\r
2194     SensorEnd\r
2195 };\r
2196 /* Senor full resolution setting: recommand for capture */\r
2197 static struct rk_sensor_reg sensor_fullres_lowfps_data[] ={\r
2198 \r
2199     {0x7000,0x08},\r
2200     {0x5200,0x09},\r
2201     {0x0040,0x00},\r
2202     {0x0041,0x00},\r
2203     {0x0010,0x01},\r
2204         SensorEnd\r
2205 };\r
2206 /* Senor full resolution setting: recommand for video */\r
2207 static struct rk_sensor_reg sensor_fullres_highfps_data[] ={\r
2208         SensorEnd\r
2209 };\r
2210 /* Preview resolution setting*/\r
2211 static struct rk_sensor_reg sensor_preview_data[] =\r
2212 {\r
2213         {0x0040,0x01},\r
2214     {0x0041,0x03},\r
2215 \r
2216     {0x00ed,0x0A},\r
2217     {0x00ee,0x1E},\r
2218 \r
2219         SensorEnd\r
2220 };\r
2221 /* 1280x720 */\r
2222 static struct rk_sensor_reg sensor_720p[]={\r
2223         SensorEnd\r
2224 };\r
2225 \r
2226 /* 1920x1080 */\r
2227 static struct rk_sensor_reg sensor_1080p[]={\r
2228         SensorEnd\r
2229 };\r
2230 \r
2231 \r
2232 static struct rk_sensor_reg sensor_softreset_data[]={\r
2233         SensorEnd\r
2234 };\r
2235 \r
2236 static struct rk_sensor_reg sensor_check_id_data[]={\r
2237         SensorRegVal(0x0000,0),\r
2238         SensorRegVal(0x0001,0),\r
2239         SensorEnd\r
2240 };\r
2241 /*\r
2242 *  The following setting must been filled, if the function is turn on by CONFIG_SENSOR_xxxx\r
2243 */\r
2244 static struct rk_sensor_reg sensor_WhiteB_Auto[]=\r
2245 {\r
2246         {0x01A0,0x01},\r
2247         SensorEnd\r
2248 };\r
2249 /* Cloudy Colour Temperature : 6500K - 8000K  */\r
2250 static  struct rk_sensor_reg sensor_WhiteB_Cloudy[]=\r
2251 {\r
2252         {0x01A0,0x04},\r
2253         SensorEnd\r
2254 };\r
2255 /* ClearDay Colour Temperature : 5000K - 6500K  */\r
2256 static  struct rk_sensor_reg sensor_WhiteB_ClearDay[]=\r
2257 {\r
2258         {0x01A0,0x05},\r
2259         SensorEnd\r
2260 };\r
2261 /* Office Colour Temperature : 3500K - 5000K  */\r
2262 static  struct rk_sensor_reg sensor_WhiteB_TungstenLamp1[]=\r
2263 {\r
2264         {0x01A0,0x07},\r
2265         SensorEnd\r
2266 \r
2267 };\r
2268 /* Home Colour Temperature : 2500K - 3500K      */\r
2269 static  struct rk_sensor_reg sensor_WhiteB_TungstenLamp2[]=\r
2270 {\r
2271         {0x01A0,0x08},\r
2272         SensorEnd\r
2273 };\r
2274 static struct rk_sensor_reg *sensor_WhiteBalanceSeqe[] = {sensor_WhiteB_Auto, sensor_WhiteB_TungstenLamp1,sensor_WhiteB_TungstenLamp2,\r
2275         sensor_WhiteB_ClearDay, sensor_WhiteB_Cloudy,NULL,\r
2276 };\r
2277 \r
2278 static  struct rk_sensor_reg sensor_Brightness0[]=\r
2279 {\r
2280         // Brightness -2\r
2281         SensorEnd\r
2282 };\r
2283 \r
2284 static  struct rk_sensor_reg sensor_Brightness1[]=\r
2285 {\r
2286         // Brightness -1\r
2287 \r
2288         SensorEnd\r
2289 };\r
2290 \r
2291 static  struct rk_sensor_reg sensor_Brightness2[]=\r
2292 {\r
2293         //      Brightness 0\r
2294 \r
2295         SensorEnd\r
2296 };\r
2297 \r
2298 static  struct rk_sensor_reg sensor_Brightness3[]=\r
2299 {\r
2300         // Brightness +1\r
2301 \r
2302         SensorEnd\r
2303 };\r
2304 \r
2305 static  struct rk_sensor_reg sensor_Brightness4[]=\r
2306 {\r
2307         //      Brightness +2\r
2308 \r
2309         SensorEnd\r
2310 };\r
2311 \r
2312 static  struct rk_sensor_reg sensor_Brightness5[]=\r
2313 {\r
2314         //      Brightness +3\r
2315 \r
2316         SensorEnd\r
2317 };\r
2318 static struct rk_sensor_reg *sensor_BrightnessSeqe[] = {sensor_Brightness0, sensor_Brightness1, sensor_Brightness2, sensor_Brightness3,\r
2319         sensor_Brightness4, sensor_Brightness5,NULL,\r
2320 };\r
2321 \r
2322 static  struct rk_sensor_reg sensor_Effect_Normal[] =\r
2323 {\r
2324         {0x0380,0x0},\r
2325         {0x0381,0x0},
2326         {0x0382,0x0},
2327         {0x0384,0x0},\r
2328         SensorEnd\r
2329 };\r
2330 \r
2331 static  struct rk_sensor_reg sensor_Effect_WandB[] =\r
2332 {\r
2333         {0x0380,0x0},\r
2334         {0x0381,0x0},
2335         {0x0382,0x0},
2336         {0x0384,0x5},\r
2337         SensorEnd\r
2338 };\r
2339 \r
2340 static  struct rk_sensor_reg sensor_Effect_Sepia[] =\r
2341 {\r
2342         {0x0380,0x0},\r
2343         {0x0381,0x0},
2344         {0x0382,0x0},
2345         {0x0384,0x6},\r
2346         SensorEnd\r
2347 };\r
2348 \r
2349 static  struct rk_sensor_reg sensor_Effect_Negative[] =\r
2350 {\r
2351         //Negative\r
2352         {0x0380,0x0},\r
2353         {0x0381,0x0},
2354         {0x0382,0x0},
2355         {0x0384,0x8},\r
2356         SensorEnd\r
2357 };\r
2358 static  struct rk_sensor_reg sensor_Effect_Bluish[] =\r
2359 {\r
2360         // Bluish\r
2361         {0x0380,0x0},\r
2362         {0x0381,0x0},
2363         {0x0382,0x0},
2364         {0x0384,0x4},\r
2365         SensorEnd\r
2366 };\r
2367 \r
2368 static  struct rk_sensor_reg sensor_Effect_Green[] =\r
2369 {\r
2370         //      Greenish\r
2371         {0x0380,0x0},\r
2372         {0x0381,0x0},
2373         {0x0382,0x0},
2374         {0x0384,0x3},\r
2375         SensorEnd\r
2376 };\r
2377 static struct rk_sensor_reg *sensor_EffectSeqe[] = {sensor_Effect_Normal, sensor_Effect_WandB, sensor_Effect_Negative,sensor_Effect_Sepia,\r
2378         sensor_Effect_Bluish, sensor_Effect_Green,NULL,\r
2379 };\r
2380 \r
2381 static  struct rk_sensor_reg sensor_Exposure0[]=\r
2382 {\r
2383         SensorEnd\r
2384 };\r
2385 \r
2386 static  struct rk_sensor_reg sensor_Exposure1[]=\r
2387 {\r
2388         SensorEnd\r
2389 };\r
2390 \r
2391 static  struct rk_sensor_reg sensor_Exposure2[]=\r
2392 {\r
2393         SensorEnd\r
2394 };\r
2395 \r
2396 static  struct rk_sensor_reg sensor_Exposure3[]=\r
2397 {\r
2398         SensorEnd\r
2399 };\r
2400 \r
2401 static  struct rk_sensor_reg sensor_Exposure4[]=\r
2402 {\r
2403         SensorEnd\r
2404 };\r
2405 \r
2406 static  struct rk_sensor_reg sensor_Exposure5[]=\r
2407 {\r
2408         SensorEnd\r
2409 };\r
2410 \r
2411 static  struct rk_sensor_reg sensor_Exposure6[]=\r
2412 {\r
2413         SensorEnd\r
2414 };\r
2415 \r
2416 static struct rk_sensor_reg *sensor_ExposureSeqe[] = {sensor_Exposure0, sensor_Exposure1, sensor_Exposure2, sensor_Exposure3,\r
2417         sensor_Exposure4, sensor_Exposure5,sensor_Exposure6,NULL,\r
2418 };\r
2419 \r
2420 static  struct rk_sensor_reg sensor_Saturation0[]=\r
2421 {\r
2422         SensorEnd\r
2423 };\r
2424 \r
2425 static  struct rk_sensor_reg sensor_Saturation1[]=\r
2426 {\r
2427         SensorEnd\r
2428 };\r
2429 \r
2430 static  struct rk_sensor_reg sensor_Saturation2[]=\r
2431 {\r
2432         SensorEnd\r
2433 };\r
2434 static struct rk_sensor_reg *sensor_SaturationSeqe[] = {sensor_Saturation0, sensor_Saturation1, sensor_Saturation2, NULL,};\r
2435 \r
2436 static  struct rk_sensor_reg sensor_Contrast0[]=\r
2437 {\r
2438         SensorEnd\r
2439 };\r
2440 \r
2441 static  struct rk_sensor_reg sensor_Contrast1[]=\r
2442 {\r
2443         SensorEnd\r
2444 };\r
2445 \r
2446 static  struct rk_sensor_reg sensor_Contrast2[]=\r
2447 {\r
2448         SensorEnd\r
2449 };\r
2450 \r
2451 static  struct rk_sensor_reg sensor_Contrast3[]=\r
2452 {\r
2453         SensorEnd\r
2454 };\r
2455 \r
2456 static  struct rk_sensor_reg sensor_Contrast4[]=\r
2457 {\r
2458         SensorEnd\r
2459 };\r
2460 \r
2461 \r
2462 static  struct rk_sensor_reg sensor_Contrast5[]=\r
2463 {\r
2464         SensorEnd\r
2465 };\r
2466 \r
2467 static  struct rk_sensor_reg sensor_Contrast6[]=\r
2468 {\r
2469         SensorEnd\r
2470 };\r
2471 static struct rk_sensor_reg *sensor_ContrastSeqe[] = {sensor_Contrast0, sensor_Contrast1, sensor_Contrast2, sensor_Contrast3,\r
2472         sensor_Contrast4, sensor_Contrast5, sensor_Contrast6, NULL,\r
2473 };\r
2474 static  struct rk_sensor_reg sensor_SceneAuto[] =\r
2475 {\r
2476         {0x3a00, 0x78},\r
2477         SensorEnd\r
2478 };\r
2479 \r
2480 static  struct rk_sensor_reg sensor_SceneNight[] =\r
2481 {\r
2482         SensorEnd\r
2483 };\r
2484 static struct rk_sensor_reg *sensor_SceneSeqe[] = {sensor_SceneAuto, sensor_SceneNight,NULL,};\r
2485 \r
2486 static struct rk_sensor_reg sensor_Zoom0[] =\r
2487 {\r
2488         SensorEnd\r
2489 };\r
2490 \r
2491 static struct rk_sensor_reg sensor_Zoom1[] =\r
2492 {\r
2493         SensorEnd\r
2494 };\r
2495 \r
2496 static struct rk_sensor_reg sensor_Zoom2[] =\r
2497 {\r
2498         SensorEnd\r
2499 };\r
2500 \r
2501 \r
2502 static struct rk_sensor_reg sensor_Zoom3[] =\r
2503 {\r
2504         SensorEnd\r
2505 };\r
2506 static struct rk_sensor_reg *sensor_ZoomSeqe[] = {sensor_Zoom0, sensor_Zoom1, sensor_Zoom2, sensor_Zoom3, NULL,};\r
2507 \r
2508 /*\r
2509 * User could be add v4l2_querymenu in sensor_controls by new_usr_v4l2menu\r
2510 */\r
2511 static struct v4l2_querymenu sensor_menus[] =\r
2512 {\r
2513 };\r
2514 /*\r
2515 * User could be add v4l2_queryctrl in sensor_controls by new_user_v4l2ctrl\r
2516 */\r
2517 static struct sensor_v4l2ctrl_usr_s sensor_controls[] =\r
2518 {\r
2519 };\r
2520 \r
2521 //MUST define the current used format as the first item   \r
2522 static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
2523         {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
2524 };\r
2525 static struct soc_camera_ops sensor_ops;\r
2526 \r
2527 \r
2528 /*\r
2529 **********************************************************\r
2530 * Following is local code:\r
2531\r
2532 * Please codeing your program here \r
2533 **********************************************************\r
2534 */\r
2535 \r
2536 \r
2537 /*\r
2538 **********************************************************\r
2539 * Following is callback\r
2540 * If necessary, you could coding these callback\r
2541 **********************************************************\r
2542 */\r
2543 \r
2544 /*\r
2545 * the function is called in open sensor  \r
2546 */\r
2547 static int sensor_activate_cb(struct i2c_client *client)\r
2548 {\r
2549         SENSOR_DG("%s",__FUNCTION__);\r
2550         return 0;\r
2551 }\r
2552 /*\r
2553 * the function is called in close sensor\r
2554 */\r
2555 static int sensor_deactivate_cb(struct i2c_client *client)\r
2556 {\r
2557     SENSOR_DG("%s",__FUNCTION__);\r
2558     return 0;\r
2559 }\r
2560 /*\r
2561 * the function is called before sensor register setting in VIDIOC_S_FMT  \r
2562 */\r
2563 static int sensor_s_fmt_cb_th(struct i2c_client *client,struct v4l2_mbus_framefmt *mf, bool capture)\r
2564 {\r
2565         //struct generic_sensor*sensor = to_generic_sensor(client);\r
2566         \r
2567         \r
2568         return 0;\r
2569 }\r
2570 static int sensor_softrest_usr_cb(struct i2c_client *client,struct rk_sensor_reg *series)\r
2571 {\r
2572         \r
2573         return 0;\r
2574 }\r
2575 static int sensor_check_id_usr_cb(struct i2c_client *client,struct rk_sensor_reg *series)\r
2576 {\r
2577         return 0;\r
2578 }\r
2579 \r
2580 /*\r
2581 * the function is called after sensor register setting finished in VIDIOC_S_FMT  \r
2582 */\r
2583 static int sensor_s_fmt_cb_bh (struct i2c_client *client,struct v4l2_mbus_framefmt *mf, bool capture)\r
2584 {\r
2585     struct soc_camera_device *icd = client->dev.platform_data;\r
2586         struct generic_sensor *gsensor = to_generic_sensor(client);\r
2587         \r
2588     if (capture) {\r
2589         generic_sensor_af_workqueue_set(icd, WqCmd_af_special_pos,0,true);\r
2590     } else {\r
2591         if (gsensor->sensor_focus.focus_mode == V4L2_CID_FOCUS_AUTO) {\r
2592             generic_sensor_af_workqueue_set(icd, WqCmd_af_close,0,false);\r
2593         } else if (gsensor->sensor_focus.focus_mode == V4L2_CID_FOCUS_CONTINUOUS) {\r
2594             generic_sensor_af_workqueue_set(icd,WqCmd_af_continues,0,false);    \r
2595         }\r
2596     }\r
2597         return 0;\r
2598 }\r
2599 static int sensor_try_fmt_cb_th(struct i2c_client *client,struct v4l2_mbus_framefmt *mf)\r
2600 {\r
2601     struct soc_camera_device *icd = client->dev.platform_data;\r
2602         struct generic_sensor *gsensor = to_generic_sensor(client);\r
2603     \r
2604     if (gsensor->sensor_focus.focus_mode == V4L2_CID_FOCUS_CONTINUOUS) {\r
2605         generic_sensor_af_workqueue_set(icd,WqCmd_af_continues_pause,0,true);    \r
2606     }\r
2607         return 0;\r
2608 }\r
2609 \r
2610 static int sensor_suspend(struct soc_camera_device *icd, pm_message_t pm_msg)\r
2611 {\r
2612         //struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));\r
2613                 \r
2614         if (pm_msg.event == PM_EVENT_SUSPEND) {\r
2615                 SENSOR_DG("Suspend");\r
2616                 \r
2617         } else {\r
2618                 SENSOR_TR("pm_msg.event(0x%x) != PM_EVENT_SUSPEND\n",pm_msg.event);\r
2619                 return -EINVAL;\r
2620         }\r
2621         return 0;\r
2622 }\r
2623 \r
2624 static int sensor_resume(struct soc_camera_device *icd)\r
2625 {\r
2626 \r
2627         SENSOR_DG("Resume");\r
2628 \r
2629         return 0;\r
2630 \r
2631 }\r
2632 static int sensor_mirror_cb (struct i2c_client *client, int mirror)\r
2633 {\r
2634         \r
2635         SENSOR_DG("mirror: %d",mirror);\r
2636 \r
2637         return 0;    \r
2638 }\r
2639 /*\r
2640 * the function is v4l2 control V4L2_CID_HFLIP callback  \r
2641 */\r
2642 static int sensor_v4l2ctrl_mirror_cb(struct soc_camera_device *icd, struct sensor_v4l2ctrl_info_s *ctrl_info, \r
2643                                                                                                          struct v4l2_ext_control *ext_ctrl)\r
2644 {\r
2645         struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));\r
2646 \r
2647         if (sensor_mirror_cb(client,ext_ctrl->value) != 0)\r
2648                 SENSOR_TR("sensor_mirror failed, value:0x%x",ext_ctrl->value);\r
2649         \r
2650         SENSOR_DG("sensor_mirror success, value:0x%x",ext_ctrl->value);\r
2651         return 0;\r
2652 }\r
2653 \r
2654 static int sensor_flip_cb(struct i2c_client *client, int flip)\r
2655 {\r
2656         SENSOR_DG("flip: %d",flip);\r
2657 \r
2658         return 0;    \r
2659 }\r
2660 /*\r
2661 * the function is v4l2 control V4L2_CID_VFLIP callback  \r
2662 */\r
2663 static int sensor_v4l2ctrl_flip_cb(struct soc_camera_device *icd, struct sensor_v4l2ctrl_info_s *ctrl_info, \r
2664                                                                                                          struct v4l2_ext_control *ext_ctrl)\r
2665 {\r
2666         struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));\r
2667 \r
2668         if (sensor_flip_cb(client,ext_ctrl->value) != 0)\r
2669                 SENSOR_TR("sensor_flip failed, value:0x%x",ext_ctrl->value);\r
2670         \r
2671         SENSOR_DG("sensor_flip success, value:0x%x",ext_ctrl->value);\r
2672         return 0;\r
2673 }\r
2674 /*\r
2675 * the functions are focus callbacks\r
2676 */\r
2677 static int sensor_focus_af_single_usr_cb(struct i2c_client *client);\r
2678 \r
2679 static int sensor_focus_init_usr_cb(struct i2c_client *client)\r
2680 {\r
2681     return 0;\r
2682 }\r
2683 \r
2684 static int sensor_focus_af_single_usr_cb(struct i2c_client *client) \r
2685 {\r
2686         int ret = 0;
2687         char state,cnt=0;\r
2688     struct generic_sensor *sensor = to_generic_sensor(client);\r
2689     struct specific_sensor *ssensor = to_specific_sensor(sensor);\r
2690     \r
2691         ret |= sensor_write(client,AF_MODES_REG,0x03);
2692     ret |= sensor_write(client,AF_AUTOCMDS_REG,0x01);
2693     msleep(200);
2694     ret |= sensor_write(client,AF_AUTOCMDS_REG,0x02);
2695
2696     do  {
2697         msleep(20);
2698         sensor_read(client,AF_FINISHCHK_REG,&state);
2699         cnt++;
2700     }while ((state != 1) && (cnt<100));
2701
2702     if (state == 1) {
2703         sensor_read(client, AF_LENSPOS_REG_H,(char*)&ssensor->parameter.af_pos[0]);\r
2704         sensor_read(client, AF_LENSPOS_REG_L,(char*)&ssensor->parameter.af_pos[1]);\r
2705     }
2706
2707     SENSOR_DG("single focus, state: %d cnt: %d",state,cnt);\r
2708     \r
2709 //sensor_af_single_end:\r
2710         return ret;\r
2711 }\r
2712 \r
2713 static int sensor_focus_af_near_usr_cb(struct i2c_client *client)\r
2714 {\r
2715         return 0;\r
2716 }\r
2717 \r
2718 static int sensor_focus_af_far_usr_cb(struct i2c_client *client)\r
2719 {\r
2720         \r
2721         return 0;\r
2722 }\r
2723 \r
2724 static int sensor_focus_af_specialpos_usr_cb(struct i2c_client *client,int pos)\r
2725 {\r
2726     struct generic_sensor *sensor = to_generic_sensor(client);\r
2727     struct specific_sensor *ssensor = to_specific_sensor(sensor);\r
2728     \r
2729     sensor_write(client,0x070A, 0x00);\r
2730         sensor_write(client,0x0734, ssensor->parameter.af_pos[0]& 0xFF);\r
2731         sensor_write(client,0x0735, ssensor->parameter.af_pos[1] & 0xFF);\r
2732         sensor_write(client,0x070C, 0x00);
2733         mdelay(100);
2734     sensor_write(client,0x070C, 0x05);\r
2735 \r
2736         return 0;\r
2737 }\r
2738 \r
2739 static int sensor_focus_af_const_usr_cb(struct i2c_client *client)\r
2740 {\r
2741     int ret;\r
2742     \r
2743     ret = sensor_write(client, AF_MODES_REG, 0x01);\r
2744 //sensor_af_const_end:\r
2745         return ret;\r
2746 }\r
2747 static int sensor_focus_af_const_pause_usr_cb(struct i2c_client *client)\r
2748 {\r
2749     int ret = 0;\r
2750     char status = 0;\r
2751     struct generic_sensor *sensor = to_generic_sensor(client);\r
2752     struct specific_sensor *ssensor = to_specific_sensor(sensor);\r
2753     \r
2754     sensor_read(client, 0x07ae, &status);\r
2755
2756     if (status == 1) {
2757         sensor_read(client, AF_LENSPOS_REG_H,(char*)&ssensor->parameter.af_pos[0]);\r
2758         sensor_read(client, AF_LENSPOS_REG_L,(char*)&ssensor->parameter.af_pos[1]);\r
2759     } else {
2760         sensor_focus_af_single_usr_cb(client);\r
2761     }\r
2762     \r
2763         return ret;\r
2764 }\r
2765 static int sensor_focus_af_close_usr_cb(struct i2c_client *client)\r
2766 {\r
2767     int ret =0;\r
2768     \r
2769     ret |= sensor_write(client,0x070A, 0x00);\r
2770     ret |= sensor_write(client,0x0700, 0x03);\r
2771     ret |= sensor_write(client,0x0701, 0xFF);   \r
2772     ret |= sensor_write(client,0x070C, 0x00);\r
2773     ret |= sensor_write(client,0x070C, 0x07);\r
2774     SENSOR_DG("%s",__FUNCTION__);\r
2775         return ret;\r
2776 }\r
2777 \r
2778 static int sensor_focus_af_zoneupdate_usr_cb(struct i2c_client *client, int *zone_tm_pos)\r
2779 {\r
2780     int ret = 0;\r
2781     int xstart,ystart;\r
2782     \r
2783     *zone_tm_pos += 1000;\r
2784     *(zone_tm_pos+1) += 1000;\r
2785     *(zone_tm_pos+2) += 1000;\r
2786     *(zone_tm_pos+3) += 1000;\r
2787
2788     xstart = ((*zone_tm_pos + *(zone_tm_pos+2))>>1)*800/2000;\r
2789     ystart = ((*(zone_tm_pos+1) + *(zone_tm_pos+3))>>1)*600/2000;\r
2790 \r
2791     if (xstart>0xa0) {\r
2792         xstart -= 0xa0;\r
2793     } else {\r
2794         xstart = 0;\r
2795     }\r
2796 \r
2797     if (ystart>0xa0) {\r
2798         ystart -= 0xa0;\r
2799     } else {\r
2800         ystart = 0;\r
2801     }\r
2802     
2803     ret |= sensor_write(client, AF_ZONE0_WEIGHT,0x01);\r
2804     ret |= sensor_write(client, AF_ZONE1_WEIGHT,0x00); 
2805     ret |= sensor_write(client, AF_ZONE2_WEIGHT,0x00);
2806     ret |= sensor_write(client, AF_ZONE3_WEIGHT,0x00);  
2807     ret |= sensor_write(client, AF_ZONE4_WEIGHT,0x00);    
2808     ret |= sensor_write(client, AF_ZONE5_WEIGHT,0x00);
2809     ret |= sensor_write(client, AF_ZONE6_WEIGHT,0x00);    
2810     ret |= sensor_write(client, FACE_LC,0x03); 
2811
2812     ret |= sensor_write(client, FACE_START_XH, ((xstart&0xff00)>>8));\r
2813     ret |= sensor_write(client, FACE_START_XL, xstart&0xff);\r
2814     ret |= sensor_write(client, FACE_START_YH, ((ystart&0xff00)>>8));\r
2815     ret |= sensor_write(client, FACE_START_YL, ystart&0xff);    \r
2816
2817     ret |= sensor_write(client, FACE_SIZE_XH, 0x01);
2818         ret |= sensor_write(client, FACE_SIZE_XL, 0x40);
2819         ret |= sensor_write(client, FACE_SIZE_YH, 0x01);
2820         ret |= sensor_write(client, FACE_SIZE_YL, 0x40);\r
2821 //sensor_af_zone_end:\r
2822         return ret;\r
2823 }\r
2824 \r
2825 /*\r
2826 face defect call back\r
2827 */\r
2828 static int      sensor_face_detect_usr_cb(struct i2c_client *client,int on){\r
2829         return 0;\r
2830 }\r
2831 \r
2832 /*\r
2833 *       The function can been run in sensor_init_parametres which run in sensor_probe, so user can do some\r
2834 * initialization in the function. \r
2835 */\r
2836 static void sensor_init_parameters_user(struct specific_sensor* spsensor,struct soc_camera_device *icd)\r
2837 {\r
2838         return;\r
2839 }\r
2840 \r
2841 /*\r
2842 * :::::WARNING:::::\r
2843 * It is not allowed to modify the following code\r
2844 */\r
2845 \r
2846 sensor_init_parameters_default_code();\r
2847 \r
2848 sensor_v4l2_struct_initialization();\r
2849 \r
2850 sensor_probe_default_code();\r
2851 \r
2852 sensor_remove_default_code();\r
2853 \r
2854 sensor_driver_default_module_code();\r
2855 \r
2856  \r
2857 \r
2858 \r