rk312x camera : oneframe v0.1.9,pingpong v0.1.9
[firefly-linux-kernel-4.4.55.git] / drivers / media / video / mt9p111.c
1
2 #include "generic_sensor.h"
3 /*
4 *      Driver Version Note
5 *v0.0.1: this driver is compatible with generic_sensor
6 *v0.1.1:
7 *        add sensor_focus_af_const_pause_usr_cb;
8 */
9 static int version = KERNEL_VERSION(0,1,1);
10 module_param(version, int, S_IRUGO);
11
12 static int debug;
13 module_param(debug, int, S_IRUGO|S_IWUSR);
14
15 #define dprintk(level, fmt, arg...) do {                        \
16         if (debug >= level)                                     \
17         printk(KERN_WARNING fmt , ## arg); } while (0)
18
19 /* Sensor Driver Configuration Begin */
20 #define SENSOR_NAME RK29_CAM_SENSOR_MT9P111
21 #define SENSOR_V4L2_IDENT V4L2_IDENT_MT9P111
22 #define SENSOR_ID 0x00
23 #define SENSOR_BUS_PARAM                     (V4L2_MBUS_MASTER |\
24                                                                                                                                  V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\
25                                                                                                                                  V4L2_MBUS_DATA_ACTIVE_HIGH  |SOCAM_MCLK_24MHZ)
26 #define SENSOR_PREVIEW_W                     576
27 #define SENSOR_PREVIEW_H                     432
28 #define SENSOR_PREVIEW_FPS                   15000     // 15fps 
29 #define SENSOR_FULLRES_L_FPS                 7500      // 7.5fps
30 #define SENSOR_FULLRES_H_FPS                 7500      // 7.5fps
31 #define SENSOR_720P_FPS                      30000
32 #define SENSOR_1080P_FPS                     0
33
34 #define SENSOR_REGISTER_LEN                  0         // sensor register address bytes
35 #define SENSOR_VALUE_LEN                     0         // sensor register value bytes
36                                     
37 static unsigned int SensorConfiguration = CFG_Focus|CFG_FocusZone;
38 static unsigned int SensorChipID[] = {SENSOR_ID};
39 /* Sensor Driver Configuration End */
40
41
42 #define SENSOR_NAME_STRING(a) STR(CONS(SENSOR_NAME, a))
43 #define SENSOR_NAME_VARFUN(a) CONS(SENSOR_NAME, a)
44
45 #define SensorRegVal(a,b) CONS4(SensorReg,SENSOR_REGISTER_LEN,Val,SENSOR_VALUE_LEN)(a,b)
46 #define sensor_write(client,reg,v) CONS4(sensor_write_reg,SENSOR_REGISTER_LEN,val,SENSOR_VALUE_LEN)(client,(reg),(v))
47 #define sensor_read(client,reg,v) CONS4(sensor_read_reg,SENSOR_REGISTER_LEN,val,SENSOR_VALUE_LEN)(client,(reg),(v))
48 #define sensor_write_array generic_sensor_write_array
49
50 struct sensor_parameter
51 {
52
53 };
54
55 struct specific_sensor{
56         struct generic_sensor common_sensor;
57         //define user data below
58         struct sensor_parameter parameter;
59
60 };
61
62 /*
63 *  The follow setting need been filled.
64 *  
65 *  Must Filled:
66 *  sensor_init_data :               Sensor initial setting;
67 *  sensor_fullres_lowfps_data :     Sensor full resolution setting with best auality, recommand for video;
68 *  sensor_preview_data :            Sensor preview resolution setting, recommand it is vga or svga;
69 *  sensor_softreset_data :          Sensor software reset register;
70 *  sensor_check_id_data :           Sensir chip id register;
71 *
72 *  Optional filled:
73 *  sensor_fullres_highfps_data:     Sensor full resolution setting with high framerate, recommand for video;
74 *  sensor_720p:                     Sensor 720p setting, it is for video;
75 *  sensor_1080p:                    Sensor 1080p setting, it is for video;
76 *
77 *  :::::WARNING:::::
78 *  The SensorEnd which is the setting end flag must be filled int the last of each setting;
79 */
80
81 /* Sensor initial setting */
82 static struct rk_sensor_reg sensor_init_data[] = {     
83 { 0x0010, 0x0340, 0xffff,0xffff },           
84
85
86 { 0x0010, 0x0340, 0xffff,0xffff },      // PLL_DIVIDERS
87 { 0x0012, 0x0080, 0xffff,0xffff },      // PLL_P_DIVIDERS
88 { 0x0014, 0x2025, 0xffff,0xffff },      // PLL_CONTROL
89 { 0x001E, 0x0565, 0xffff,0xffff },      // PAD_SLEW_PAD_CONFIG
90 { 0x0022, 0x0030, 0xffff,0xffff },      // VDD_DIS_COUNTER
91 { 0x002A, 0x7FFF, 0xffff,0xffff },      // PLL_P4_P5_P6_DIVIDERS
92 { 0x002C, 0x0000, 0xffff,0xffff },      // PLL_P7_DIVIDER
93 { 0x002E, 0x0000, 0xffff,0xffff },      // SENSOR_CLOCK_DIVIDER
94 { 0x0018, 0x400c, 0xffff,0xffff },      // STANDBY_CONTROL_AND_STATUS
95 //delay = 100
96 SensorWaitMs(300),
97 { 0x098E, 0x483A, 0xffff,0xffff },      // LOGICAL_ADDRESS_ACCESS
98 { 0xC83A, 0x000C, 0xffff,0xffff },      // CAM_CORE_A_Y_ADDR_START
99 { 0xC83C, 0x0018, 0xffff,0xffff },      // CAM_CORE_A_X_ADDR_START
100 { 0xC83E, 0x07B1, 0xffff,0xffff },      // CAM_CORE_A_Y_ADDR_END
101 { 0xC840, 0x0A45, 0xffff,0xffff },      // CAM_CORE_A_X_ADDR_END
102 { 0xC842, 0x0001, 0xffff,0xffff },      // CAM_CORE_A_ROW_SPEED
103 { 0xC844, 0x0103, 0xffff,0xffff },      // CAM_CORE_A_SKIP_X_CORE
104 { 0xC846, 0x0103, 0xffff,0xffff },      // CAM_CORE_A_SKIP_Y_CORE
105 { 0xC848, 0x0103, 0xffff,0xffff },      // CAM_CORE_A_SKIP_X_PIPE
106 { 0xC84A, 0x0103, 0xffff,0xffff },      // CAM_CORE_A_SKIP_Y_PIPE
107 { 0xC84C, 0x00F6, 0xffff,0xffff },      // CAM_CORE_A_POWER_MODE
108 { 0xC84E, 0x0001, 0xffff,0xffff },      // CAM_CORE_A_BIN_MODE
109 { 0xC850, 0x00, 0xffff,0xff},   // CAM_CORE_A_ORIENTATION
110 { 0xC851, 0x00, 0xffff,0xff},   // CAM_CORE_A_PIXEL_ORDER
111 { 0xC852, 0x019C, 0xffff,0xffff },      // CAM_CORE_A_FINE_CORRECTION
112 { 0xC854, 0x0732, 0xffff,0xffff },      // CAM_CORE_A_FINE_ITMIN
113 { 0xC858, 0x0000, 0xffff,0xffff },      // CAM_CORE_A_COARSE_ITMIN
114 { 0xC85A, 0x0001, 0xffff,0xffff },      // CAM_CORE_A_COARSE_ITMAX_MARGIN
115 { 0xC85C, 0x0423, 0xffff,0xffff },      // CAM_CORE_A_MIN_FRAME_LENGTH_LINES
116 { 0xC85E, 0xFFFF, 0xffff,0xffff },      // CAM_CORE_A_MAX_FRAME_LENGTH_LINES
117 { 0xC860, 0x0423, 0xffff,0xffff },      // CAM_CORE_A_BASE_FRAME_LENGTH_LINES
118 { 0xC862, 0x1194, 0xffff,0xffff },      // CAM_CORE_A_MIN_LINE_LENGTH_PCLK
119 { 0xC864, 0xFFFE, 0xffff,0xffff },      // CAM_CORE_A_MAX_LINE_LENGTH_PCLK
120 { 0xC866, 0x7F7F, 0xffff,0xffff },      // CAM_CORE_A_P4_5_6_DIVIDER
121 { 0xC868, 0x0423, 0xffff,0xffff },      // CAM_CORE_A_FRAME_LENGTH_LINES
122 { 0xC86A, 0x1194, 0xffff,0xffff },      // CAM_CORE_A_LINE_LENGTH_PCK
123 { 0xC86C, 0x0518, 0xffff,0xffff },      // CAM_CORE_A_OUTPUT_SIZE_WIDTH
124 { 0xC86E, 0x03D4, 0xffff,0xffff },      // CAM_CORE_A_OUTPUT_SIZE_HEIGHT
125 { 0xC870, 0x0014, 0xffff,0xffff },      // CAM_CORE_A_RX_FIFO_TRIGGER_MARK
126 { 0xC858, 0x0003, 0xffff,0xffff },      // CAM_CORE_A_COARSE_ITMIN
127 { 0xC8B8, 0x0004, 0xffff,0xffff },      // CAM_OUTPUT_0_JPEG_CONTROL
128 { 0xC8AE, 0x0001, 0xffff,0xffff },      // CAM_OUTPUT_0_OUTPUT_FORMAT
129 { 0xC8AA, 0x0280, 0xffff,0xffff },      // CAM_OUTPUT_0_IMAGE_WIDTH
130 { 0xC8AC, 0x01E0, 0xffff,0xffff },      // CAM_OUTPUT_0_IMAGE_HEIGHT
131 { 0xC872, 0x0010, 0xffff,0xffff },      // CAM_CORE_B_Y_ADDR_START
132 { 0xC874, 0x001C, 0xffff,0xffff },      // CAM_CORE_B_X_ADDR_START
133 { 0xC876, 0x07AF, 0xffff,0xffff },      // CAM_CORE_B_Y_ADDR_END
134 { 0xC878, 0x0A43, 0xffff,0xffff },      // CAM_CORE_B_X_ADDR_END
135 { 0xC87A, 0x0001, 0xffff,0xffff },      // CAM_CORE_B_ROW_SPEED
136 { 0xC87C, 0x0101, 0xffff,0xffff },      // CAM_CORE_B_SKIP_X_CORE
137 { 0xC87E, 0x0101, 0xffff,0xffff },      // CAM_CORE_B_SKIP_Y_CORE
138 { 0xC880, 0x0101, 0xffff,0xffff },      // CAM_CORE_B_SKIP_X_PIPE
139 { 0xC882, 0x0101, 0xffff,0xffff },      // CAM_CORE_B_SKIP_Y_PIPE
140 { 0xC884, 0x00F2, 0xffff,0xffff },      // CAM_CORE_B_POWER_MODE
141 { 0xC886, 0x0000, 0xffff,0xffff },      // CAM_CORE_B_BIN_MODE
142 { 0xC888, 0x00, 0xffff,0xff},   // CAM_CORE_B_ORIENTATION
143 { 0xC889, 0x00, 0xffff,0xff},   // CAM_CORE_B_PIXEL_ORDER
144 { 0xC88A, 0x009C, 0xffff,0xffff },      // CAM_CORE_B_FINE_CORRECTION
145 { 0xC88C, 0x034A, 0xffff,0xffff },      // CAM_CORE_B_FINE_ITMIN
146 { 0xC890, 0x0000, 0xffff,0xffff },      // CAM_CORE_B_COARSE_ITMIN
147 { 0xC892, 0x0001, 0xffff,0xffff },      // CAM_CORE_B_COARSE_ITMAX_MARGIN
148 { 0xC894, 0x07EF, 0xffff,0xffff },      // CAM_CORE_B_MIN_FRAME_LENGTH_LINES
149 { 0xC896, 0xFFFF, 0xffff,0xffff },      // CAM_CORE_B_MAX_FRAME_LENGTH_LINES
150 { 0xC898, 0x082F, 0xffff,0xffff },      // CAM_CORE_B_BASE_FRAME_LENGTH_LINES
151 { 0xC89A, 0x1964, 0xffff,0xffff },      // CAM_CORE_B_MIN_LINE_LENGTH_PCLK
152 { 0xC89C, 0xFFFE, 0xffff,0xffff },      // CAM_CORE_B_MAX_LINE_LENGTH_PCLK
153 { 0xC89E, 0x7F7F, 0xffff,0xffff },      // CAM_CORE_B_P4_5_6_DIVIDER
154 { 0xC8A0, 0x07EF, 0xffff,0xffff },      // CAM_CORE_B_FRAME_LENGTH_LINES
155 { 0xC8A2, 0x1964, 0xffff,0xffff },      // CAM_CORE_B_LINE_LENGTH_PCK
156 { 0xC8A4, 0x0A28, 0xffff,0xffff },      // CAM_CORE_B_OUTPUT_SIZE_WIDTH
157 { 0xC8A6, 0x07A0, 0xffff,0xffff },      // CAM_CORE_B_OUTPUT_SIZE_HEIGHT
158 { 0xC8A8, 0x0124, 0xffff,0xffff },      // CAM_CORE_B_RX_FIFO_TRIGGER_MARK
159 { 0xC890, 0x0003, 0xffff,0xffff },      // CAM_CORE_B_COARSE_ITMIN
160 { 0xC8C0, 0x0A20, 0xffff,0xffff },      // CAM_OUTPUT_1_IMAGE_WIDTH
161 { 0xC8C2, 0x0798, 0xffff,0xffff },      // CAM_OUTPUT_1_IMAGE_HEIGHT
162 { 0xC89A, 0x1964, 0xffff,0xffff },      // CAM_CORE_B_MIN_LINE_LENGTH_PCLK
163 { 0xC8A2, 0x1964, 0xffff,0xffff },      // CAM_CORE_B_LINE_LENGTH_PCK
164 { 0xC8C4, 0x0001, 0xffff,0xffff },      // CAM_OUTPUT_1_OUTPUT_FORMAT
165 { 0xC8C6, 0x0000, 0xffff,0xffff },      // CAM_OUTPUT_1_OUTPUT_FORMAT_ORDER
166 { 0xC8CE, 0x0014, 0xffff,0xffff },      // CAM_OUTPUT_1_JPEG_CONTROL
167 { 0xD822, 0x4610, 0xffff,0xffff },      // JPEG_JPSS_CTRL_VAR
168 { 0x3330, 0x0000, 0xffff,0xffff },      // OUTPUT_FORMAT_TEST
169 { 0x098E, 0xA00E, 0xffff,0xffff },      // LOGICAL_ADDRESS_ACCESS
170 { 0xA00E, 0x32, 0xffff,0xff},   // FD_MAX_NUM_AUTOCOR_FUNC_VALUES_TO_CHECK
171 { 0xA010, 0x00CC, 0xffff,0xffff },      // FD_MIN_EXPECTED50HZ_FLICKER_PERIOD
172 { 0xA012, 0x00E0, 0xffff,0xffff },      // FD_MAX_EXPECTED50HZ_FLICKER_PERIOD
173 { 0xA014, 0x00A8, 0xffff,0xffff },      // FD_MIN_EXPECTED60HZ_FLICKER_PERIOD
174 { 0xA016, 0x00BC, 0xffff,0xffff },      // FD_MAX_EXPECTED60HZ_FLICKER_PERIOD
175 { 0xA018, 0x00D6, 0xffff,0xffff },      // FD_EXPECTED50HZ_FLICKER_PERIOD_IN_CONTEXT_A
176 { 0xA01A, 0x0075, 0xffff,0xffff },      // FD_EXPECTED50HZ_FLICKER_PERIOD_IN_CONTEXT_B
177 { 0xA01C, 0x00B2, 0xffff,0xffff },      // FD_EXPECTED60HZ_FLICKER_PERIOD_IN_CONTEXT_A
178 { 0xA01E, 0x0062, 0xffff,0xffff },      // FD_EXPECTED60HZ_FLICKER_PERIOD_IN_CONTEXT_B
179 { 0xA000, 0x10, 0xffff,0xff},   // FD_STATUS
180 { 0x8417, 0x02, 0xffff,0xff},   // SEQ_STATE_CFG_1_FD
181 //delay = 100
182 SensorWaitMs(100),
183
184 //[Step2-Fixups]                                  
185 // Default variable access mode is always logical.
186
187
188 { 0x098E, 0x0000, 0xffff,0xffff},       // LOGICAL_ADDRESS_ACCESS
189 { 0x301A, 0x0030, 0xffff,0xffff},       // RESET_REGISTER
190 { 0x316C, 0xB430, 0xffff,0xffff},       // DAC_TXLO
191 { 0x31E0, 0x0003, 0xffff,0xffff},       // PIX_DEF_ID
192 { 0x3E2E, 0xF319, 0xffff,0xffff},       // SAMP_SPARE
193 { 0x3EE6, 0xA7C1, 0xffff,0xffff},       // DAC_LD_26_27
194 { 0x301E, 0x00A8, 0xffff,0xffff},       // DATA_PEDESTAL
195 { 0xDC33, 0x2A, 0xffff,0xff},   // SYS_FIRST_BLACK_LEVEL
196 { 0x3812, 0x212C, 0xffff,0xffff},       // OTPM_CFG
197 { 0x0982, 0x0000, 0xffff,0xffff},       // ACCESS_CTL_STAT
198 { 0x098A, 0x0000, 0xffff,0xffff},       // PHYSICAL_ADDRESS_ACCESS
199 { 0x886C, 0xC0F1, 0xffff,0xffff},
200 { 0x886E, 0xC5E1, 0xffff,0xffff},
201 { 0x8870, 0x246A, 0xffff,0xffff},
202 { 0x8872, 0x1280, 0xffff,0xffff},
203 { 0x8874, 0xC4E1, 0xffff,0xffff},
204 { 0x8876, 0xD20F, 0xffff,0xffff},
205 { 0x8878, 0x2069, 0xffff,0xffff},
206 { 0x887A, 0x0000, 0xffff,0xffff},
207 { 0x887C, 0x6A62, 0xffff,0xffff},
208 { 0x887E, 0x1303, 0xffff,0xffff},
209 { 0x8880, 0x0084, 0xffff,0xffff},
210 { 0x8882, 0x1734, 0xffff,0xffff},
211 { 0x8884, 0x7005, 0xffff,0xffff},
212 { 0x8886, 0xD801, 0xffff,0xffff},
213 { 0x8888, 0x8A41, 0xffff,0xffff},
214 { 0x888A, 0xD900, 0xffff,0xffff},
215 { 0x888C, 0x0D5A, 0xffff,0xffff},
216 { 0x888E, 0x0664, 0xffff,0xffff},
217 { 0x8890, 0x8B61, 0xffff,0xffff},
218 { 0x8892, 0xE80B, 0xffff,0xffff},
219 { 0x8894, 0x000D, 0xffff,0xffff},
220 { 0x8896, 0x0020, 0xffff,0xffff},
221 { 0x8898, 0xD508, 0xffff,0xffff},
222 { 0x889A, 0x1504, 0xffff,0xffff},
223 { 0x889C, 0x1400, 0xffff,0xffff},
224 { 0x889E, 0x7840, 0xffff,0xffff},
225 { 0x88A0, 0xD007, 0xffff,0xffff},
226 { 0x88A2, 0x0DFB, 0xffff,0xffff},
227 { 0x88A4, 0x9004, 0xffff,0xffff},
228 { 0x88A6, 0xC4C1, 0xffff,0xffff},
229 { 0x88A8, 0x2029, 0xffff,0xffff},
230 { 0x88AA, 0x0300, 0xffff,0xffff},
231 { 0x88AC, 0x0219, 0xffff,0xffff},
232 { 0x88AE, 0x06C4, 0xffff,0xffff},
233 { 0x88B0, 0xFF80, 0xffff,0xffff},
234 { 0x88B2, 0x08D4, 0xffff,0xffff},
235 { 0x88B4, 0xFF80, 0xffff,0xffff},
236 { 0x88B6, 0x086C, 0xffff,0xffff},
237 { 0x88B8, 0xFF80, 0xffff,0xffff},
238 { 0x88BA, 0x08C0, 0xffff,0xffff},
239 { 0x88BC, 0xFF80, 0xffff,0xffff},
240 { 0x88BE, 0x08D4, 0xffff,0xffff},
241 { 0x88C0, 0xFF80, 0xffff,0xffff},
242 { 0x88C2, 0x08DC, 0xffff,0xffff},
243 { 0x88C4, 0xFF80, 0xffff,0xffff},
244 { 0x88C6, 0x0F58, 0xffff,0xffff},
245 { 0x88C8, 0xFF80, 0xffff,0xffff},
246 { 0x88CA, 0x0920, 0xffff,0xffff},
247 { 0x88CC, 0xFF80, 0xffff,0xffff},
248 { 0x88CE, 0x1010, 0xffff,0xffff},
249 { 0x88D0, 0xFF80, 0xffff,0xffff},
250 { 0x88D2, 0x1030, 0xffff,0xffff},
251 { 0x88D4, 0x0010, 0xffff,0xffff},
252 { 0x88D6, 0x0008, 0xffff,0xffff},
253 { 0x88D8, 0x0000, 0xffff,0xffff},
254 { 0x88DA, 0x0000, 0xffff,0xffff},
255 { 0x88DC, 0xD102, 0xffff,0xffff},
256 { 0x88DE, 0xD003, 0xffff,0xffff},
257 { 0x88E0, 0x7FE0, 0xffff,0xffff},
258 { 0x88E2, 0xB035, 0xffff,0xffff},
259 { 0x88E4, 0xFF80, 0xffff,0xffff},
260 { 0x88E6, 0x10C8, 0xffff,0xffff},
261 { 0x88E8, 0xFF80, 0xffff,0xffff},
262 { 0x88EA, 0x0118, 0xffff,0xffff},
263 { 0x88EC, 0xC0F1, 0xffff,0xffff},
264 { 0x88EE, 0xC5E1, 0xffff,0xffff},
265 { 0x88F0, 0xD5EC, 0xffff,0xffff},
266 { 0x88F2, 0x8D04, 0xffff,0xffff},
267 { 0x88F4, 0x8D25, 0xffff,0xffff},
268 { 0x88F6, 0xB808, 0xffff,0xffff},
269 { 0x88F8, 0x7825, 0xffff,0xffff},
270 { 0x88FA, 0x0821, 0xffff,0xffff},
271 { 0x88FC, 0x01DE, 0xffff,0xffff},
272 { 0x88FE, 0xD0EA, 0xffff,0xffff},
273 { 0x8900, 0x8000, 0xffff,0xffff},
274 { 0x8902, 0x8008, 0xffff,0xffff},
275 { 0x8904, 0x7840, 0xffff,0xffff},
276 { 0x8906, 0x8D04, 0xffff,0xffff},
277 { 0x8908, 0x8D25, 0xffff,0xffff},
278 { 0x890A, 0xB808, 0xffff,0xffff},
279 { 0x890C, 0x7825, 0xffff,0xffff},
280 { 0x890E, 0xB8A7, 0xffff,0xffff},
281 { 0x8910, 0x2841, 0xffff,0xffff},
282 { 0x8912, 0x0201, 0xffff,0xffff},
283 { 0x8914, 0xAD24, 0xffff,0xffff},
284 { 0x8916, 0xAD05, 0xffff,0xffff},
285 { 0x8918, 0x09A6, 0xffff,0xffff},
286 { 0x891A, 0x0104, 0xffff,0xffff},
287 { 0x891C, 0x01A9, 0xffff,0xffff},
288 { 0x891E, 0x06C4, 0xffff,0xffff},
289 { 0x8920, 0xC0F1, 0xffff,0xffff},
290 { 0x8922, 0x0932, 0xffff,0xffff},
291 { 0x8924, 0x06E4, 0xffff,0xffff},
292 { 0x8926, 0xDA38, 0xffff,0xffff},
293 { 0x8928, 0xD1E0, 0xffff,0xffff},
294 { 0x892A, 0xD5E1, 0xffff,0xffff},
295 { 0x892C, 0x76A9, 0xffff,0xffff},
296 { 0x892E, 0x0EC6, 0xffff,0xffff},
297 { 0x8930, 0x06A4, 0xffff,0xffff},
298 { 0x8932, 0x70C9, 0xffff,0xffff},
299 { 0x8934, 0xD0DF, 0xffff,0xffff},
300 { 0x8936, 0xA501, 0xffff,0xffff},
301 { 0x8938, 0xD0DF, 0xffff,0xffff},
302 { 0x893A, 0xA503, 0xffff,0xffff},
303 { 0x893C, 0xD0DF, 0xffff,0xffff},
304 { 0x893E, 0xA506, 0xffff,0xffff},
305 { 0x8940, 0xD0DF, 0xffff,0xffff},
306 { 0x8942, 0xA509, 0xffff,0xffff},
307 { 0x8944, 0xD0D8, 0xffff,0xffff},
308 { 0x8946, 0xA0C0, 0xffff,0xffff},
309 { 0x8948, 0xD0DE, 0xffff,0xffff},
310 { 0x894A, 0x802E, 0xffff,0xffff},
311 { 0x894C, 0x9117, 0xffff,0xffff},
312 { 0x894E, 0x0171, 0xffff,0xffff},
313 { 0x8950, 0x06E4, 0xffff,0xffff},
314 { 0x8952, 0xB10E, 0xffff,0xffff},
315 { 0x8954, 0xC0F1, 0xffff,0xffff},
316 { 0x8956, 0xD0D3, 0xffff,0xffff},
317 { 0x8958, 0x8806, 0xffff,0xffff},
318 { 0x895A, 0x080F, 0xffff,0xffff},
319 { 0x895C, 0x0051, 0xffff,0xffff},
320 { 0x895E, 0xD0D2, 0xffff,0xffff},
321 { 0x8960, 0x8000, 0xffff,0xffff},
322 { 0x8962, 0x8008, 0xffff,0xffff},
323 { 0x8964, 0x7840, 0xffff,0xffff},
324 { 0x8966, 0x0A1E, 0xffff,0xffff},
325 { 0x8968, 0x0104, 0xffff,0xffff},
326 { 0x896A, 0xC0D1, 0xffff,0xffff},
327 { 0x896C, 0x7EE0, 0xffff,0xffff},
328 { 0x896E, 0x78E0, 0xffff,0xffff},
329 { 0x8970, 0xC0F1, 0xffff,0xffff},
330 { 0x8972, 0x08D6, 0xffff,0xffff},
331 { 0x8974, 0x06C4, 0xffff,0xffff},
332 { 0x8976, 0xD7CC, 0xffff,0xffff},
333 { 0x8978, 0x8700, 0xffff,0xffff},
334 { 0x897A, 0x8009, 0xffff,0xffff},
335 { 0x897C, 0x7840, 0xffff,0xffff},
336 { 0x897E, 0xE080, 0xffff,0xffff},
337 { 0x8980, 0x0276, 0xffff,0xffff},
338 { 0x8982, 0x0002, 0xffff,0xffff},
339 { 0x8984, 0xD5C7, 0xffff,0xffff},
340 { 0x8986, 0xD6D0, 0xffff,0xffff},
341 { 0x8988, 0x1530, 0xffff,0xffff},
342 { 0x898A, 0x1081, 0xffff,0xffff},
343 { 0x898C, 0x1531, 0xffff,0xffff},
344 { 0x898E, 0x1080, 0xffff,0xffff},
345 { 0x8990, 0xB908, 0xffff,0xffff},
346 { 0x8992, 0x7905, 0xffff,0xffff},
347 { 0x8994, 0x2941, 0xffff,0xffff},
348 { 0x8996, 0x0200, 0xffff,0xffff},
349 { 0x8998, 0x1D32, 0xffff,0xffff},
350 { 0x899A, 0x1002, 0xffff,0xffff},
351 { 0x899C, 0x1D33, 0xffff,0xffff},
352 { 0x899E, 0x1042, 0xffff,0xffff},
353 { 0x89A0, 0x962D, 0xffff,0xffff},
354 { 0x89A2, 0x2540, 0xffff,0xffff},
355 { 0x89A4, 0x15D1, 0xffff,0xffff},
356 { 0x89A6, 0x2941, 0xffff,0xffff},
357 { 0x89A8, 0x0200, 0xffff,0xffff},
358 { 0x89AA, 0x1D30, 0xffff,0xffff},
359 { 0x89AC, 0x1002, 0xffff,0xffff},
360 { 0x89AE, 0x8D06, 0xffff,0xffff},
361 { 0x89B0, 0x2540, 0xffff,0xffff},
362 { 0x89B2, 0x1610, 0xffff,0xffff},
363 { 0x89B4, 0x1D31, 0xffff,0xffff},
364 { 0x89B6, 0x1042, 0xffff,0xffff},
365 { 0x89B8, 0x081B, 0xffff,0xffff},
366 { 0x89BA, 0x0051, 0xffff,0xffff},
367 { 0x89BC, 0x8700, 0xffff,0xffff},
368 { 0x89BE, 0x8008, 0xffff,0xffff},
369 { 0x89C0, 0x7840, 0xffff,0xffff},
370 { 0x89C2, 0xD900, 0xffff,0xffff},
371 { 0x89C4, 0x2941, 0xffff,0xffff},
372 { 0x89C6, 0x0200, 0xffff,0xffff},
373 { 0x89C8, 0xAD00, 0xffff,0xffff},
374 { 0x89CA, 0xAD21, 0xffff,0xffff},
375 { 0x89CC, 0xD801, 0xffff,0xffff},
376 { 0x89CE, 0x1D4D, 0xffff,0xffff},
377 { 0x89D0, 0x1002, 0xffff,0xffff},
378 { 0x89D2, 0x154D, 0xffff,0xffff},
379 { 0x89D4, 0x1080, 0xffff,0xffff},
380 { 0x89D6, 0xB861, 0xffff,0xffff},
381 { 0x89D8, 0xE085, 0xffff,0xffff},
382 { 0x89DA, 0x0218, 0xffff,0xffff},
383 { 0x89DC, 0x000D, 0xffff,0xffff},
384 { 0x89DE, 0x2740, 0xffff,0xffff},
385 { 0x89E0, 0x7381, 0xffff,0xffff},
386 { 0x89E2, 0x2132, 0xffff,0xffff},
387 { 0x89E4, 0x0000, 0xffff,0xffff},
388 { 0x89E6, 0x7914, 0xffff,0xffff},
389 { 0x89E8, 0x7900, 0xffff,0xffff},
390 { 0x89EA, 0x0323, 0xffff,0xffff},
391 { 0x89EC, 0x67BB, 0xffff,0xffff},
392 { 0x89EE, 0xD62E, 0xffff,0xffff},
393 { 0x89F0, 0x8D11, 0xffff,0xffff},
394 { 0x89F2, 0xD1B6, 0xffff,0xffff},
395 { 0x89F4, 0x8924, 0xffff,0xffff},
396 { 0x89F6, 0x2032, 0xffff,0xffff},
397 { 0x89F8, 0x2000, 0xffff,0xffff},
398 { 0x89FA, 0xDE02, 0xffff,0xffff},
399 { 0x89FC, 0x082B, 0xffff,0xffff},
400 { 0x89FE, 0x0040, 0xffff,0xffff},
401 { 0x8A00, 0x8D20, 0xffff,0xffff},
402 { 0x8A02, 0x8D41, 0xffff,0xffff},
403 { 0x8A04, 0xB908, 0xffff,0xffff},
404 { 0x8A06, 0x7945, 0xffff,0xffff},
405 { 0x8A08, 0xB983, 0xffff,0xffff},
406 { 0x8A0A, 0x2941, 0xffff,0xffff},
407 { 0x8A0C, 0x0202, 0xffff,0xffff},
408 { 0x8A0E, 0xAD40, 0xffff,0xffff},
409 { 0x8A10, 0xAD21, 0xffff,0xffff},
410 { 0x8A12, 0xD1AF, 0xffff,0xffff},
411 { 0x8A14, 0x8120, 0xffff,0xffff},
412 { 0x8A16, 0x8121, 0xffff,0xffff},
413 { 0x8A18, 0x7940, 0xffff,0xffff},
414 { 0x8A1A, 0x8D06, 0xffff,0xffff},
415 { 0x8A1C, 0xE001, 0xffff,0xffff},
416 { 0x8A1E, 0xAD06, 0xffff,0xffff},
417 { 0x8A20, 0x1D4D, 0xffff,0xffff},
418 { 0x8A22, 0x1382, 0xffff,0xffff},
419 { 0x8A24, 0xF0E9, 0xffff,0xffff},
420 { 0x8A26, 0x8D06, 0xffff,0xffff},
421 { 0x8A28, 0x1D4D, 0xffff,0xffff},
422 { 0x8A2A, 0x1382, 0xffff,0xffff},
423 { 0x8A2C, 0xE001, 0xffff,0xffff},
424 { 0x8A2E, 0xAD06, 0xffff,0xffff},
425 { 0x8A30, 0x8D00, 0xffff,0xffff},
426 { 0x8A32, 0x8D21, 0xffff,0xffff},
427 { 0x8A34, 0xB808, 0xffff,0xffff},
428 { 0x8A36, 0x7825, 0xffff,0xffff},
429 { 0x8A38, 0xB885, 0xffff,0xffff},
430 { 0x8A3A, 0x2841, 0xffff,0xffff},
431 { 0x8A3C, 0x0201, 0xffff,0xffff},
432 { 0x8A3E, 0xAD20, 0xffff,0xffff},
433 { 0x8A40, 0xAD01, 0xffff,0xffff},
434 { 0x8A42, 0x8D31, 0xffff,0xffff},
435 { 0x8A44, 0xF01A, 0xffff,0xffff},
436 { 0x8A46, 0x8D31, 0xffff,0xffff},
437 { 0x8A48, 0x8D12, 0xffff,0xffff},
438 { 0x8A4A, 0x8D46, 0xffff,0xffff},
439 { 0x8A4C, 0x7822, 0xffff,0xffff},
440 { 0x8A4E, 0x0863, 0xffff,0xffff},
441 { 0x8A50, 0x0082, 0xffff,0xffff},
442 { 0x8A52, 0x1532, 0xffff,0xffff},
443 { 0x8A54, 0x1080, 0xffff,0xffff},
444 { 0x8A56, 0x1533, 0xffff,0xffff},
445 { 0x8A58, 0x1081, 0xffff,0xffff},
446 { 0x8A5A, 0x1531, 0xffff,0xffff},
447 { 0x8A5C, 0x1082, 0xffff,0xffff},
448 { 0x8A5E, 0xB808, 0xffff,0xffff},
449 { 0x8A60, 0x7825, 0xffff,0xffff},
450 { 0x8A62, 0x1530, 0xffff,0xffff},
451 { 0x8A64, 0x1081, 0xffff,0xffff},
452 { 0x8A66, 0xB908, 0xffff,0xffff},
453 { 0x8A68, 0x7945, 0xffff,0xffff},
454 { 0x8A6A, 0xD29A, 0xffff,0xffff},
455 { 0x8A6C, 0x0992, 0xffff,0xffff},
456 { 0x8A6E, 0x0020, 0xffff,0xffff},
457 { 0x8A70, 0x8A40, 0xffff,0xffff},
458 { 0x8A72, 0x8D31, 0xffff,0xffff},
459 { 0x8A74, 0x081F, 0xffff,0xffff},
460 { 0x8A76, 0x0051, 0xffff,0xffff},
461 { 0x8A78, 0x8D06, 0xffff,0xffff},
462 { 0x8A7A, 0x6038, 0xffff,0xffff},
463 { 0x8A7C, 0xD194, 0xffff,0xffff},
464 { 0x8A7E, 0x8120, 0xffff,0xffff},
465 { 0x8A80, 0x8121, 0xffff,0xffff},
466 { 0x8A82, 0x7960, 0xffff,0xffff},
467 { 0x8A84, 0x2132, 0xffff,0xffff},
468 { 0x8A86, 0x2000, 0xffff,0xffff},
469 { 0x8A88, 0x8D06, 0xffff,0xffff},
470 { 0x8A8A, 0xE001, 0xffff,0xffff},
471 { 0x8A8C, 0xAD06, 0xffff,0xffff},
472 { 0x8A8E, 0xD806, 0xffff,0xffff},
473 { 0x8A90, 0xF0B1, 0xffff,0xffff},
474 { 0x8A92, 0xE88F, 0xffff,0xffff},
475 { 0x8A94, 0x8D66, 0xffff,0xffff},
476 { 0x8A96, 0x633B, 0xffff,0xffff},
477 { 0x8A98, 0x63BB, 0xffff,0xffff},
478 { 0x8A9A, 0xD08D, 0xffff,0xffff},
479 { 0x8A9C, 0x8000, 0xffff,0xffff},
480 { 0x8A9E, 0x8021, 0xffff,0xffff},
481 { 0x8AA0, 0x7960, 0xffff,0xffff},
482 { 0x8AA2, 0x8B17, 0xffff,0xffff},
483 { 0x8AA4, 0x8D06, 0xffff,0xffff},
484 { 0x8AA6, 0xE001, 0xffff,0xffff},
485 { 0x8AA8, 0xAD06, 0xffff,0xffff},
486 { 0x8AAA, 0xD803, 0xffff,0xffff},
487 { 0x8AAC, 0xF0A3, 0xffff,0xffff},
488 { 0x8AAE, 0x2032, 0xffff,0xffff},
489 { 0x8AB0, 0x2040, 0xffff,0xffff},
490 { 0x8AB2, 0xAD07, 0xffff,0xffff},
491 { 0x8AB4, 0xD804, 0xffff,0xffff},
492 { 0x8AB6, 0xF09F, 0xffff,0xffff},
493 { 0x8AB8, 0x1532, 0xffff,0xffff},
494 { 0x8ABA, 0x1080, 0xffff,0xffff},
495 { 0x8ABC, 0x1533, 0xffff,0xffff},
496 { 0x8ABE, 0x1081, 0xffff,0xffff},
497 { 0x8AC0, 0x1531, 0xffff,0xffff},
498 { 0x8AC2, 0x1082, 0xffff,0xffff},
499 { 0x8AC4, 0xB808, 0xffff,0xffff},
500 { 0x8AC6, 0x7825, 0xffff,0xffff},
501 { 0x8AC8, 0x1530, 0xffff,0xffff},
502 { 0x8ACA, 0x1081, 0xffff,0xffff},
503 { 0x8ACC, 0xB908, 0xffff,0xffff},
504 { 0x8ACE, 0x7945, 0xffff,0xffff},
505 { 0x8AD0, 0xD280, 0xffff,0xffff},
506 { 0x8AD2, 0x092E, 0xffff,0xffff},
507 { 0x8AD4, 0x0020, 0xffff,0xffff},
508 { 0x8AD6, 0x8A41, 0xffff,0xffff},
509 { 0x8AD8, 0x8D51, 0xffff,0xffff},
510 { 0x8ADA, 0x8D32, 0xffff,0xffff},
511 { 0x8ADC, 0x8DC6, 0xffff,0xffff},
512 { 0x8ADE, 0x7942, 0xffff,0xffff},
513 { 0x8AE0, 0x62DB, 0xffff,0xffff},
514 { 0x8AE2, 0x091F, 0xffff,0xffff},
515 { 0x8AE4, 0x03A2, 0xffff,0xffff},
516 { 0x8AE6, 0x63BB, 0xffff,0xffff},
517 { 0x8AE8, 0xE88B, 0xffff,0xffff},
518 { 0x8AEA, 0x8D00, 0xffff,0xffff},
519 { 0x8AEC, 0x8D21, 0xffff,0xffff},
520 { 0x8AEE, 0xB808, 0xffff,0xffff},
521 { 0x8AF0, 0x7825, 0xffff,0xffff},
522 { 0x8AF2, 0xB885, 0xffff,0xffff},
523 { 0x8AF4, 0x2841, 0xffff,0xffff},
524 { 0x8AF6, 0x0201, 0xffff,0xffff},
525 { 0x8AF8, 0xAD20, 0xffff,0xffff},
526 { 0x8AFA, 0xAD01, 0xffff,0xffff},
527 { 0x8AFC, 0xF1CF, 0xffff,0xffff},
528 { 0x8AFE, 0xDF04, 0xffff,0xffff},
529 { 0x8B00, 0x092B, 0xffff,0xffff},
530 { 0x8B02, 0x03A3, 0xffff,0xffff},
531 { 0x8B04, 0x1D4D, 0xffff,0xffff},
532 { 0x8B06, 0x13C2, 0xffff,0xffff},
533 { 0x8B08, 0x1530, 0xffff,0xffff},
534 { 0x8B0A, 0x108E, 0xffff,0xffff},
535 { 0x8B0C, 0x1531, 0xffff,0xffff},
536 { 0x8B0E, 0x1081, 0xffff,0xffff},
537 { 0x8B10, 0x1533, 0xffff,0xffff},
538 { 0x8B12, 0x108F, 0xffff,0xffff},
539 { 0x8B14, 0xBE08, 0xffff,0xffff},
540 { 0x8B16, 0x7E25, 0xffff,0xffff},
541 { 0x8B18, 0x1532, 0xffff,0xffff},
542 { 0x8B1A, 0x1081, 0xffff,0xffff},
543 { 0x8B1C, 0xB908, 0xffff,0xffff},
544 { 0x8B1E, 0x79E5, 0xffff,0xffff},
545 { 0x8B20, 0x0907, 0xffff,0xffff},
546 { 0x8B22, 0x0382, 0xffff,0xffff},
547 { 0x8B24, 0xE883, 0xffff,0xffff},
548 { 0x8B26, 0x8B16, 0xffff,0xffff},
549 { 0x8B28, 0xF002, 0xffff,0xffff},
550 { 0x8B2A, 0x8B15, 0xffff,0xffff},
551 { 0x8B2C, 0x8D22, 0xffff,0xffff},
552 { 0x8B2E, 0xAD07, 0xffff,0xffff},
553 { 0x8B30, 0x8D03, 0xffff,0xffff},
554 { 0x8B32, 0xD367, 0xffff,0xffff},
555 { 0x8B34, 0xB908, 0xffff,0xffff},
556 { 0x8B36, 0x8DC1, 0xffff,0xffff},
557 { 0x8B38, 0x7905, 0xffff,0xffff},
558 { 0x8B3A, 0x8D00, 0xffff,0xffff},
559 { 0x8B3C, 0xB808, 0xffff,0xffff},
560 { 0x8B3E, 0x78C5, 0xffff,0xffff},
561 { 0x8B40, 0x0921, 0xffff,0xffff},
562 { 0x8B42, 0x011E, 0xffff,0xffff},
563 { 0x8B44, 0xB883, 0xffff,0xffff},
564 { 0x8B46, 0x2841, 0xffff,0xffff},
565 { 0x8B48, 0x0201, 0xffff,0xffff},
566 { 0x8B4A, 0xAD20, 0xffff,0xffff},
567 { 0x8B4C, 0x8320, 0xffff,0xffff},
568 { 0x8B4E, 0xAD01, 0xffff,0xffff},
569 { 0x8B50, 0x8121, 0xffff,0xffff},
570 { 0x8B52, 0x7960, 0xffff,0xffff},
571 { 0x8B54, 0x2032, 0xffff,0xffff},
572 { 0x8B56, 0x2080, 0xffff,0xffff},
573 { 0x8B58, 0x8D06, 0xffff,0xffff},
574 { 0x8B5A, 0xE001, 0xffff,0xffff},
575 { 0x8B5C, 0xAD06, 0xffff,0xffff},
576 { 0x8B5E, 0xF04D, 0xffff,0xffff},
577 { 0x8B60, 0x8D00, 0xffff,0xffff},
578 { 0x8B62, 0x8D21, 0xffff,0xffff},
579 { 0x8B64, 0xB808, 0xffff,0xffff},
580 { 0x8B66, 0x7825, 0xffff,0xffff},
581 { 0x8B68, 0xB886, 0xffff,0xffff},
582 { 0x8B6A, 0x2841, 0xffff,0xffff},
583 { 0x8B6C, 0x0201, 0xffff,0xffff},
584 { 0x8B6E, 0xAD20, 0xffff,0xffff},
585 { 0x8B70, 0xAD01, 0xffff,0xffff},
586 { 0x8B72, 0xD057, 0xffff,0xffff},
587 { 0x8B74, 0x8000, 0xffff,0xffff},
588 { 0x8B76, 0x8021, 0xffff,0xffff},
589 { 0x8B78, 0x7960, 0xffff,0xffff},
590 { 0x8B7A, 0x8D07, 0xffff,0xffff},
591 { 0x8B7C, 0x1545, 0xffff,0xffff},
592 { 0x8B7E, 0x1080, 0xffff,0xffff},
593 { 0x8B80, 0x1546, 0xffff,0xffff},
594 { 0x8B82, 0x1081, 0xffff,0xffff},
595 { 0x8B84, 0xB808, 0xffff,0xffff},
596 { 0x8B86, 0x7825, 0xffff,0xffff},
597 { 0x8B88, 0x085D, 0xffff,0xffff},
598 { 0x8B8A, 0x005E, 0xffff,0xffff},
599 { 0x8B8C, 0x8D06, 0xffff,0xffff},
600 { 0x8B8E, 0xE001, 0xffff,0xffff},
601 { 0x8B90, 0xAD06, 0xffff,0xffff},
602 { 0x8B92, 0xD805, 0xffff,0xffff},
603 { 0x8B94, 0xF02F, 0xffff,0xffff},
604 { 0x8B96, 0x1530, 0xffff,0xffff},
605 { 0x8B98, 0x1082, 0xffff,0xffff},
606 { 0x8B9A, 0x1531, 0xffff,0xffff},
607 { 0x8B9C, 0x1080, 0xffff,0xffff},
608 { 0x8B9E, 0xD14D, 0xffff,0xffff},
609 { 0x8BA0, 0xBA08, 0xffff,0xffff},
610 { 0x8BA2, 0x7A05, 0xffff,0xffff},
611 { 0x8BA4, 0x8903, 0xffff,0xffff},
612 { 0x8BA6, 0x080F, 0xffff,0xffff},
613 { 0x8BA8, 0x0083, 0xffff,0xffff},
614 { 0x8BAA, 0x8902, 0xffff,0xffff},
615 { 0x8BAC, 0x8E44, 0xffff,0xffff},
616 { 0x8BAE, 0x0839, 0xffff,0xffff},
617 { 0x8BB0, 0x0082, 0xffff,0xffff},
618 { 0x8BB2, 0x1545, 0xffff,0xffff},
619 { 0x8BB4, 0x1082, 0xffff,0xffff},
620 { 0x8BB6, 0x1546, 0xffff,0xffff},
621 { 0x8BB8, 0x1080, 0xffff,0xffff},
622 { 0x8BBA, 0xBA08, 0xffff,0xffff},
623 { 0x8BBC, 0x7A05, 0xffff,0xffff},
624 { 0x8BBE, 0x0A29, 0xffff,0xffff},
625 { 0x8BC0, 0x005E, 0xffff,0xffff},
626 { 0x8BC2, 0x8D00, 0xffff,0xffff},
627 { 0x8BC4, 0x8D21, 0xffff,0xffff},
628 { 0x8BC6, 0xB808, 0xffff,0xffff},
629 { 0x8BC8, 0x7825, 0xffff,0xffff},
630 { 0x8BCA, 0xB88D, 0xffff,0xffff},
631 { 0x8BCC, 0x2841, 0xffff,0xffff},
632 { 0x8BCE, 0x0201, 0xffff,0xffff},
633 { 0x8BD0, 0xAD20, 0xffff,0xffff},
634 { 0x8BD2, 0xAD01, 0xffff,0xffff},
635 { 0x8BD4, 0x0A11, 0xffff,0xffff},
636 { 0x8BD6, 0x009E, 0xffff,0xffff},
637 { 0x8BD8, 0xD03D, 0xffff,0xffff},
638 { 0x8BDA, 0x8000, 0xffff,0xffff},
639 { 0x8BDC, 0x8021, 0xffff,0xffff},
640 { 0x8BDE, 0x7960, 0xffff,0xffff},
641 { 0x8BE0, 0x1550, 0xffff,0xffff},
642 { 0x8BE2, 0x1080, 0xffff,0xffff},
643 { 0x8BE4, 0xD800, 0xffff,0xffff},
644 { 0x8BE6, 0x09AA, 0xffff,0xffff},
645 { 0x8BE8, 0x0164, 0xffff,0xffff},
646 { 0x8BEA, 0x1D4D, 0xffff,0xffff},
647 { 0x8BEC, 0x1002, 0xffff,0xffff},
648 { 0x8BEE, 0xF005, 0xffff,0xffff},
649 { 0x8BF0, 0xD800, 0xffff,0xffff},
650 { 0x8BF2, 0x1D4D, 0xffff,0xffff},
651 { 0x8BF4, 0x1002, 0xffff,0xffff},
652 { 0x8BF6, 0x06B1, 0xffff,0xffff},
653 { 0x8BF8, 0x0684, 0xffff,0xffff},
654 { 0x8BFA, 0x78E0, 0xffff,0xffff},
655 { 0x8BFC, 0xC0F1, 0xffff,0xffff},
656 { 0x8BFE, 0x0E4E, 0xffff,0xffff},
657 { 0x8C00, 0x06A4, 0xffff,0xffff},
658 { 0x8C02, 0x7308, 0xffff,0xffff},
659 { 0x8C04, 0x0919, 0xffff,0xffff},
660 { 0x8C06, 0x0023, 0xffff,0xffff},
661 { 0x8C08, 0x721A, 0xffff,0xffff},
662 { 0x8C0A, 0xD026, 0xffff,0xffff},
663 { 0x8C0C, 0x1030, 0xffff,0xffff},
664 { 0x8C0E, 0x0082, 0xffff,0xffff},
665 { 0x8C10, 0x1031, 0xffff,0xffff},
666 { 0x8C12, 0x0081, 0xffff,0xffff},
667 { 0x8C14, 0xBA08, 0xffff,0xffff},
668 { 0x8C16, 0x7A25, 0xffff,0xffff},
669 { 0x8C18, 0xDD00, 0xffff,0xffff},
670 { 0x8C1A, 0xF005, 0xffff,0xffff},
671 { 0x8C1C, 0xDD01, 0xffff,0xffff},
672 { 0x8C1E, 0x7268, 0xffff,0xffff},
673 { 0x8C20, 0x7328, 0xffff,0xffff},
674 { 0x8C22, 0x2302, 0xffff,0xffff},
675 { 0x8C24, 0x0080, 0xffff,0xffff},
676 { 0x8C26, 0x2885, 0xffff,0xffff},
677 { 0x8C28, 0x0901, 0xffff,0xffff},
678 { 0x8C2A, 0x702F, 0xffff,0xffff},
679 { 0x8C2C, 0x0EFA, 0xffff,0xffff},
680 { 0x8C2E, 0x06A4, 0xffff,0xffff},
681 { 0x8C30, 0x7168, 0xffff,0xffff},
682 { 0x8C32, 0xD31C, 0xffff,0xffff},
683 { 0x8C34, 0x8BC6, 0xffff,0xffff},
684 { 0x8C36, 0x8B31, 0xffff,0xffff},
685 { 0x8C38, 0x780F, 0xffff,0xffff},
686 { 0x8C3A, 0xD226, 0xffff,0xffff},
687 { 0x8C3C, 0x663E, 0xffff,0xffff},
688 { 0x8C3E, 0xD123, 0xffff,0xffff},
689 { 0x8C40, 0xBE62, 0xffff,0xffff},
690 { 0x8C42, 0x7ECF, 0xffff,0xffff},
691 { 0x8C44, 0x89E4, 0xffff,0xffff},
692 { 0x8C46, 0x2214, 0xffff,0xffff},
693 { 0x8C48, 0x0381, 0xffff,0xffff},
694 { 0x8C4A, 0xED07, 0xffff,0xffff},
695 { 0x8C4C, 0x2840, 0xffff,0xffff},
696 { 0x8C4E, 0x020E, 0xffff,0xffff},
697 { 0x8C50, 0x7EE5, 0xffff,0xffff},
698 { 0x8C52, 0xB1CC, 0xffff,0xffff},
699 { 0x8C54, 0xF007, 0xffff,0xffff},
700 { 0x8C56, 0x7E12, 0xffff,0xffff},
701 { 0x8C58, 0xE601, 0xffff,0xffff},
702 { 0x8C5A, 0x7ECF, 0xffff,0xffff},
703 { 0x8C5C, 0xBE08, 0xffff,0xffff},
704 { 0x8C5E, 0x7FC5, 0xffff,0xffff},
705 { 0x8C60, 0xB1EC, 0xffff,0xffff},
706 { 0x8C62, 0x080D, 0xffff,0xffff},
707 { 0x8C64, 0x2003, 0xffff,0xffff},
708 { 0x8C66, 0xED0D, 0xffff,0xffff},
709 { 0x8C68, 0xD800, 0xffff,0xffff},
710 { 0x8C6A, 0xF01A, 0xffff,0xffff},
711 { 0x8C6C, 0x134D, 0xffff,0xffff},
712 { 0x8C6E, 0x0080, 0xffff,0xffff},
713 { 0x8C70, 0x080B, 0xffff,0xffff},
714 { 0x8C72, 0x0190, 0xffff,0xffff},
715 { 0x8C74, 0x8A0E, 0xffff,0xffff},
716 { 0x8C76, 0x080B, 0xffff,0xffff},
717 { 0x8C78, 0x0291, 0xffff,0xffff},
718 { 0x8C7A, 0xD801, 0xffff,0xffff},
719 { 0x8C7C, 0xF010, 0xffff,0xffff},
720 { 0x8C7E, 0x1330, 0xffff,0xffff},
721 { 0x8C80, 0x0081, 0xffff,0xffff},
722 { 0x8C82, 0x1331, 0xffff,0xffff},
723 { 0x8C84, 0x008D, 0xffff,0xffff},
724 { 0x8C86, 0xD802, 0xffff,0xffff},
725 { 0x8C88, 0xB908, 0xffff,0xffff},
726 { 0x8C8A, 0x79A5, 0xffff,0xffff},
727 { 0x8C8C, 0xB22A, 0xffff,0xffff},
728 { 0x8C8E, 0x1332, 0xffff,0xffff},
729 { 0x8C90, 0x0081, 0xffff,0xffff},
730 { 0x8C92, 0x1333, 0xffff,0xffff},
731 { 0x8C94, 0x008D, 0xffff,0xffff},
732 { 0x8C96, 0xB908, 0xffff,0xffff},
733 { 0x8C98, 0x79A5, 0xffff,0xffff},
734 { 0x8C9A, 0xB22B, 0xffff,0xffff},
735 { 0x8C9C, 0x0611, 0xffff,0xffff},
736 { 0x8C9E, 0x0684, 0xffff,0xffff},
737 { 0x8CA0, 0xFF80, 0xffff,0xffff},
738 { 0x8CA2, 0x0290, 0xffff,0xffff},
739 { 0x8CA4, 0x8000, 0xffff,0xffff},
740 { 0x8CA6, 0x008C, 0xffff,0xffff},
741 { 0x8CA8, 0x0000, 0xffff,0xffff},
742 { 0x8CAA, 0xF3BC, 0xffff,0xffff},
743 { 0x8CAC, 0xFF80, 0xffff,0xffff},
744 { 0x8CAE, 0x1120, 0xffff,0xffff},
745 { 0x8CB0, 0xFF80, 0xffff,0xffff},
746 { 0x8CB2, 0x08EC, 0xffff,0xffff},
747 { 0x8CB4, 0xFF80, 0xffff,0xffff},
748 { 0x8CB6, 0x0954, 0xffff,0xffff},
749 { 0x8CB8, 0xFF80, 0xffff,0xffff},
750 { 0x8CBA, 0x0970, 0xffff,0xffff},
751 { 0x8CBC, 0xFF80, 0xffff,0xffff},
752 { 0x8CBE, 0x0CD4, 0xffff,0xffff},
753 { 0x8CC0, 0xFF80, 0xffff,0xffff},
754 { 0x8CC2, 0x06C8, 0xffff,0xffff},
755 { 0x8CC4, 0xFF80, 0xffff,0xffff},
756 { 0x8CC6, 0x050C, 0xffff,0xffff},
757 { 0x8CC8, 0xFF80, 0xffff,0xffff},
758 { 0x8CCA, 0x0158, 0xffff,0xffff},
759 { 0x8CCC, 0x8000, 0xffff,0xffff},
760 { 0x8CCE, 0x0008, 0xffff,0xffff},
761 { 0x8CD0, 0xFF80, 0xffff,0xffff},
762 { 0x8CD2, 0x10C8, 0xffff,0xffff},
763 { 0x8CD4, 0xC0F1, 0xffff,0xffff},
764 { 0x8CD6, 0x0D7E, 0xffff,0xffff},
765 { 0x8CD8, 0x0684, 0xffff,0xffff},
766 { 0x8CDA, 0x17C8, 0xffff,0xffff},
767 { 0x8CDC, 0xF00D, 0xffff,0xffff},
768 { 0x8CDE, 0x1545, 0xffff,0xffff},
769 { 0x8CE0, 0x1080, 0xffff,0xffff},
770 { 0x8CE2, 0x1546, 0xffff,0xffff},
771 { 0x8CE4, 0x1081, 0xffff,0xffff},
772 { 0x8CE6, 0xB808, 0xffff,0xffff},
773 { 0x8CE8, 0x7825, 0xffff,0xffff},
774 { 0x8CEA, 0xB8E0, 0xffff,0xffff},
775 { 0x8CEC, 0xDE00, 0xffff,0xffff},
776 { 0x8CEE, 0xF208, 0xffff,0xffff},
777 { 0x8CF0, 0x8D00, 0xffff,0xffff},
778 { 0x8CF2, 0x8D21, 0xffff,0xffff},
779 { 0x8CF4, 0xB808, 0xffff,0xffff},
780 { 0x8CF6, 0x7825, 0xffff,0xffff},
781 { 0x8CF8, 0x2044, 0xffff,0xffff},
782 { 0x8CFA, 0x020E, 0xffff,0xffff},
783 { 0x8CFC, 0x8D00, 0xffff,0xffff},
784 { 0x8CFE, 0x8D21, 0xffff,0xffff},
785 { 0x8D00, 0xB808, 0xffff,0xffff},
786 { 0x8D02, 0x7825, 0xffff,0xffff},
787 { 0x8D04, 0x082F, 0xffff,0xffff},
788 { 0x8D06, 0x00DE, 0xffff,0xffff},
789 { 0x8D08, 0x7108, 0xffff,0xffff},
790 { 0x8D0A, 0x2186, 0xffff,0xffff},
791 { 0x8D0C, 0x0FFE, 0xffff,0xffff},
792 { 0x8D0E, 0x262F, 0xffff,0xffff},
793 { 0x8D10, 0xF04A, 0xffff,0xffff},
794 { 0x8D12, 0xF211, 0xffff,0xffff},
795 { 0x8D14, 0x17BC, 0xffff,0xffff},
796 { 0x8D16, 0xF002, 0xffff,0xffff},
797 { 0x8D18, 0x8A25, 0xffff,0xffff},
798 { 0x8D1A, 0xE906, 0xffff,0xffff},
799 { 0x8D1C, 0xB961, 0xffff,0xffff},
800 { 0x8D1E, 0xAA25, 0xffff,0xffff},
801 { 0x8D20, 0xD806, 0xffff,0xffff},
802 { 0x8D22, 0xF01E, 0xffff,0xffff},
803 { 0x8D24, 0x8A24, 0xffff,0xffff},
804 { 0x8D26, 0xB8A3, 0xffff,0xffff},
805 { 0x8D28, 0xAA25, 0xffff,0xffff},
806 { 0x8D2A, 0x2841, 0xffff,0xffff},
807 { 0x8D2C, 0x0201, 0xffff,0xffff},
808 { 0x8D2E, 0xAD20, 0xffff,0xffff},
809 { 0x8D30, 0xAD01, 0xffff,0xffff},
810 { 0x8D32, 0x0D56, 0xffff,0xffff},
811 { 0x8D34, 0x0144, 0xffff,0xffff},
812 { 0x8D36, 0x1545, 0xffff,0xffff},
813 { 0x8D38, 0x1081, 0xffff,0xffff},
814 { 0x8D3A, 0x1546, 0xffff,0xffff},
815 { 0x8D3C, 0x1082, 0xffff,0xffff},
816 { 0x8D3E, 0xB908, 0xffff,0xffff},
817 { 0x8D40, 0x7945, 0xffff,0xffff},
818 { 0x8D42, 0xB9E0, 0xffff,0xffff},
819 { 0x8D44, 0x26CC, 0xffff,0xffff},
820 { 0x8D46, 0x9022, 0xffff,0xffff},
821 { 0x8D48, 0xF20A, 0xffff,0xffff},
822 { 0x8D4A, 0x8D20, 0xffff,0xffff},
823 { 0x8D4C, 0x8D41, 0xffff,0xffff},
824 { 0x8D4E, 0xB908, 0xffff,0xffff},
825 { 0x8D50, 0x7945, 0xffff,0xffff},
826 { 0x8D52, 0xB983, 0xffff,0xffff},
827 { 0x8D54, 0x2941, 0xffff,0xffff},
828 { 0x8D56, 0x0202, 0xffff,0xffff},
829 { 0x8D58, 0xAD40, 0xffff,0xffff},
830 { 0x8D5A, 0xAD21, 0xffff,0xffff},
831 { 0x8D5C, 0x0561, 0xffff,0xffff},
832 { 0x8D5E, 0x0684, 0xffff,0xffff},
833 { 0x8D60, 0xC0F1, 0xffff,0xffff},
834 { 0x8D62, 0x0CEE, 0xffff,0xffff},
835 { 0x8D64, 0x06A4, 0xffff,0xffff},
836 { 0x8D66, 0x7098, 0xffff,0xffff},
837 { 0x8D68, 0xD284, 0xffff,0xffff},
838 { 0x8D6A, 0x1206, 0xffff,0xffff},
839 { 0x8D6C, 0x0086, 0xffff,0xffff},
840 { 0x8D6E, 0x2240, 0xffff,0xffff},
841 { 0x8D70, 0x0205, 0xffff,0xffff},
842 { 0x8D72, 0x264C, 0xffff,0xffff},
843 { 0x8D74, 0x8000, 0xffff,0xffff},
844 { 0x8D76, 0x20CA, 0xffff,0xffff},
845 { 0x8D78, 0x0101, 0xffff,0xffff},
846 { 0x8D7A, 0xF237, 0xffff,0xffff},
847 { 0x8D7C, 0x8AA7, 0xffff,0xffff},
848 { 0x8D7E, 0x6D69, 0xffff,0xffff},
849 { 0x8D80, 0x7B6D, 0xffff,0xffff},
850 { 0x8D82, 0x0B3F, 0xffff,0xffff},
851 { 0x8D84, 0x0012, 0xffff,0xffff},
852 { 0x8D86, 0x7068, 0xffff,0xffff},
853 { 0x8D88, 0x780D, 0xffff,0xffff},
854 { 0x8D8A, 0x2040, 0xffff,0xffff},
855 { 0x8D8C, 0x007C, 0xffff,0xffff},
856 { 0x8D8E, 0x20A8, 0xffff,0xffff},
857 { 0x8D90, 0x0640, 0xffff,0xffff},
858 { 0x8D92, 0x71CF, 0xffff,0xffff},
859 { 0x8D94, 0xFF80, 0xffff,0xffff},
860 { 0x8D96, 0x0158, 0xffff,0xffff},
861 { 0x8D98, 0x8924, 0xffff,0xffff},
862 { 0x8D9A, 0x2532, 0xffff,0xffff},
863 { 0x8D9C, 0x00C0, 0xffff,0xffff},
864 { 0x8D9E, 0xBD61, 0xffff,0xffff},
865 { 0x8DA0, 0x0819, 0xffff,0xffff},
866 { 0x8DA2, 0x0063, 0xffff,0xffff},
867 { 0x8DA4, 0x7DAF, 0xffff,0xffff},
868 { 0x8DA6, 0x76CF, 0xffff,0xffff},
869 { 0x8DA8, 0xFF80, 0xffff,0xffff},
870 { 0x8DAA, 0x0290, 0xffff,0xffff},
871 { 0x8DAC, 0x8EF1, 0xffff,0xffff},
872 { 0x8DAE, 0x2640, 0xffff,0xffff},
873 { 0x8DB0, 0x1601, 0xffff,0xffff},
874 { 0x8DB2, 0x61E9, 0xffff,0xffff},
875 { 0x8DB4, 0x090F, 0xffff,0xffff},
876 { 0x8DB6, 0x0002, 0xffff,0xffff},
877 { 0x8DB8, 0xAAA7, 0xffff,0xffff},
878 { 0x8DBA, 0xBB61, 0xffff,0xffff},
879 { 0x8DBC, 0x7B6D, 0xffff,0xffff},
880 { 0x8DBE, 0x7088, 0xffff,0xffff},
881 { 0x8DC0, 0xF005, 0xffff,0xffff},
882 { 0x8DC2, 0x8E26, 0xffff,0xffff},
883 { 0x8DC4, 0xAAA7, 0xffff,0xffff},
884 { 0x8DC6, 0xB961, 0xffff,0xffff},
885 { 0x8DC8, 0xAE26, 0xffff,0xffff},
886 { 0x8DCA, 0x0B1F, 0xffff,0xffff},
887 { 0x8DCC, 0x0013, 0xffff,0xffff},
888 { 0x8DCE, 0x1A07, 0xffff,0xffff},
889 { 0x8DD0, 0x0182, 0xffff,0xffff},
890 { 0x8DD2, 0xD26B, 0xffff,0xffff},
891 { 0x8DD4, 0x8A20, 0xffff,0xffff},
892 { 0x8DD6, 0x8A61, 0xffff,0xffff},
893 { 0x8DD8, 0xB908, 0xffff,0xffff},
894 { 0x8DDA, 0x7965, 0xffff,0xffff},
895 { 0x8DDC, 0xB9A3, 0xffff,0xffff},
896 { 0x8DDE, 0x2941, 0xffff,0xffff},
897 { 0x8DE0, 0x020C, 0xffff,0xffff},
898 { 0x8DE2, 0xAA80, 0xffff,0xffff},
899 { 0x8DE4, 0xAA21, 0xffff,0xffff},
900 { 0x8DE6, 0x04D1, 0xffff,0xffff},
901 { 0x8DE8, 0x0684, 0xffff,0xffff},
902 { 0x8DEA, 0x78E0, 0xffff,0xffff},
903 { 0x8DEC, 0xC0F1, 0xffff,0xffff},
904 { 0x8DEE, 0xC5E1, 0xffff,0xffff},
905 { 0x8DF0, 0xD363, 0xffff,0xffff},
906 { 0x8DF2, 0x8B24, 0xffff,0xffff},
907 { 0x8DF4, 0x8B45, 0xffff,0xffff},
908 { 0x8DF6, 0xB908, 0xffff,0xffff},
909 { 0x8DF8, 0x7945, 0xffff,0xffff},
910 { 0x8DFA, 0xE188, 0xffff,0xffff},
911 { 0x8DFC, 0x21CC, 0xffff,0xffff},
912 { 0x8DFE, 0x8422, 0xffff,0xffff},
913 { 0x8E00, 0xF41F, 0xffff,0xffff},
914 { 0x8E02, 0x8B26, 0xffff,0xffff},
915 { 0x8E04, 0x093B, 0xffff,0xffff},
916 { 0x8E06, 0x0051, 0xffff,0xffff},
917 { 0x8E08, 0xD15C, 0xffff,0xffff},
918 { 0x8E0A, 0xD80A, 0xffff,0xffff},
919 { 0x8E0C, 0xA90E, 0xffff,0xffff},
920 { 0x8E0E, 0xD05D, 0xffff,0xffff},
921 { 0x8E10, 0x8804, 0xffff,0xffff},
922 { 0x8E12, 0x1330, 0xffff,0xffff},
923 { 0x8E14, 0x0082, 0xffff,0xffff},
924 { 0x8E16, 0x1331, 0xffff,0xffff},
925 { 0x8E18, 0x008D, 0xffff,0xffff},
926 { 0x8E1A, 0xBA08, 0xffff,0xffff},
927 { 0x8E1C, 0x7AA5, 0xffff,0xffff},
928 { 0x8E1E, 0xB148, 0xffff,0xffff},
929 { 0x8E20, 0x8952, 0xffff,0xffff},
930 { 0x8E22, 0xA90F, 0xffff,0xffff},
931 { 0x8E24, 0x0813, 0xffff,0xffff},
932 { 0x8E26, 0x00A2, 0xffff,0xffff},
933 { 0x8E28, 0x132C, 0xffff,0xffff},
934 { 0x8E2A, 0x0083, 0xffff,0xffff},
935 { 0x8E2C, 0xDA00, 0xffff,0xffff},
936 { 0x8E2E, 0xA953, 0xffff,0xffff},
937 { 0x8E30, 0x7862, 0xffff,0xffff},
938 { 0x8E32, 0x780F, 0xffff,0xffff},
939 { 0x8E34, 0xF005, 0xffff,0xffff},
940 { 0x8E36, 0xDA01, 0xffff,0xffff},
941 { 0x8E38, 0xA953, 0xffff,0xffff},
942 { 0x8E3A, 0x6078, 0xffff,0xffff},
943 { 0x8E3C, 0x780F, 0xffff,0xffff},
944 { 0x8E3E, 0x080E, 0xffff,0xffff},
945 { 0x8E40, 0x0000, 0xffff,0xffff},
946 { 0x8E42, 0x0485, 0xffff,0xffff},
947 { 0x8E44, 0x0684, 0xffff,0xffff},
948 { 0x8E46, 0x78E0, 0xffff,0xffff},
949 { 0x8E48, 0xC0F1, 0xffff,0xffff},
950 { 0x8E4A, 0x0BFE, 0xffff,0xffff},
951 { 0x8E4C, 0x0684, 0xffff,0xffff},
952 { 0x8E4E, 0xD64D, 0xffff,0xffff},
953 { 0x8E50, 0x7508, 0xffff,0xffff},
954 { 0x8E52, 0x8E01, 0xffff,0xffff},
955 { 0x8E54, 0xD14A, 0xffff,0xffff},
956 { 0x8E56, 0x2046, 0xffff,0xffff},
957 { 0x8E58, 0x00C0, 0xffff,0xffff},
958 { 0x8E5A, 0xAE01, 0xffff,0xffff},
959 { 0x8E5C, 0x1145, 0xffff,0xffff},
960 { 0x8E5E, 0x0080, 0xffff,0xffff},
961 { 0x8E60, 0x1146, 0xffff,0xffff},
962 { 0x8E62, 0x0082, 0xffff,0xffff},
963 { 0x8E64, 0xB808, 0xffff,0xffff},
964 { 0x8E66, 0x7845, 0xffff,0xffff},
965 { 0x8E68, 0x0817, 0xffff,0xffff},
966 { 0x8E6A, 0x001E, 0xffff,0xffff},
967 { 0x8E6C, 0x8900, 0xffff,0xffff},
968 { 0x8E6E, 0x8941, 0xffff,0xffff},
969 { 0x8E70, 0xB808, 0xffff,0xffff},
970 { 0x8E72, 0x7845, 0xffff,0xffff},
971 { 0x8E74, 0x080B, 0xffff,0xffff},
972 { 0x8E76, 0x00DE, 0xffff,0xffff},
973 { 0x8E78, 0x70A9, 0xffff,0xffff},
974 { 0x8E7A, 0xFFBA, 0xffff,0xffff},
975 { 0x8E7C, 0x7508, 0xffff,0xffff},
976 { 0x8E7E, 0x1604, 0xffff,0xffff},
977 { 0x8E80, 0x1090, 0xffff,0xffff},
978 { 0x8E82, 0x0D93, 0xffff,0xffff},
979 { 0x8E84, 0x1400, 0xffff,0xffff},
980 { 0x8E86, 0x8EEA, 0xffff,0xffff},
981 { 0x8E88, 0x8E0B, 0xffff,0xffff},
982 { 0x8E8A, 0x214A, 0xffff,0xffff},
983 { 0x8E8C, 0x2040, 0xffff,0xffff},
984 { 0x8E8E, 0x8E2D, 0xffff,0xffff},
985 { 0x8E90, 0xBF08, 0xffff,0xffff},
986 { 0x8E92, 0x7F05, 0xffff,0xffff},
987 { 0x8E94, 0x8E0C, 0xffff,0xffff},
988 { 0x8E96, 0xB808, 0xffff,0xffff},
989 { 0x8E98, 0x7825, 0xffff,0xffff},
990 { 0x8E9A, 0x7710, 0xffff,0xffff},
991 { 0x8E9C, 0x21C2, 0xffff,0xffff},
992 { 0x8E9E, 0x244C, 0xffff,0xffff},
993 { 0x8EA0, 0x081D, 0xffff,0xffff},
994 { 0x8EA2, 0x03E3, 0xffff,0xffff},
995 { 0x8EA4, 0xD9FF, 0xffff,0xffff},
996 { 0x8EA6, 0x2702, 0xffff,0xffff},
997 { 0x8EA8, 0x1002, 0xffff,0xffff},
998 { 0x8EAA, 0x2A05, 0xffff,0xffff},
999 { 0x8EAC, 0x037E, 0xffff,0xffff},
1000 { 0x8EAE, 0x0C7A, 0xffff,0xffff},
1001 { 0x8EB0, 0x06A4, 0xffff,0xffff},
1002 { 0x8EB2, 0x702F, 0xffff,0xffff},
1003 { 0x8EB4, 0x7810, 0xffff,0xffff},
1004 { 0x8EB6, 0x7F02, 0xffff,0xffff},
1005 { 0x8EB8, 0x7FF0, 0xffff,0xffff},
1006 { 0x8EBA, 0xF00B, 0xffff,0xffff},
1007 { 0x8EBC, 0x78E2, 0xffff,0xffff},
1008 { 0x8EBE, 0x2805, 0xffff,0xffff},
1009 { 0x8EC0, 0x037E, 0xffff,0xffff},
1010 { 0x8EC2, 0x0C66, 0xffff,0xffff},
1011 { 0x8EC4, 0x06A4, 0xffff,0xffff},
1012 { 0x8EC6, 0x702F, 0xffff,0xffff},
1013 { 0x8EC8, 0x7810, 0xffff,0xffff},
1014 { 0x8ECA, 0x671F, 0xffff,0xffff},
1015 { 0x8ECC, 0x7FF0, 0xffff,0xffff},
1016 { 0x8ECE, 0x7FEF, 0xffff,0xffff},
1017 { 0x8ED0, 0x8E08, 0xffff,0xffff},
1018 { 0x8ED2, 0xBF06, 0xffff,0xffff},
1019 { 0x8ED4, 0xD12C, 0xffff,0xffff},
1020 { 0x8ED6, 0xB8C3, 0xffff,0xffff},
1021 { 0x8ED8, 0x78E5, 0xffff,0xffff},
1022 { 0x8EDA, 0xB88F, 0xffff,0xffff},
1023 { 0x8EDC, 0x1908, 0xffff,0xffff},
1024 { 0x8EDE, 0x0024, 0xffff,0xffff},
1025 { 0x8EE0, 0x2841, 0xffff,0xffff},
1026 { 0x8EE2, 0x0201, 0xffff,0xffff},
1027 { 0x8EE4, 0x1E26, 0xffff,0xffff},
1028 { 0x8EE6, 0x1042, 0xffff,0xffff},
1029 { 0x8EE8, 0x0D15, 0xffff,0xffff},
1030 { 0x8EEA, 0x1423, 0xffff,0xffff},
1031 { 0x8EEC, 0x1E27, 0xffff,0xffff},
1032 { 0x8EEE, 0x1002, 0xffff,0xffff},
1033 { 0x8EF0, 0x214C, 0xffff,0xffff},
1034 { 0x8EF2, 0xA000, 0xffff,0xffff},
1035 { 0x8EF4, 0x214A, 0xffff,0xffff},
1036 { 0x8EF6, 0x2040, 0xffff,0xffff},
1037 { 0x8EF8, 0x21C2, 0xffff,0xffff},
1038 { 0x8EFA, 0x2442, 0xffff,0xffff},
1039 { 0x8EFC, 0x8E21, 0xffff,0xffff},
1040 { 0x8EFE, 0x214F, 0xffff,0xffff},
1041 { 0x8F00, 0x0040, 0xffff,0xffff},
1042 { 0x8F02, 0x090F, 0xffff,0xffff},
1043 { 0x8F04, 0x2010, 0xffff,0xffff},
1044 { 0x8F06, 0x2145, 0xffff,0xffff},
1045 { 0x8F08, 0x0181, 0xffff,0xffff},
1046 { 0x8F0A, 0xAE21, 0xffff,0xffff},
1047 { 0x8F0C, 0xF003, 0xffff,0xffff},
1048 { 0x8F0E, 0xB8A2, 0xffff,0xffff},
1049 { 0x8F10, 0xAE01, 0xffff,0xffff},
1050 { 0x8F12, 0x0FFE, 0xffff,0xffff},
1051 { 0x8F14, 0xFFA3, 0xffff,0xffff},
1052 { 0x8F16, 0x70A9, 0xffff,0xffff},
1053 { 0x8F18, 0x038D, 0xffff,0xffff},
1054 { 0x8F1A, 0x0684, 0xffff,0xffff},
1055 { 0x8F1C, 0xC0F1, 0xffff,0xffff},
1056 { 0x8F1E, 0xC5E1, 0xffff,0xffff},
1057 { 0x8F20, 0xD518, 0xffff,0xffff},
1058 { 0x8F22, 0x8D00, 0xffff,0xffff},
1059 { 0x8F24, 0xB8E7, 0xffff,0xffff},
1060 { 0x8F26, 0x20D1, 0xffff,0xffff},
1061 { 0x8F28, 0x80E2, 0xffff,0xffff},
1062 { 0x8F2A, 0xF20D, 0xffff,0xffff},
1063 { 0x8F2C, 0xD117, 0xffff,0xffff},
1064 { 0x8F2E, 0xB8A7, 0xffff,0xffff},
1065 { 0x8F30, 0xAD00, 0xffff,0xffff},
1066 { 0x8F32, 0xD017, 0xffff,0xffff},
1067 { 0x8F34, 0x7228, 0xffff,0xffff},
1068 { 0x8F36, 0x8123, 0xffff,0xffff},
1069 { 0x8F38, 0xA040, 0xffff,0xffff},
1070 { 0x8F3A, 0x7960, 0xffff,0xffff},
1071 { 0x8F3C, 0xD801, 0xffff,0xffff},
1072 { 0x8F3E, 0xD800, 0xffff,0xffff},
1073 { 0x8F40, 0xAD05, 0xffff,0xffff},
1074 { 0x8F42, 0x0F56, 0xffff,0xffff},
1075 { 0x8F44, 0xFF83, 0xffff,0xffff},
1076 { 0x8F46, 0x0381, 0xffff,0xffff},
1077 { 0x8F48, 0x0684, 0xffff,0xffff},
1078 { 0x8F4A, 0x78E0, 0xffff,0xffff},
1079 { 0x8F4C, 0xD20D, 0xffff,0xffff},
1080 { 0x8F4E, 0x8A21, 0xffff,0xffff},
1081 { 0x8F50, 0xB9A1, 0xffff,0xffff},
1082 { 0x8F52, 0x782F, 0xffff,0xffff},
1083 { 0x8F54, 0x7FE0, 0xffff,0xffff},
1084 { 0x8F56, 0xAA21, 0xffff,0xffff},
1085 { 0x8F58, 0xD00E, 0xffff,0xffff},
1086 { 0x8F5A, 0xD10C, 0xffff,0xffff},
1087 { 0x8F5C, 0xA100, 0xffff,0xffff},
1088 { 0x8F5E, 0xD00E, 0xffff,0xffff},
1089 { 0x8F60, 0xA101, 0xffff,0xffff},
1090 { 0x8F62, 0xD00E, 0xffff,0xffff},
1091 { 0x8F64, 0xA102, 0xffff,0xffff},
1092 { 0x8F66, 0xD00E, 0xffff,0xffff},
1093 { 0x8F68, 0xA103, 0xffff,0xffff},
1094 { 0x8F6A, 0xD009, 0xffff,0xffff},
1095 { 0x8F6C, 0xA020, 0xffff,0xffff},
1096 { 0x8F6E, 0xD005, 0xffff,0xffff},
1097 { 0x8F70, 0xD988, 0xffff,0xffff},
1098 { 0x8F72, 0xA820, 0xffff,0xffff},
1099 { 0x8F74, 0xF1D4, 0xffff,0xffff},
1100 { 0x8F76, 0x78E0, 0xffff,0xffff},
1101 { 0x8F78, 0xFF80, 0xffff,0xffff},
1102 { 0x8F7A, 0x10C8, 0xffff,0xffff},
1103 { 0x8F7C, 0xFF80, 0xffff,0xffff},
1104 { 0x8F7E, 0x0290, 0xffff,0xffff},
1105 { 0x8F80, 0xFF80, 0xffff,0xffff},
1106 { 0x8F82, 0x0158, 0xffff,0xffff},
1107 { 0x8F84, 0xFF00, 0xffff,0xffff},
1108 { 0x8F86, 0x0618, 0xffff,0xffff},
1109 { 0x8F88, 0xFF80, 0xffff,0xffff},
1110 { 0x8F8A, 0x1158, 0xffff,0xffff},
1111 { 0x8F8C, 0x8000, 0xffff,0xffff},
1112 { 0x8F8E, 0x0008, 0xffff,0xffff},
1113 { 0x8F90, 0xFF80, 0xffff,0xffff},
1114 { 0x8F92, 0x0F1C, 0xffff,0xffff},
1115 { 0x8F94, 0xFF80, 0xffff,0xffff},
1116 { 0x8F96, 0x0DEC, 0xffff,0xffff},
1117 { 0x8F98, 0xFF80, 0xffff,0xffff},
1118 { 0x8F9A, 0x0F4C, 0xffff,0xffff},
1119 { 0x8F9C, 0x0000, 0xffff,0xffff},
1120 { 0x8F9E, 0x0998, 0xffff,0xffff},
1121 { 0x8FA0, 0xC0F1, 0xffff,0xffff},
1122 { 0x8FA2, 0xC5E1, 0xffff,0xffff},
1123 { 0x8FA4, 0xD02C, 0xffff,0xffff},
1124 { 0x8FA6, 0x0982, 0xffff,0xffff},
1125 { 0x8FA8, 0x0664, 0xffff,0xffff},
1126 { 0x8FAA, 0x88AE, 0xffff,0xffff},
1127 { 0x8FAC, 0x0D23, 0xffff,0xffff},
1128 { 0x8FAE, 0x1051, 0xffff,0xffff},
1129 { 0x8FB0, 0xD12A, 0xffff,0xffff},
1130 { 0x8FB2, 0x1145, 0xffff,0xffff},
1131 { 0x8FB4, 0x0080, 0xffff,0xffff},
1132 { 0x8FB6, 0x1146, 0xffff,0xffff},
1133 { 0x8FB8, 0x0082, 0xffff,0xffff},
1134 { 0x8FBA, 0xB808, 0xffff,0xffff},
1135 { 0x8FBC, 0x7845, 0xffff,0xffff},
1136 { 0x8FBE, 0x0813, 0xffff,0xffff},
1137 { 0x8FC0, 0x00DE, 0xffff,0xffff},
1138 { 0x8FC2, 0xD027, 0xffff,0xffff},
1139 { 0x8FC4, 0x8000, 0xffff,0xffff},
1140 { 0x8FC6, 0x8041, 0xffff,0xffff},
1141 { 0x8FC8, 0x7A60, 0xffff,0xffff},
1142 { 0x8FCA, 0x1150, 0xffff,0xffff},
1143 { 0x8FCC, 0x0080, 0xffff,0xffff},
1144 { 0x8FCE, 0x02F9, 0xffff,0xffff},
1145 { 0x8FD0, 0x0684, 0xffff,0xffff},
1146 { 0x8FD2, 0x78E0, 0xffff,0xffff},
1147 { 0x8FD4, 0xC0F1, 0xffff,0xffff},
1148 { 0x8FD6, 0x0A7E, 0xffff,0xffff},
1149 { 0x8FD8, 0x0684, 0xffff,0xffff},
1150 { 0x8FDA, 0xD622, 0xffff,0xffff},
1151 { 0x8FDC, 0x8EA9, 0xffff,0xffff},
1152 { 0x8FDE, 0x8E2A, 0xffff,0xffff},
1153 { 0x8FE0, 0xBD08, 0xffff,0xffff},
1154 { 0x8FE2, 0x7D25, 0xffff,0xffff},
1155 { 0x8FE4, 0x2550, 0xffff,0xffff},
1156 { 0x8FE6, 0x10C2, 0xffff,0xffff},
1157 { 0x8FE8, 0x2A41, 0xffff,0xffff},
1158 { 0x8FEA, 0x0201, 0xffff,0xffff},
1159 { 0x8FEC, 0xAE29, 0xffff,0xffff},
1160 { 0x8FEE, 0x0F9A, 0xffff,0xffff},
1161 { 0x8FF0, 0x05A4, 0xffff,0xffff},
1162 { 0x8FF2, 0xAE4A, 0xffff,0xffff},
1163 { 0x8FF4, 0x0D17, 0xffff,0xffff},
1164 { 0x8FF6, 0x10DE, 0xffff,0xffff},
1165 { 0x8FF8, 0x8E09, 0xffff,0xffff},
1166 { 0x8FFA, 0x8E2A, 0xffff,0xffff},
1167 { 0x8FFC, 0xB808, 0xffff,0xffff},
1168 { 0x8FFE, 0x7825, 0xffff,0xffff},
1169 { 0x9000, 0xB883, 0xffff,0xffff},
1170 { 0x9002, 0x2841, 0xffff,0xffff},
1171 { 0x9004, 0x0201, 0xffff,0xffff},
1172 { 0x9006, 0xAE29, 0xffff,0xffff},
1173 { 0x9008, 0xAE0A, 0xffff,0xffff},
1174 { 0x900A, 0x02B5, 0xffff,0xffff},
1175 { 0x900C, 0x0684, 0xffff,0xffff},
1176 { 0x900E, 0x78E0, 0xffff,0xffff},
1177 { 0x9010, 0xC0F1, 0xffff,0xffff},
1178 { 0x9012, 0x0A42, 0xffff,0xffff},
1179 { 0x9014, 0x06A4, 0xffff,0xffff},
1180 { 0x9016, 0xDA34, 0xffff,0xffff},
1181 { 0x9018, 0xD113, 0xffff,0xffff},
1182 { 0x901A, 0xD514, 0xffff,0xffff},
1183 { 0x901C, 0x76A9, 0xffff,0xffff},
1184 { 0x901E, 0x0FD6, 0xffff,0xffff},
1185 { 0x9020, 0x0664, 0xffff,0xffff},
1186 { 0x9022, 0x70C9, 0xffff,0xffff},
1187 { 0x9024, 0xD012, 0xffff,0xffff},
1188 { 0x9026, 0xA504, 0xffff,0xffff},
1189 { 0x9028, 0xD012, 0xffff,0xffff},
1190 { 0x902A, 0x0295, 0xffff,0xffff},
1191 { 0x902C, 0x06A4, 0xffff,0xffff},
1192 { 0x902E, 0xA0C0, 0xffff,0xffff},
1193 { 0x9030, 0xC0F1, 0xffff,0xffff},
1194 { 0x9032, 0xC5E1, 0xffff,0xffff},
1195 { 0x9034, 0xD50D, 0xffff,0xffff},
1196 { 0x9036, 0xD110, 0xffff,0xffff},
1197 { 0x9038, 0x2540, 0xffff,0xffff},
1198 { 0x903A, 0x1D00, 0xffff,0xffff},
1199 { 0x903C, 0x0FB6, 0xffff,0xffff},
1200 { 0x903E, 0x0664, 0xffff,0xffff},
1201 { 0x9040, 0xDA50, 0xffff,0xffff},
1202 { 0x9042, 0xD00E, 0xffff,0xffff},
1203 { 0x9044, 0x2540, 0xffff,0xffff},
1204 { 0x9046, 0x1D01, 0xffff,0xffff},
1205 { 0x9048, 0xA517, 0xffff,0xffff},
1206 { 0x904A, 0xD00D, 0xffff,0xffff},
1207 { 0x904C, 0x0279, 0xffff,0xffff},
1208 { 0x904E, 0x06A4, 0xffff,0xffff},
1209 { 0x9050, 0xA020, 0xffff,0xffff},
1210 { 0x9052, 0x78E0, 0xffff,0xffff},
1211 { 0x9054, 0xFF80, 0xffff,0xffff},
1212 { 0x9056, 0x07A8, 0xffff,0xffff},
1213 { 0x9058, 0xFF80, 0xffff,0xffff},
1214 { 0x905A, 0x0290, 0xffff,0xffff},
1215 { 0x905C, 0x8000, 0xffff,0xffff},
1216 { 0x905E, 0x0008, 0xffff,0xffff},
1217 { 0x9060, 0xFF80, 0xffff,0xffff},
1218 { 0x9062, 0x02CC, 0xffff,0xffff},
1219 { 0x9064, 0x0000, 0xffff,0xffff},
1220 { 0x9066, 0xFA88, 0xffff,0xffff},
1221 { 0x9068, 0xFF80, 0xffff,0xffff},
1222 { 0x906A, 0x1168, 0xffff,0xffff},
1223 { 0x906C, 0xFF80, 0xffff,0xffff},
1224 { 0x906E, 0x0FD4, 0xffff,0xffff},
1225 { 0x9070, 0x8000, 0xffff,0xffff},
1226 { 0x9072, 0x0194, 0xffff,0xffff},
1227 { 0x9074, 0x0000, 0xffff,0xffff},
1228 { 0x9076, 0xFB08, 0xffff,0xffff},
1229 { 0x9078, 0xFF80, 0xffff,0xffff},
1230 { 0x907A, 0x0FA0, 0xffff,0xffff},
1231 { 0x907C, 0x8000, 0xffff,0xffff},
1232 { 0x907E, 0x01A0, 0xffff,0xffff},
1233 { 0x9080, 0xE280, 0xffff,0xffff},
1234 { 0x9082, 0x24CA, 0xffff,0xffff},
1235 { 0x9084, 0x7082, 0xffff,0xffff},
1236 { 0x9086, 0x78E0, 0xffff,0xffff},
1237 { 0x9088, 0x20E8, 0xffff,0xffff},
1238 { 0x908A, 0x01A2, 0xffff,0xffff},
1239 { 0x908C, 0x1002, 0xffff,0xffff},
1240 { 0x908E, 0x0D02, 0xffff,0xffff},
1241 { 0x9090, 0x1902, 0xffff,0xffff},
1242 { 0x9092, 0x0094, 0xffff,0xffff},
1243 { 0x9094, 0x7FE0, 0xffff,0xffff},
1244 { 0x9096, 0x7028, 0xffff,0xffff},
1245 { 0x9098, 0x7308, 0xffff,0xffff},
1246 { 0x909A, 0x1000, 0xffff,0xffff},
1247 { 0x909C, 0x0900, 0xffff,0xffff},
1248 { 0x909E, 0x7904, 0xffff,0xffff},
1249 { 0x90A0, 0x7947, 0xffff,0xffff},
1250 { 0x90A2, 0x1B00, 0xffff,0xffff},
1251 { 0x90A4, 0x0064, 0xffff,0xffff},
1252 { 0x90A6, 0x7EE0, 0xffff,0xffff},
1253 { 0x90A8, 0xE280, 0xffff,0xffff},
1254 { 0x90AA, 0x24CA, 0xffff,0xffff},
1255 { 0x90AC, 0x7082, 0xffff,0xffff},
1256 { 0x90AE, 0x78E0, 0xffff,0xffff},
1257 { 0x90B0, 0x20E8, 0xffff,0xffff},
1258 { 0x90B2, 0x01A2, 0xffff,0xffff},
1259 { 0x90B4, 0x1102, 0xffff,0xffff},
1260 { 0x90B6, 0x0502, 0xffff,0xffff},
1261 { 0x90B8, 0x1802, 0xffff,0xffff},
1262 { 0x90BA, 0x00B4, 0xffff,0xffff},
1263 { 0x90BC, 0x7FE0, 0xffff,0xffff},
1264 { 0x90BE, 0x7028, 0xffff,0xffff},
1265 { 0x90C0, 0x0000, 0xffff,0xffff},
1266 { 0x90C2, 0x0000, 0xffff,0xffff},
1267 { 0x90C4, 0x0000, 0xffff,0xffff},
1268 { 0x90C6, 0x0000, 0xffff,0xffff},
1269 { 0x098E, 0x0000, 0xffff,0xffff},       // LOGICAL_ADDRESS_ACCESS
1270 { 0x8016, 0x086C, 0xffff,0xffff},       // MON_ADDRESS_LO
1271 { 0x8018, 0xFF80, 0xffff,0xffff},       // MON_ADDRESS_HI
1272 { 0x8002, 0x0001, 0xffff,0xffff},       // MON_CMD
1273 //delay = 100
1274 SensorWaitMs(100),
1275 //[Lens Correction 90% 02/04/13 18:03:18]                           
1276 //BITFIELD= 0x3210, 0x0008, 0 //PGA_ENABLE                          
1277 { 0x3210, 0x0008, 0xffff,0xffff},                                   
1278 { 0x3210, 0x49B0, 0xffff,0xffff},       // COLOR_PIPELINE_CONTROL         
1279 { 0x3640, 0x0170, 0xffff,0xffff},       // P_G1_P0Q0                      
1280 { 0x3642, 0x0BCC, 0xffff,0xffff},       // P_G1_P0Q1                      
1281 { 0x3644, 0x7210, 0xffff,0xffff},       // P_G1_P0Q2                      
1282 { 0x3646, 0x4C8D, 0xffff,0xffff},       // P_G1_P0Q3                      
1283 { 0x3648, 0xF58D, 0xffff,0xffff},       // P_G1_P0Q4                      
1284 { 0x364A, 0x0610, 0xffff,0xffff},       // P_R_P0Q0                       
1285 { 0x364C, 0x8D6E, 0xffff,0xffff},       // P_R_P0Q1                       
1286 { 0x364E, 0x6E90, 0xffff,0xffff},       // P_R_P0Q2                       
1287 { 0x3650, 0x088F, 0xffff,0xffff},       // P_R_P0Q3                       
1288 { 0x3652, 0xA890, 0xffff,0xffff},       // P_R_P0Q4                       
1289 { 0x3654, 0x0550, 0xffff,0xffff},       // P_B_P0Q0                       
1290 { 0x3656, 0x764C, 0xffff,0xffff},       // P_B_P0Q1                       
1291 { 0x3658, 0x0FB0, 0xffff,0xffff},       // P_B_P0Q2                       
1292 { 0x365A, 0x9A0D, 0xffff,0xffff},       // P_B_P0Q3                       
1293 { 0x365C, 0xF4AD, 0xffff,0xffff},       // P_B_P0Q4                       
1294 { 0x365E, 0x02F0, 0xffff,0xffff},       // P_G2_P0Q0                      
1295 { 0x3660, 0x9A0E, 0xffff,0xffff},       // P_G2_P0Q1                      
1296 { 0x3662, 0x77B0, 0xffff,0xffff},       // P_G2_P0Q2                      
1297 { 0x3664, 0x416D, 0xffff,0xffff},       // P_G2_P0Q3                      
1298 { 0x3666, 0xF24D, 0xffff,0xffff},       // P_G2_P0Q4                      
1299 { 0x3680, 0x018A, 0xffff,0xffff},       // P_G1_P1Q0                      
1300 { 0x3682, 0xD0AD, 0xffff,0xffff},       // P_G1_P1Q1                      
1301 { 0x3684, 0xC62E, 0xffff,0xffff},       // P_G1_P1Q2                      
1302 { 0x3686, 0x736D, 0xffff,0xffff},       // P_G1_P1Q3                      
1303 { 0x3688, 0x0130, 0xffff,0xffff},       // P_G1_P1Q4                      
1304 { 0x368A, 0x52ED, 0xffff,0xffff},       // P_R_P1Q0                       
1305 { 0x368C, 0x682D, 0xffff,0xffff},       // P_R_P1Q1                       
1306 { 0x368E, 0xF02B, 0xffff,0xffff},       // P_R_P1Q2                       
1307 { 0x3690, 0xB68E, 0xffff,0xffff},       // P_R_P1Q3                       
1308 { 0x3692, 0xF4AD, 0xffff,0xffff},       // P_R_P1Q4                       
1309 { 0x3694, 0xC68D, 0xffff,0xffff},       // P_B_P1Q0                       
1310 { 0x3696, 0x440D, 0xffff,0xffff},       // P_B_P1Q1                       
1311 { 0x3698, 0x416E, 0xffff,0xffff},       // P_B_P1Q2                       
1312 { 0x369A, 0xC0CE, 0xffff,0xffff},       // P_B_P1Q3                       
1313 { 0x369C, 0xB46D, 0xffff,0xffff},       // P_B_P1Q4                       
1314 { 0x369E, 0xD90A, 0xffff,0xffff},       // P_G2_P1Q0                      
1315 { 0x36A0, 0xD76D, 0xffff,0xffff},       // P_G2_P1Q1                      
1316 { 0x36A2, 0xFE0D, 0xffff,0xffff},       // P_G2_P1Q2                      
1317 { 0x36A4, 0x0E0D, 0xffff,0xffff},       // P_G2_P1Q3                      
1318 { 0x36A6, 0x0890, 0xffff,0xffff},       // P_G2_P1Q4                      
1319 { 0x36C0, 0x70D0, 0xffff,0xffff},       // P_G1_P2Q0                      
1320 { 0x36C2, 0x10CF, 0xffff,0xffff},       // P_G1_P2Q1                      
1321 { 0x36C4, 0x4592, 0xffff,0xffff},       // P_G1_P2Q2                      
1322 { 0x36C6, 0xB74D, 0xffff,0xffff},       // P_G1_P2Q3                      
1323 { 0x36C8, 0xEEB3, 0xffff,0xffff},       // P_G1_P2Q4                      
1324 { 0x36CA, 0x1991, 0xffff,0xffff},       // P_R_P2Q0                       
1325 { 0x36CC, 0x9B8E, 0xffff,0xffff},       // P_R_P2Q1                       
1326 { 0x36CE, 0x5DCD, 0xffff,0xffff},       // P_R_P2Q2                       
1327 { 0x36D0, 0x1C8D, 0xffff,0xffff},       // P_R_P2Q3                       
1328 { 0x36D2, 0x8C71, 0xffff,0xffff},       // P_R_P2Q4                       
1329 { 0x36D4, 0x00F1, 0xffff,0xffff},       // P_B_P2Q0                       
1330 { 0x36D6, 0x480F, 0xffff,0xffff},       // P_B_P2Q1                       
1331 { 0x36D8, 0x26AF, 0xffff,0xffff},       // P_B_P2Q2                       
1332 { 0x36DA, 0xC2EF, 0xffff,0xffff},       // P_B_P2Q3                       
1333 { 0x36DC, 0xFC8F, 0xffff,0xffff},       // P_B_P2Q4                       
1334 { 0x36DE, 0x0071, 0xffff,0xffff},       // P_G2_P2Q0                      
1335 { 0x36E0, 0x8230, 0xffff,0xffff},       // P_G2_P2Q1                      
1336 { 0x36E2, 0x60B2, 0xffff,0xffff},       // P_G2_P2Q2                      
1337 { 0x36E4, 0x3E51, 0xffff,0xffff},       // P_G2_P2Q3                      
1338 { 0x36E6, 0x8C74, 0xffff,0xffff},       // P_G2_P2Q4                      
1339 { 0x3700, 0x492E, 0xffff,0xffff},       // P_G1_P3Q0                      
1340 { 0x3702, 0x7FAD, 0xffff,0xffff},       // P_G1_P3Q1                      
1341 { 0x3704, 0x93CE, 0xffff,0xffff},       // P_G1_P3Q2                      
1342 { 0x3706, 0xC86F, 0xffff,0xffff},       // P_G1_P3Q3                      
1343 { 0x3708, 0xC830, 0xffff,0xffff},       // P_G1_P3Q4                      
1344 { 0x370A, 0x610E, 0xffff,0xffff},       // P_R_P3Q0                       
1345 { 0x370C, 0x8EC8, 0xffff,0xffff},       // P_R_P3Q1                       
1346 { 0x370E, 0xA930, 0xffff,0xffff},       // P_R_P3Q2                       
1347 { 0x3710, 0xE88D, 0xffff,0xffff},       // P_R_P3Q3                       
1348 { 0x3712, 0x2B51, 0xffff,0xffff},       // P_R_P3Q4                       
1349 { 0x3714, 0xDECD, 0xffff,0xffff},       // P_B_P3Q0                       
1350 { 0x3716, 0xBD8E, 0xffff,0xffff},       // P_B_P3Q1                       
1351 { 0x3718, 0x2E50, 0xffff,0xffff},       // P_B_P3Q2                       
1352 { 0x371A, 0x60AF, 0xffff,0xffff},       // P_B_P3Q3                       
1353 { 0x371C, 0xBB11, 0xffff,0xffff},       // P_B_P3Q4                       
1354 { 0x371E, 0x22CB, 0xffff,0xffff},       // P_G2_P3Q0                      
1355 { 0x3720, 0xEEEC, 0xffff,0xffff},       // P_G2_P3Q1                      
1356 { 0x3722, 0x0251, 0xffff,0xffff},       // P_G2_P3Q2                      
1357 { 0x3724, 0x142D, 0xffff,0xffff},       // P_G2_P3Q3                      
1358 { 0x3726, 0xE271, 0xffff,0xffff},       // P_G2_P3Q4                      
1359 { 0x3740, 0x1D10, 0xffff,0xffff},       // P_G1_P4Q0                      
1360 { 0x3742, 0xE94F, 0xffff,0xffff},       // P_G1_P4Q1                      
1361 { 0x3744, 0x8735, 0xffff,0xffff},       // P_G1_P4Q2                      
1362 { 0x3746, 0xC2CC, 0xffff,0xffff},       // P_G1_P4Q3                      
1363 { 0x3748, 0x23F6, 0xffff,0xffff},       // P_G1_P4Q4                      
1364 { 0x374A, 0xE90F, 0xffff,0xffff},       // P_R_P4Q0                       
1365 { 0x374C, 0x1A30, 0xffff,0xffff},       // P_R_P4Q1                       
1366 { 0x374E, 0xAEF3, 0xffff,0xffff},       // P_R_P4Q2                       
1367 { 0x3750, 0xB2F2, 0xffff,0xffff},       // P_R_P4Q3                       
1368 { 0x3752, 0x2195, 0xffff,0xffff},       // P_R_P4Q4                       
1369 { 0x3754, 0xFFEE, 0xffff,0xffff},       // P_B_P4Q0                       
1370 { 0x3756, 0xD8D0, 0xffff,0xffff},       // P_B_P4Q1                       
1371 { 0x3758, 0xCC92, 0xffff,0xffff},       // P_B_P4Q2                       
1372 { 0x375A, 0x0451, 0xffff,0xffff},       // P_B_P4Q3                       
1373 { 0x375C, 0x5814, 0xffff,0xffff},       // P_B_P4Q4                       
1374 { 0x375E, 0x2470, 0xffff,0xffff},       // P_G2_P4Q0                      
1375 { 0x3760, 0x6151, 0xffff,0xffff},       // P_G2_P4Q1                      
1376 { 0x3762, 0x9555, 0xffff,0xffff},       // P_G2_P4Q2                      
1377 { 0x3764, 0xD5D3, 0xffff,0xffff},       // P_G2_P4Q3                      
1378 { 0x3766, 0x3B56, 0xffff,0xffff},       // P_G2_P4Q4                      
1379 { 0x3782, 0x03DC, 0xffff,0xffff},       // CENTER_ROW                     
1380 { 0x3784, 0x04E0, 0xffff,0xffff},       // CENTER_COLUMN                  
1381 { 0x3210, 0x49B8, 0xffff,0xffff},       // COLOR_PIPELINE_CONTROL         
1382 //BITFIELD= 0x3210, 0x0008, 1 //PGA_ENABLE                          
1383 //{ 0x3210, 0x0008, 0xffff,0xffff},                 
1384
1385
1386
1387 //[*********Step6************] 
1388 //[Step6-AWB_CCM]              
1389 //[AWB_setup]                  
1390
1391 { 0xAC01, 0xBB, 0xffff,0xff},   // AWB_MODE   
1392 //[CCM]
1393 { 0xAC46, 0x0221, 0xffff,0xffff},       // AWB_LEFT_CCM_0
1394 { 0xAC48, 0xFEAE, 0xffff,0xffff},       // AWB_LEFT_CCM_1
1395 { 0xAC4A, 0x0032, 0xffff,0xffff},       // AWB_LEFT_CCM_2
1396 { 0xAC4C, 0xFFC5, 0xffff,0xffff},       // AWB_LEFT_CCM_3
1397 { 0xAC4E, 0x0154, 0xffff,0xffff},       // AWB_LEFT_CCM_4
1398 { 0xAC50, 0xFFE7, 0xffff,0xffff},       // AWB_LEFT_CCM_5
1399 { 0xAC52, 0xFFB1, 0xffff,0xffff},       // AWB_LEFT_CCM_6
1400 { 0xAC54, 0xFEC5, 0xffff,0xffff},       // AWB_LEFT_CCM_7
1401 { 0xAC56, 0x028A, 0xffff,0xffff},       // AWB_LEFT_CCM_8
1402 { 0xAC58, 0x00C6, 0xffff,0xffff},       // AWB_LEFT_CCM_R2BRATIO
1403 { 0xAC5C, 0x01CD, 0xffff,0xffff},       // AWB_RIGHT_CCM_0
1404 { 0xAC5E, 0xFF63, 0xffff,0xffff},       // AWB_RIGHT_CCM_1
1405 { 0xAC60, 0xFFD0, 0xffff,0xffff},       // AWB_RIGHT_CCM_2
1406 { 0xAC62, 0xFFCD, 0xffff,0xffff},       // AWB_RIGHT_CCM_3
1407 { 0xAC64, 0x013B, 0xffff,0xffff},       // AWB_RIGHT_CCM_4
1408 { 0xAC66, 0xFFF8, 0xffff,0xffff},       // AWB_RIGHT_CCM_5
1409 { 0xAC68, 0xFFFB, 0xffff,0xffff},       // AWB_RIGHT_CCM_6
1410 { 0xAC6A, 0xFF78, 0xffff,0xffff},       // AWB_RIGHT_CCM_7
1411 { 0xAC6C, 0x018D, 0xffff,0xffff},       // AWB_RIGHT_CCM_8
1412 { 0xAC6E, 0x0055, 0xffff,0xffff},       // AWB_RIGHT_CCM_R2BRATIO
1413
1414 //[AWB]
1415 { 0xB842, 0x0037, 0xffff,0xffff},       // STAT_AWB_GRAY_CHECKER_OFFSET_X
1416 { 0xB844, 0x0044, 0xffff,0xffff},       // STAT_AWB_GRAY_CHECKER_OFFSET_Y
1417 { 0x3240, 0x0024, 0xffff,0xffff},       // AWB_XY_SCALE
1418 { 0x3240, 0x0024, 0xffff,0xffff},       // AWB_XY_SCALE
1419 { 0x3242, 0x0000, 0xffff,0xffff},       // AWB_WEIGHT_R0
1420 { 0x3244, 0x0000, 0xffff,0xffff},       // AWB_WEIGHT_R1
1421 { 0x3246, 0x0000, 0xffff,0xffff},       // AWB_WEIGHT_R2
1422 { 0x3248, 0x7F00, 0xffff,0xffff},       // AWB_WEIGHT_R3
1423 { 0x324A, 0xA500, 0xffff,0xffff},       // AWB_WEIGHT_R4
1424 { 0x324C, 0x1540, 0xffff,0xffff},       // AWB_WEIGHT_R5
1425 { 0x324E, 0x01AC, 0xffff,0xffff},       // AWB_WEIGHT_R6
1426 { 0x3250, 0x003E, 0xffff,0xffff},       // AWB_WEIGHT_R7
1427
1428 //[Preawb_params]
1429 { 0xACB0, 0x32, 0xffff,0xff},   // AWB_RG_MIN
1430 { 0xACB1, 0x5A, 0xffff,0xff},   // AWB_RG_MAX
1431 { 0xACB2, 0x32, 0xffff,0xff},   // AWB_RG_MIN_BRIGHT
1432 { 0xACB3, 0x5A, 0xffff,0xff},   // AWB_RG_MAX_BRIGHT
1433 { 0xACB4, 0x23, 0xffff,0xff},   // AWB_BG_MIN
1434 { 0xACB5, 0x55, 0xffff,0xff},   // AWB_BG_MAX
1435 { 0xACB6, 0x49, 0xffff,0xff},   // AWB_BG_MIN_BRIGHT
1436 { 0xACB7, 0x55, 0xffff,0xff},   // AWB_BG_MAX_BRIGHT 
1437
1438 //[**********Step7*************] 
1439 //[Step7-CPIPE_Calibration]      
1440                                  
1441 //[jpeg_setup]                   
1442
1443 { 0xD80F, 0x04, 0xffff,0xff},   // JPEG_QSCALE_0
1444 { 0xD810, 0x08, 0xffff,0xff},   // JPEG_QSCALE_1
1445 { 0xC8D2, 0x04, 0xffff,0xff},   // CAM_OUTPUT_1_JPEG_QSCALE_0
1446 { 0xC8D3, 0x08, 0xffff,0xff},   // CAM_OUTPUT_1_JPEG_QSCALE_1
1447 { 0xC8BC, 0x04, 0xffff,0xff},   // CAM_OUTPUT_0_JPEG_QSCALE_0
1448 { 0xC8BD, 0x08, 0xffff,0xff},   // CAM_OUTPUT_0_JPEG_QSCALE_1
1449
1450 //[Sys_Settings]
1451 { 0xDC35, 0x04, 0xffff,0xff},   // SYS_UV_COLOR_BOOST
1452 { 0x326E, 0x0006, 0xffff,0xffff},       // RESERVED_SOC1_326E
1453 { 0xDC37, 0x62, 0xffff,0xff},   // SYS_BRIGHT_COLORKILL
1454 { 0x35A4, 0x0596, 0xffff,0xffff},       // BRIGHT_COLOR_KILL_CONTROLS
1455 { 0x35A2, 0x0094, 0xffff,0xffff},       // DARK_COLOR_KILL_CONTROLS
1456 { 0xDC36, 0x23, 0xffff,0xff},   // SYS_DARK_COLOR_KILL
1457
1458 //[Gamma_Curves_REV3]
1459 { 0xBC18, 0x00, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_0
1460 { 0xBC19, 0x11, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_1
1461 { 0xBC1A, 0x23, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_2
1462 { 0xBC1B, 0x3F, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_3
1463 { 0xBC1C, 0x67, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_4
1464 { 0xBC1D, 0x85, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_5
1465 { 0xBC1E, 0x9B, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_6
1466 { 0xBC1F, 0xAD, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_7
1467 { 0xBC20, 0xBB, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_8
1468 { 0xBC21, 0xC7, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_9
1469 { 0xBC22, 0xD1, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_10
1470 { 0xBC23, 0xDA, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_11
1471 { 0xBC24, 0xE1, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_12
1472 { 0xBC25, 0xE8, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_13
1473 { 0xBC26, 0xEE, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_14
1474 { 0xBC27, 0xF3, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_15
1475 { 0xBC28, 0xF7, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_16
1476 { 0xBC29, 0xFB, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_17
1477 { 0xBC2A, 0xFF, 0xffff,0xff},   // LL_GAMMA_CONTRAST_CURVE_18
1478 { 0xBC2B, 0x00, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_0
1479 { 0xBC2C, 0x11, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_1
1480 { 0xBC2D, 0x23, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_2
1481 { 0xBC2E, 0x3F, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_3
1482 { 0xBC2F, 0x67, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_4
1483 { 0xBC30, 0x85, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_5
1484 { 0xBC31, 0x9B, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_6
1485 { 0xBC32, 0xAD, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_7
1486 { 0xBC33, 0xBB, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_8
1487 { 0xBC34, 0xC7, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_9
1488 { 0xBC35, 0xD1, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_10
1489 { 0xBC36, 0xDA, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_11
1490 { 0xBC37, 0xE1, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_12
1491 { 0xBC38, 0xE8, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_13
1492 { 0xBC39, 0xEE, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_14
1493 { 0xBC3A, 0xF3, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_15
1494 { 0xBC3B, 0xF7, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_16
1495 { 0xBC3C, 0xFB, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_17
1496 { 0xBC3D, 0xFF, 0xffff,0xff},   // LL_GAMMA_NEUTRAL_CURVE_18
1497 { 0xBC3E, 0x00, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_0
1498 { 0xBC3F, 0x05, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_1
1499 { 0xBC40, 0x0F, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_2
1500 { 0xBC41, 0x21, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_3
1501 { 0xBC42, 0x3C, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_4
1502 { 0xBC43, 0x52, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_5
1503 { 0xBC44, 0x67, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_6
1504 { 0xBC45, 0x7B, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_7
1505 { 0xBC46, 0x8D, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_8
1506 { 0xBC47, 0x9E, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_9
1507 { 0xBC48, 0xAD, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_10
1508 { 0xBC49, 0xBA, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_11
1509 { 0xBC4A, 0xC6, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_12
1510 { 0xBC4B, 0xD1, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_13
1511 { 0xBC4C, 0xDC, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_14
1512 { 0xBC4D, 0xE5, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_15
1513 { 0xBC4E, 0xEE, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_16
1514 { 0xBC4F, 0xF7, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_17
1515 { 0xBC50, 0xFF, 0xffff,0xff},   // LL_GAMMA_NR_CURVE_18
1516
1517 //[BM_Dampening]
1518 { 0xB801, 0xE0, 0xffff,0xff},   // STAT_MODE
1519 { 0xB862, 0x04, 0xffff,0xff},   // STAT_BMTRACKING_SPEED
1520
1521 //[AE]
1522 { 0xB829, 0x02, 0xffff,0xff},   // STAT_LL_BRIGHTNESS_METRIC_DIVISOR
1523 { 0xB863, 0x02, 0xffff,0xff},   // STAT_BM_MUL
1524 { 0xB827, 0x0F, 0xffff,0xff},   // STAT_AE_EV_SHIFT
1525 { 0xA409, 0x42, 0xffff,0xff},   // AE_RULE_BASE_TARGET
1526
1527 //[BM_GM_Start_Stop] 
1528 { 0xBC52, 0x00C8, 0xffff,0xffff},       // LL_START_BRIGHTNESS_METRIC
1529 { 0xBC54, 0x0A28, 0xffff,0xffff},       // LL_END_BRIGHTNESS_METRIC
1530 { 0xBC58, 0x00C8, 0xffff,0xffff},       // LL_START_GAIN_METRIC
1531 { 0xBC5A, 0x12C0, 0xffff,0xffff},       // LL_END_GAIN_METRIC
1532 { 0xBC5E, 0x00FA, 0xffff,0xffff},       // LL_START_APERTURE_GAIN_BM
1533 { 0xBC60, 0x0258, 0xffff,0xffff},       // LL_END_APERTURE_GAIN_BM
1534 { 0xBC66, 0x00FA, 0xffff,0xffff},       // LL_START_APERTURE_GM
1535 { 0xBC68, 0x0258, 0xffff,0xffff},       // LL_END_APERTURE_GM
1536 { 0xBC86, 0x00C8, 0xffff,0xffff},       // LL_START_FFNR_GM
1537 { 0xBC88, 0x0640, 0xffff,0xffff},       // LL_END_FFNR_GM
1538 { 0xBCBC, 0x0040, 0xffff,0xffff},       // LL_SFFB_START_GAIN
1539 { 0xBCBE, 0x01FC, 0xffff,0xffff},       // LL_SFFB_END_GAIN
1540 { 0xBCCC, 0x00C8, 0xffff,0xffff},       // LL_SFFB_START_MAX_GM
1541 { 0xBCCE, 0x0640, 0xffff,0xffff},       // LL_SFFB_END_MAX_GM
1542 { 0xBC90, 0x00C8, 0xffff,0xffff},       // LL_START_GRB_GM
1543 { 0xBC92, 0x0640, 0xffff,0xffff},       // LL_END_GRB_GM
1544 { 0xBC0E, 0x0001, 0xffff,0xffff},       // LL_GAMMA_CURVE_ADJ_START_POS
1545 { 0xBC10, 0x0002, 0xffff,0xffff},       // LL_GAMMA_CURVE_ADJ_MID_POS
1546 { 0xBC12, 0x02BC, 0xffff,0xffff},       // LL_GAMMA_CURVE_ADJ_END_POS
1547 { 0xBCAA, 0x044C, 0xffff,0xffff},       // LL_CDC_THR_ADJ_START_POS
1548 { 0xBCAC, 0x00AF, 0xffff,0xffff},       // LL_CDC_THR_ADJ_MID_POS
1549 { 0xBCAE, 0x0009, 0xffff,0xffff},       // LL_CDC_THR_ADJ_END_POS
1550 { 0xBCD8, 0x00C8, 0xffff,0xffff},       // LL_PCR_START_BM
1551 { 0xBCDA, 0x0A28, 0xffff,0xffff},       // LL_PCR_END_BM
1552
1553 //[Kernel]
1554 { 0x3380, 0x0504, 0xffff,0xffff},       // KERNEL_CONFIG
1555
1556 //[GRB]
1557 { 0xBC94, 0x0C, 0xffff,0xff},   // LL_GB_START_THRESHOLD_0
1558 { 0xBC95, 0x08, 0xffff,0xff},   // LL_GB_START_THRESHOLD_1
1559 { 0xBC9C, 0x3C, 0xffff,0xff},   // RESERVED_LL_9C
1560 { 0xBC9D, 0x28, 0xffff,0xff},   // RESERVED_LL_9D
1561
1562 //[Demosaic_REV3]
1563 { 0x33B0, 0x2A16, 0xffff,0xffff},       // FFNR_ALPHA_BETA
1564 { 0xBC8A, 0x02, 0xffff,0xff},   // LL_START_FF_MIX_THRESH_Y
1565 { 0xBC8B, 0x0F, 0xffff,0xff},   // LL_END_FF_MIX_THRESH_Y
1566 { 0xBC8C, 0xFF, 0xffff,0xff},   // LL_START_FF_MIX_THRESH_YGAIN
1567 { 0xBC8D, 0xFF, 0xffff,0xff},   // LL_END_FF_MIX_THRESH_YGAIN
1568 { 0xBC8E, 0xFF, 0xffff,0xff},   // LL_START_FF_MIX_THRESH_GAIN
1569 { 0xBC8F, 0x00, 0xffff,0xff},   // LL_END_FF_MIX_THRESH_GAIN
1570
1571 //[CDC]
1572 { 0xBCB2, 0x20, 0xffff,0xff},   // LL_CDC_DARK_CLUS_SLOPE
1573 { 0xBCB3, 0x3A, 0xffff,0xff},   // LL_CDC_DARK_CLUS_SATUR
1574 { 0xBCB4, 0x39, 0xffff,0xff},   // RESERVED_LL_B4
1575 { 0xBCB7, 0x39, 0xffff,0xff},   // RESERVED_LL_B7
1576 { 0xBCB5, 0x20, 0xffff,0xff},   // RESERVED_LL_B5
1577 { 0xBCB8, 0x3A, 0xffff,0xff},   // RESERVED_LL_B8
1578 { 0xBCB6, 0x80, 0xffff,0xff},   // RESERVED_LL_B6
1579 { 0xBCB9, 0x24, 0xffff,0xff},   // RESERVED_LL_B9
1580 { 0xBCAA, 0x03E8, 0xffff,0xffff},       // LL_CDC_THR_ADJ_START_POS
1581 { 0xBCAC, 0x012C, 0xffff,0xffff},       // LL_CDC_THR_ADJ_MID_POS
1582 { 0xBCAE, 0x0009, 0xffff,0xffff},       // LL_CDC_THR_ADJ_END_POS
1583
1584 //[Aperture_calib]
1585 { 0x33BA, 0x0084, 0xffff,0xffff},       // APEDGE_CONTROL
1586 { 0x33BE, 0x0000, 0xffff,0xffff},       // UA_KNEE_L
1587 { 0x33C2, 0x8800, 0xffff,0xffff},       // UA_WEIGHTS
1588 { 0xBC5E, 0x0154, 0xffff,0xffff},       // LL_START_APERTURE_GAIN_BM
1589 { 0xBC60, 0x0640, 0xffff,0xffff},       // LL_END_APERTURE_GAIN_BM
1590 { 0xBC62, 0x0E, 0xffff,0xff},   // LL_START_APERTURE_KPGAIN
1591 { 0xBC63, 0x14, 0xffff,0xff},   // LL_END_APERTURE_KPGAIN
1592 { 0xBC64, 0x0E, 0xffff,0xff},   // LL_START_APERTURE_KNGAIN
1593 { 0xBC65, 0x14, 0xffff,0xff},   // LL_END_APERTURE_KNGAIN
1594 { 0xBCE2, 0x0A, 0xffff,0xff},   // LL_START_POS_KNEE
1595 { 0xBCE3, 0x2B, 0xffff,0xff},   // LL_END_POS_KNEE
1596 { 0xBCE4, 0x0A, 0xffff,0xff},   // LL_START_NEG_KNEE
1597 { 0xBCE5, 0x2B, 0xffff,0xff},   // LL_END_NEG_KNEE
1598 { 0x3210, 0x49B8, 0xffff,0xffff},       // COLOR_PIPELINE_CONTROL
1599
1600 //[SFFB_REV3_noisemodel]
1601 { 0xBCC0, 0x1F, 0xffff,0xff},   // LL_SFFB_RAMP_START
1602 { 0xBCC1, 0x03, 0xffff,0xff},   // LL_SFFB_RAMP_STOP
1603 { 0xBCC2, 0x2C, 0xffff,0xff},   // LL_SFFB_SLOPE_START
1604 { 0xBCC3, 0x10, 0xffff,0xff},   // LL_SFFB_SLOPE_STOP
1605 { 0xBCC4, 0x07, 0xffff,0xff},   // LL_SFFB_THSTART
1606 { 0xBCC5, 0x0B, 0xffff,0xff},   // LL_SFFB_THSTOP
1607 { 0xBCBA, 0x0009, 0xffff,0xffff},       // LL_SFFB_CONFIG
1608
1609 //[**********Step8*************]  
1610 //[FTB_Off]                       
1611 { 0xBC14, 0xFFFE, 0xffff,0xffff},       // LL_GAMMA_FADE_TO_BLACK_START_POS
1612 { 0xBC16, 0xFFFE, 0xffff,0xffff},       // LL_GAMMA_FADE_TO_BLACK_END_POS
1613
1614 //[Aperture_preference]
1615 { 0xBC66, 0x0154, 0xffff,0xffff},       // LL_START_APERTURE_GM
1616 { 0xBC68, 0x07D0, 0xffff,0xffff},       // LL_END_APERTURE_GM
1617 { 0xBC6A, 0x04, 0xffff,0xff},   // LL_START_APERTURE_INTEGER_GAIN
1618 { 0xBC6B, 0x00, 0xffff,0xff},   // LL_END_APERTURE_INTEGER_GAIN
1619 { 0xBC6C, 0x00, 0xffff,0xff},   // LL_START_APERTURE_EXP_GAIN
1620 { 0xBC6D, 0x00, 0xffff,0xff},   // LL_END_APERTURE_EXP_GAIN
1621
1622 //[Gain_max]
1623 { 0xA81C, 0x0040, 0xffff,0xffff},       // AE_TRACK_MIN_AGAIN
1624 { 0xA820, 0x012C, 0xffff,0xffff},       // AE_TRACK_MAX_AGAIN
1625 { 0xA822, 0x0060, 0xffff,0xffff},       // AE_TRACK_MIN_DGAIN
1626 { 0xA824, 0x00E5, 0xffff,0xffff},       // AE_TRACK_MAX_DGAIN
1627
1628 //[Saturation_REV3]
1629 { 0xBC56, 0x64, 0xffff,0xff},   // LL_START_CCM_SATURATION
1630 { 0xBC57, 0x1E, 0xffff,0xff},   // LL_END_CCM_SATURATION
1631
1632 //[DCCM_REV3]
1633 { 0xBCDE, 0x03, 0xffff,0xff},   // LL_START_SYS_THRESHOLD
1634 { 0xBCDF, 0x50, 0xffff,0xff},   // LL_STOP_SYS_THRESHOLD
1635 { 0xBCE0, 0x08, 0xffff,0xff},   // LL_START_SYS_GAIN
1636 { 0xBCE1, 0x03, 0xffff,0xff},   // LL_STOP_SYS_GAIN
1637
1638 //[Sobel_REV3]
1639 { 0xBCD0, 0x000A, 0xffff,0xffff},       // LL_SFFB_SOBEL_FLAT_START
1640 { 0xBCD2, 0x00FE, 0xffff,0xffff},       // LL_SFFB_SOBEL_FLAT_STOP
1641 { 0xBCD4, 0x001E, 0xffff,0xffff},       // LL_SFFB_SOBEL_SHARP_START
1642 { 0xBCD6, 0x00FF, 0xffff,0xffff},       // LL_SFFB_SOBEL_SHARP_STOP
1643 { 0xBCC6, 0x00, 0xffff,0xff},   // LL_SFFB_SHARPENING_START
1644 { 0xBCC7, 0x00, 0xffff,0xff},   // LL_SFFB_SHARPENING_STOP
1645 { 0xBCC8, 0x20, 0xffff,0xff},   // LL_SFFB_FLATNESS_START
1646 { 0xBCC9, 0x40, 0xffff,0xff},   // LL_SFFB_FLATNESS_STOP
1647 { 0xBCCA, 0x04, 0xffff,0xff},   // LL_SFFB_TRANSITION_START
1648 { 0xBCCB, 0x00, 0xffff,0xff},   // LL_SFFB_TRANSITION_STOP
1649
1650 //[SFFB_slope_zero_enable]
1651 { 0xBCE6, 0x03, 0xffff,0xff},   // LL_SFFB_ZERO_ENABLE
1652 { 0xBCE6, 0x03, 0xffff,0xff},   // LL_SFFB_ZERO_ENABLE
1653
1654
1655 //[AE_preference]
1656 { 0xA410, 0x04, 0xffff,0xff},   // AE_RULE_TARGET_AE_6
1657 { 0xA411, 0x06, 0xffff,0xff},   // AE_RULE_TARGET_AE_7
1658
1659
1660 //[**********Step9*************]         
1661 //[JPEG Quantization]                    
1662 //[Sepia effect]                                        
1663 { 0xDC3A, 0x23, 0xffff,0xff},   // SYS_SEPIA_CR
1664 { 0xDC3B, 0xB2, 0xffff,0xff},   // SYS_SEPIA_CB
1665
1666
1667 //[Touch Focus + Fast Focus AF_AFM_INIT]
1668 { 0x8411, 0x00, 0xffff,0xff},   // SEQ_STATE_CFG_0_AF
1669 { 0x8419, 0x04, 0xffff,0xff},   // SEQ_STATE_CFG_1_AF
1670
1671 { 0xB002, 0x0002, 0xffff,0xffff},       // AF_MODE
1672 { 0xC40A, 0x0030, 0xffff,0xffff},       // AFM_POS_MIN
1673 { 0xC40C, 0x00A0, 0xffff,0xffff},       // AFM_POS_MAX
1674 { 0xB045, 0x000C, 0xffff,0xffff},       // AF_MODE_EX
1675
1676
1677 //AF Window size
1678 { 0xB854, 0x60, 0xffff,0xff},   // STAT_SM_WINDOW_POS_X
1679 { 0xB855, 0x60, 0xffff,0xff},   // STAT_SM_WINDOW_POS_Y
1680 { 0xB856, 0x40, 0xffff,0xff},   // STAT_SM_WINDOW_SIZE_X
1681 { 0xB857, 0x40, 0xffff,0xff},   // STAT_SM_WINDOW_SIZE_Y
1682 { 0xB012, 0x0A, 0xffff,0xff},   // AF_FS_NUM_STEPS
1683 { 0xB018, 0x00, 0xffff,0xff},   // AF_FS_POS_0
1684 { 0xB019, 0x30, 0xffff,0xff},   // AF_FS_POS_1
1685 { 0xB01A, 0x48, 0xffff,0xff},   // AF_FS_POS_2
1686 { 0xB01B, 0x60, 0xffff,0xff},   // AF_FS_POS_3
1687 { 0xB01C, 0x78, 0xffff,0xff},   // AF_FS_POS_4
1688 { 0xB01D, 0x90, 0xffff,0xff},   // AF_FS_POS_5
1689 { 0xB01E, 0xA8, 0xffff,0xff},   // AF_FS_POS_6
1690 { 0xB01F, 0xC0, 0xffff,0xff},   // AF_FS_POS_7
1691 { 0xB020, 0xE0, 0xffff,0xff},   // AF_FS_POS_8
1692 { 0xB021, 0xFF, 0xffff,0xff},   // AF_FS_POS_9
1693 { 0xB022, 0x00, 0xffff,0xff},   // AF_FS_POS_10
1694 { 0xB011, 0x00, 0xffff,0xff},   // AF_FS_INIT_POS  
1695
1696 //INIT PATCH PAGE used in FF 
1697 { 0x098E, 0xD40E, 0xffff,0xffff},       // LOGICAL_ADDRESS_ACCESS
1698 { 0xD40E, 0x0000, 0xffff,0xffff},
1699 { 0xD40F, 0x0000, 0xffff,0xffff},
1700 { 0xD410, 0x0000, 0xffff,0xffff},
1701 { 0xD411, 0x0000, 0xffff,0xffff},
1702 { 0xD412, 0x0000, 0xffff,0xffff},
1703 { 0xD413, 0x0000, 0xffff,0xffff},
1704 { 0xD414, 0x0000, 0xffff,0xffff},
1705 { 0xD415, 0x0000, 0xffff,0xffff},
1706 { 0xD416, 0x0000, 0xffff,0xffff},
1707 { 0xD417, 0x0000, 0xffff,0xffff},
1708 { 0xD418, 0x0000, 0xffff,0xffff},
1709 { 0xD418, 0x0000, 0xffff,0xffff},
1710 { 0xD419, 0x0000, 0xffff,0xffff},
1711 { 0xD41A, 0x0000, 0xffff,0xffff},
1712 { 0xD41B, 0x0000, 0xffff,0xffff},
1713 { 0xD41C, 0x0000, 0xffff,0xffff},
1714 { 0xD41D, 0x0000, 0xffff,0xffff},
1715 { 0xD41E, 0x0000, 0xffff,0xffff},
1716 { 0xD420, 0x0000, 0xffff,0xffff},
1717 { 0xD406, 0x0000, 0xffff,0xffff},
1718 { 0xD407, 0x0000, 0xffff,0xffff},
1719 { 0xD422, 0x0000, 0xffff,0xffff},
1720 { 0xD423, 0x0000, 0xffff,0xffff},
1721 { 0xD424, 0x0000, 0xffff,0xffff},
1722 { 0xD425, 0x0000, 0xffff,0xffff},
1723 { 0xD426, 0x0000, 0xffff,0xffff},
1724 { 0xD427, 0x0000, 0xffff,0xffff},
1725 { 0xD428, 0x0000, 0xffff,0xffff},
1726 { 0xD429, 0x0000, 0xffff,0xffff},
1727 { 0xD42A, 0x0000, 0xffff,0xffff},
1728 { 0xD42B, 0x0000, 0xffff,0xffff},
1729 { 0xD400, 0x0001, 0xffff,0xffff},
1730 { 0xD401, 0x0000, 0xffff,0xffff},
1731 { 0xD402, 0x0028, 0xffff,0xffff},
1732 { 0xD403, 0x0080, 0xffff,0xffff},
1733 { 0xD404, 0x0000, 0xffff,0xffff},
1734 { 0xD405, 0x0000, 0xffff,0xffff},
1735 { 0xD406, 0x0000, 0xffff,0xffff},
1736 { 0xD407, 0x0000, 0xffff,0xffff},
1737 { 0xD408, 0x0030, 0xffff,0xffff},
1738 { 0xD409, 0x0040, 0xffff,0xffff},
1739 { 0xD40A, 0x0050, 0xffff,0xffff},
1740 { 0xD40B, 0x0070, 0xffff,0xffff},
1741 { 0xD40C, 0x0080, 0xffff,0xffff},
1742 { 0xD40D, 0x0090, 0xffff,0xffff},
1743
1744 { 0x0018, 0x2008, 0xffff,0xffff},       // STANDBY_CONTROL_AND_STATUS
1745
1746 SensorWaitMs(100),
1747 SensorEnd
1748
1749                                                                                                                                                                              
1750
1751 };
1752 /* Senor full resolution setting: recommand for capture */
1753 static struct rk_sensor_reg sensor_fullres_lowfps_data[] ={
1754      //capture2preview
1755         {0x098E, 0x843C, 0xffff, 0xffff},       // LOGICAL_ADDRESS_ACCESS [SEQ_STATE_CFG_5_MAX_FRAME_CNT]
1756         {0x843C, 0xFF, 0xffff, 0xff},   // SEQ_STATE_CFG_5_MAX_FRAME_CNT
1757         {0x8404, 0x02, 0xffff, 0xff},   // SEQ_CMD
1758         SensorWaitMs(200),
1759         SensorEnd
1760 };
1761 /* Senor full resolution setting: recommand for video */
1762 static struct rk_sensor_reg sensor_fullres_highfps_data[] ={
1763         SensorEnd
1764 };
1765 /* Preview resolution setting*/
1766 static struct rk_sensor_reg sensor_preview_data[] =
1767 {
1768     // Set resolution vga
1769     {0xC83A, 0x000C, 0xffff,0xffff},    // CAM_CORE_A_Y_ADDR_START
1770     {0xC83C, 0x0018, 0xffff,0xffff},    // CAM_CORE_A_X_ADDR_START
1771     {0xC83E, 0x07B1, 0xffff,0xffff },    // CAM_CORE_A_Y_ADDR_END
1772     {0xC840, 0x0A45, 0xffff,0xffff},    // CAM_CORE_A_X_ADDR_END
1773     {0xC868, 0x0423, 0xffff,0xffff},    // CAM_CORE_A_FRAME_LENGTH_LINES
1774     {0xC86A, 0x1194, 0xffff,0xffff},    // CAM_CORE_A_LINE_LENGTH_PCK
1775     {0xC86C, 0x0518, 0xffff,0xffff},    // CAM_CORE_A_OUTPUT_SIZE_WIDTH
1776     {0xC86E, 0x03D4, 0xffff,0xffff},    // CAM_CORE_A_OUTPUT_SIZE_HEIGHT
1777     {0xC870, 0x0014, 0xffff,0xffff},    // CAM_CORE_A_RX_FIFO_TRIGGER_MARK
1778     {0xC858, 0x0003, 0xffff,0xffff},    // CAM_CORE_A_COARSE_ITMIN
1779     {0xC8A4, 0x0A28, 0xffff,0xffff},    // CAM_CORE_B_OUTPUT_SIZE_WIDTH
1780     {0xC8A6, 0x07A0, 0xffff,0xffff },    // CAM_CORE_B_OUTPUT_SIZE_HEIGHT
1781     {0xC8AA, 0x0280, 0xffff,0xffff },    // CAM_OUTPUT_0_IMAGE_WIDTH
1782     {0xC8AC, 0x01E0, 0xffff,0xffff },    // CAM_OUTPUT_0_IMAGE_HEIGHT
1783     {0xC8AE, 0x0001, 0xffff,0xffff },    // CAM_OUTPUT_0_OUTPUT_FORMAT
1784     {0x8404, 0x06, 0xffff,0xff },        // SEQ_CMD
1785     SensorWaitMs(100),
1786
1787         //snap2preview
1788         {0x098E, 0x843C,0xffff, 0xffff},        // LOGICAL_ADDRESS_ACCESS [SEQ_STATE_CFG_5_MAX_FRAME_CNT]
1789         {0x843C, 0x01, 0xffff, 0xff},   // SEQ_STATE_CFG_5_MAX_FRAME_CNT
1790         {0x8404, 0x01, 0xffff, 0xff},   // SEQ_CMD
1791         {0x0016, 0x0447,0xffff, 0xffff},        // CLOCKS_CONTRO    
1792         SensorEnd
1793 };
1794 /* 1280x720 */
1795 static struct rk_sensor_reg sensor_720p[]={
1796
1797         {0x098E, 0x843C, 0xffff,0xffff},  // LOGICAL_ADDRESS_ACCESS [CAM_CORE_A_Y_ADDR_START]
1798         {0x843C, 0x01, 0xffff,0xff },     // SEQ_STATE_CFG_5_MAX_FRAME_CNT
1799         {0x8404, 0x01, 0xffff,0xff },     // SEQ_CMD
1800         {0x0016, 0x0447, 0xffff,0xffff},  // CLOCKS_CONTROL
1801         {0xC83A, 0x0106, 0xffff,0xffff},  // CAM_CORE_A_Y_ADDR_START
1802         {0xC83C, 0x0018, 0xffff,0xffff},  // CAM_CORE_A_X_ADDR_START
1803         {0xC83E, 0x06B7, 0xffff,0xffff},  // CAM_CORE_A_Y_ADDR_END
1804         {0xC840, 0x0A45, 0xffff,0xffff},  // CAM_CORE_A_X_ADDR_END
1805         {0xC86C, 0x0518, 0xffff,0xffff},  // CAM_CORE_A_OUTPUT_SIZE_WIDTH
1806         {0xC86E, 0x02D8, 0xffff,0xffff},  // CAM_CORE_A_OUTPUT_SIZE_HEIGHT
1807         {0xC870, 0x0014, 0xffff,0xffff},  // CAM_CORE_A_RX_FIFO_TRIGGER_MARK
1808         {0xC858, 0x0003, 0xffff,0xffff}, // CAM_CORE_A_COARSE_ITMIN
1809         {0xC8B8, 0x0004, 0xffff,0xffff},  // CAM_OUTPUT_0_JPEG_CONTROL
1810         {0xC8AA, 0x0500, 0xffff,0xffff},  // CAM_OUTPUT_0_IMAGE_WIDTH
1811         {0xC8AC, 0x02D1, 0xffff,0xffff},  // CAM_OUTPUT_0_IMAGE_HEIGHT
1812         {0xC8AE, 0x0001, 0xffff,0xffff},  // CAM_OUTPUT_0_OUTPUT_FORMAT
1813         {0x8404, 0x06, 0xffff,0xff },     // SEQ_CMD
1814         SensorWaitMs(100),
1815
1816         SensorEnd
1817 };
1818
1819 /* 1920x1080 */
1820 static struct rk_sensor_reg sensor_1080p[]={
1821         SensorEnd
1822 };
1823
1824
1825 static struct rk_sensor_reg sensor_softreset_data[]={
1826     {0x0010,0x0115,0xffff,0xffff},
1827         SensorEnd
1828 };
1829
1830 static struct rk_sensor_reg sensor_check_id_data[]={
1831         SensorEnd
1832 };
1833 /*
1834 *  The following setting must been filled, if the function is turn on by CONFIG_SENSOR_xxxx
1835 */
1836 static struct rk_sensor_reg sensor_WhiteB_Auto[]=
1837 {
1838         SensorEnd
1839 };
1840 /* Cloudy Colour Temperature : 6500K - 8000K  */
1841 static  struct rk_sensor_reg sensor_WhiteB_Cloudy[]=
1842 {
1843
1844         SensorEnd
1845 };
1846 /* ClearDay Colour Temperature : 5000K - 6500K  */
1847 static  struct rk_sensor_reg sensor_WhiteB_ClearDay[]=
1848 {
1849         SensorEnd
1850 };
1851 /* Office Colour Temperature : 3500K - 5000K  */
1852 static  struct rk_sensor_reg sensor_WhiteB_TungstenLamp1[]=
1853 {
1854         SensorEnd
1855
1856 };
1857 /* Home Colour Temperature : 2500K - 3500K      */
1858 static  struct rk_sensor_reg sensor_WhiteB_TungstenLamp2[]=
1859 {
1860         SensorEnd
1861 };
1862 static struct rk_sensor_reg *sensor_WhiteBalanceSeqe[] = {sensor_WhiteB_Auto, sensor_WhiteB_TungstenLamp1,sensor_WhiteB_TungstenLamp2,
1863         sensor_WhiteB_ClearDay, sensor_WhiteB_Cloudy,NULL,
1864 };
1865
1866 static  struct rk_sensor_reg sensor_Brightness0[]=
1867 {
1868         // Brightness -2
1869         SensorEnd
1870 };
1871
1872 static  struct rk_sensor_reg sensor_Brightness1[]=
1873 {
1874         // Brightness -1
1875
1876         SensorEnd
1877 };
1878
1879 static  struct rk_sensor_reg sensor_Brightness2[]=
1880 {
1881         //      Brightness 0
1882
1883         SensorEnd
1884 };
1885
1886 static  struct rk_sensor_reg sensor_Brightness3[]=
1887 {
1888         // Brightness +1
1889
1890         SensorEnd
1891 };
1892
1893 static  struct rk_sensor_reg sensor_Brightness4[]=
1894 {
1895         //      Brightness +2
1896
1897         SensorEnd
1898 };
1899
1900 static  struct rk_sensor_reg sensor_Brightness5[]=
1901 {
1902         //      Brightness +3
1903
1904         SensorEnd
1905 };
1906 static struct rk_sensor_reg *sensor_BrightnessSeqe[] = {sensor_Brightness0, sensor_Brightness1, sensor_Brightness2, sensor_Brightness3,
1907         sensor_Brightness4, sensor_Brightness5,NULL,
1908 };
1909
1910 static  struct rk_sensor_reg sensor_Effect_Normal[] =
1911 {
1912         SensorEnd
1913 };
1914
1915 static  struct rk_sensor_reg sensor_Effect_WandB[] =
1916 {
1917         SensorEnd
1918 };
1919
1920 static  struct rk_sensor_reg sensor_Effect_Sepia[] =
1921 {
1922         SensorEnd
1923 };
1924
1925 static  struct rk_sensor_reg sensor_Effect_Negative[] =
1926 {
1927         SensorEnd
1928 };
1929 static  struct rk_sensor_reg sensor_Effect_Bluish[] =
1930 {
1931         SensorEnd
1932 };
1933
1934 static  struct rk_sensor_reg sensor_Effect_Green[] =
1935 {
1936         SensorEnd
1937 };
1938 static struct rk_sensor_reg *sensor_EffectSeqe[] = {sensor_Effect_Normal, sensor_Effect_WandB, sensor_Effect_Negative,sensor_Effect_Sepia,
1939         sensor_Effect_Bluish, sensor_Effect_Green,NULL,
1940 };
1941
1942 static  struct rk_sensor_reg sensor_Exposure0[]=
1943 {
1944         SensorEnd
1945 };
1946
1947 static  struct rk_sensor_reg sensor_Exposure1[]=
1948 {
1949         SensorEnd
1950 };
1951
1952 static  struct rk_sensor_reg sensor_Exposure2[]=
1953 {
1954         SensorEnd
1955 };
1956
1957 static  struct rk_sensor_reg sensor_Exposure3[]=
1958 {
1959         SensorEnd
1960 };
1961
1962 static  struct rk_sensor_reg sensor_Exposure4[]=
1963 {
1964         SensorEnd
1965 };
1966
1967 static  struct rk_sensor_reg sensor_Exposure5[]=
1968 {
1969         SensorEnd
1970 };
1971
1972 static  struct rk_sensor_reg sensor_Exposure6[]=
1973 {
1974         SensorEnd
1975 };
1976
1977 static struct rk_sensor_reg *sensor_ExposureSeqe[] = {sensor_Exposure0, sensor_Exposure1, sensor_Exposure2, sensor_Exposure3,
1978         sensor_Exposure4, sensor_Exposure5,sensor_Exposure6,NULL,
1979 };
1980
1981 static  struct rk_sensor_reg sensor_Saturation0[]=
1982 {
1983         SensorEnd
1984 };
1985
1986 static  struct rk_sensor_reg sensor_Saturation1[]=
1987 {
1988         SensorEnd
1989 };
1990
1991 static  struct rk_sensor_reg sensor_Saturation2[]=
1992 {
1993         SensorEnd
1994 };
1995 static struct rk_sensor_reg *sensor_SaturationSeqe[] = {sensor_Saturation0, sensor_Saturation1, sensor_Saturation2, NULL,};
1996
1997 static  struct rk_sensor_reg sensor_Contrast0[]=
1998 {
1999         SensorEnd
2000 };
2001
2002 static  struct rk_sensor_reg sensor_Contrast1[]=
2003 {
2004         SensorEnd
2005 };
2006
2007 static  struct rk_sensor_reg sensor_Contrast2[]=
2008 {
2009         SensorEnd
2010 };
2011
2012 static  struct rk_sensor_reg sensor_Contrast3[]=
2013 {
2014         SensorEnd
2015 };
2016
2017 static  struct rk_sensor_reg sensor_Contrast4[]=
2018 {
2019         SensorEnd
2020 };
2021
2022
2023 static  struct rk_sensor_reg sensor_Contrast5[]=
2024 {
2025         SensorEnd
2026 };
2027
2028 static  struct rk_sensor_reg sensor_Contrast6[]=
2029 {
2030         SensorEnd
2031 };
2032 static struct rk_sensor_reg *sensor_ContrastSeqe[] = {sensor_Contrast0, sensor_Contrast1, sensor_Contrast2, sensor_Contrast3,
2033         sensor_Contrast4, sensor_Contrast5, sensor_Contrast6, NULL,
2034 };
2035 static  struct rk_sensor_reg sensor_SceneAuto[] =
2036 {
2037         SensorEnd
2038 };
2039
2040 static  struct rk_sensor_reg sensor_SceneNight[] =
2041 {
2042         SensorEnd
2043 };
2044 static struct rk_sensor_reg *sensor_SceneSeqe[] = {sensor_SceneAuto, sensor_SceneNight,NULL,};
2045
2046 static struct rk_sensor_reg sensor_Zoom0[] =
2047 {
2048         SensorEnd
2049 };
2050
2051 static struct rk_sensor_reg sensor_Zoom1[] =
2052 {
2053         SensorEnd
2054 };
2055
2056 static struct rk_sensor_reg sensor_Zoom2[] =
2057 {
2058         SensorEnd
2059 };
2060
2061
2062 static struct rk_sensor_reg sensor_Zoom3[] =
2063 {
2064         SensorEnd
2065 };
2066 static struct rk_sensor_reg *sensor_ZoomSeqe[] = {sensor_Zoom0, sensor_Zoom1, sensor_Zoom2, sensor_Zoom3, NULL,};
2067
2068 /*
2069 * User could be add v4l2_querymenu in sensor_controls by new_usr_v4l2menu
2070 */
2071 static struct v4l2_querymenu sensor_menus[] =
2072 {
2073 };
2074 /*
2075 * User could be add v4l2_queryctrl in sensor_controls by new_user_v4l2ctrl
2076 */
2077 static struct sensor_v4l2ctrl_usr_s sensor_controls[] =
2078 {
2079 };
2080
2081 //MUST define the current used format as the first item   
2082 static struct rk_sensor_datafmt sensor_colour_fmts[] = {
2083         {V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG},
2084         {V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} 
2085 };
2086 /*static struct soc_camera_ops sensor_ops;*/
2087
2088
2089 /*
2090 **********************************************************
2091 * Following is local code:
2092
2093 * Please codeing your program here 
2094 **********************************************************
2095 */
2096
2097 /*
2098 **********************************************************
2099 * Following is callback
2100 * If necessary, you could coding these callback
2101 **********************************************************
2102 */
2103 /*
2104 * the function is called in open sensor  
2105 */
2106 static int sensor_activate_cb(struct i2c_client *client)
2107 {
2108     SENSOR_DG("%s",__FUNCTION__);
2109         return 0;
2110 }
2111 /*
2112 * the function is called in close sensor
2113 */
2114 static int sensor_deactivate_cb(struct i2c_client *client)
2115 {
2116     SENSOR_DG("%s",__FUNCTION__);
2117         return 0;
2118 }
2119 /*
2120 * the function is called before sensor register setting in VIDIOC_S_FMT  
2121 */
2122 static int sensor_s_fmt_cb_th(struct i2c_client *client,struct v4l2_mbus_framefmt *mf, bool capture)
2123 {
2124
2125     return 0;
2126 }
2127 /*
2128 * the function is called after sensor register setting finished in VIDIOC_S_FMT  
2129 */
2130 static int sensor_s_fmt_cb_bh (struct i2c_client *client,struct v4l2_mbus_framefmt *mf, bool capture)
2131 {
2132     int i,cnt,time,ret=0;
2133     char seq_state;
2134
2135     if ((mf->width == 2592) && (mf->height == 1944)) {
2136     
2137        /*check state of register 0x8405 to make sure set is successful*/
2138        /*set sensor_Preview2Capture more times to make sure set go into effect */
2139         cnt = 0;
2140         time  =0;
2141         do{                      
2142             ret =  0;
2143             msleep(50);   
2144             ret = sensor_read_reg2val1(client,0x8405, &seq_state);
2145             if (ret<0) {
2146                 SENSOR_TR("read register(0x8405) failed");
2147                 goto sensor_s_fmt_cb_bh_end;
2148             }
2149             
2150             if(cnt++ > 9) {
2151                 time++;
2152                 cnt = 0;
2153                         ret = sensor_write_array(client, sensor_fullres_lowfps_data);      
2154                         if (ret != 0||time >2) {
2155                         SENSOR_TR("switch preview to capture failed 0x%x %d",ret,time);
2156                         goto sensor_s_fmt_cb_bh_end;
2157                 }
2158             }
2159          } while((seq_state != 0x07) && (time < 4));
2160     } else if ((mf->width == 1280) && (mf->height == 720)) {
2161         for (i=0;i<3;i++)
2162             generic_sensor_write_array(client, sensor_720p);        
2163     }
2164
2165 sensor_s_fmt_cb_bh_end:
2166     return ret;
2167 }
2168 static int sensor_try_fmt_cb_th(struct i2c_client *client,struct v4l2_mbus_framefmt *mf)
2169 {
2170         return 0;
2171 }
2172 static int sensor_softrest_usr_cb(struct i2c_client *client,struct rk_sensor_reg *series)
2173 {
2174         
2175         return 0;
2176 }
2177 static int sensor_check_id_usr_cb(struct i2c_client *client,struct rk_sensor_reg *series)
2178 {
2179         return 0;
2180 }
2181
2182 static int sensor_suspend(struct soc_camera_device *icd, pm_message_t pm_msg)
2183 {
2184         //struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));
2185                 
2186         if (pm_msg.event == PM_EVENT_SUSPEND) {
2187                 SENSOR_DG("Suspend");
2188                 
2189         } else {
2190                 SENSOR_TR("pm_msg.event(0x%x) != PM_EVENT_SUSPEND\n",pm_msg.event);
2191                 return -EINVAL;
2192         }
2193         return 0;
2194 }
2195
2196 static int sensor_resume(struct soc_camera_device *icd)
2197 {
2198
2199         SENSOR_DG("Resume");
2200
2201         return 0;
2202
2203 }
2204 static int sensor_mirror_cb (struct i2c_client *client, int mirror)
2205 {
2206     int err =0;
2207     SENSOR_DG("mirror: %d",mirror);
2208
2209
2210         return err;    
2211 }
2212 /*
2213 * the function is v4l2 control V4L2_CID_HFLIP callback  
2214 */
2215 static int sensor_v4l2ctrl_mirror_cb(struct soc_camera_device *icd, struct sensor_v4l2ctrl_info_s *ctrl_info, 
2216                                                      struct v4l2_ext_control *ext_ctrl)
2217 {
2218         struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));
2219
2220     if (sensor_mirror_cb(client,ext_ctrl->value) != 0)
2221                 SENSOR_TR("sensor_mirror failed, value:0x%x",ext_ctrl->value);
2222         
2223         SENSOR_DG("sensor_mirror success, value:0x%x",ext_ctrl->value);
2224         return 0;
2225 }
2226
2227 static int sensor_flip_cb(struct i2c_client *client, int flip)
2228 {       
2229     int err =0;
2230     SENSOR_DG("flip: %d",flip);
2231
2232         return err;    
2233 }
2234 /*
2235 * the function is v4l2 control V4L2_CID_VFLIP callback  
2236 */
2237 static int sensor_v4l2ctrl_flip_cb(struct soc_camera_device *icd, struct sensor_v4l2ctrl_info_s *ctrl_info, 
2238                                                      struct v4l2_ext_control *ext_ctrl)
2239 {
2240         struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));
2241
2242     if (sensor_flip_cb(client,ext_ctrl->value) != 0)
2243                 SENSOR_TR("sensor_flip failed, value:0x%x",ext_ctrl->value);
2244         
2245         SENSOR_DG("sensor_flip success, value:0x%x",ext_ctrl->value);
2246         return 0;
2247 }
2248 /*
2249 * the functions are focus callbacks
2250 */
2251
2252 static int sensor_focus_init_usr_cb(struct i2c_client *client) 
2253 {  
2254         return 0;
2255 }
2256 static struct rk_sensor_reg sensor_af_trigger[] =
2257 {
2258         { 0xB854, 0x4040, 0xffff, 0xffff},      // STAT_SM_WINDOW_POS_X; POS_Y                                                                                                                                                                              
2259     { 0xB856, 0x4040, 0xffff, 0xffff},  // STAT_SM_WINDOW_SIZE_X; SIZE_Y                                                                                                                                                                          
2260     { 0xB006, 0x01, 0xffff, 0xff},       //run AF - af.progress 
2261     SensorEnd
2262 };
2263 static int sensor_focus_af_single_usr_cb(struct i2c_client *client){
2264         int ret = 0;
2265     char cnt=0;
2266     struct rk_sensor_reg reg;
2267     
2268         ret = sensor_write_array(client, sensor_af_trigger);
2269         if (ret<0) {
2270                 SENSOR_TR("%s sensor auto focus trigger fail!!\n",SENSOR_NAME_STRING());
2271         } else {
2272         reg.reg = 0xb006;
2273         reg.val = 0x01;
2274         reg.reg_mask = 0xffff;
2275         reg.val_mask = 0xff;
2276         do {
2277             msleep(30);
2278             generic_sensor_read(client,&reg);
2279         } while ((reg.val != 0) && (cnt++ < 50));
2280         
2281                 SENSOR_DG("%s sensor auto focus trigger(0x%x) success! state: %d, cnt: %d\n",SENSOR_NAME_STRING(),
2282           sensor_af_trigger[0].val,reg.val,cnt);
2283         }
2284 //sensor_af_single_end:
2285         return ret;
2286 }
2287
2288 static int sensor_focus_af_near_usr_cb(struct i2c_client *client){
2289         return 0;
2290 }
2291
2292 static int sensor_focus_af_far_usr_cb(struct i2c_client *client){
2293         return 0;
2294 }
2295
2296 static int sensor_focus_af_specialpos_usr_cb(struct i2c_client *client,int pos) {
2297         return 0;
2298 }
2299
2300 static int sensor_focus_af_const_usr_cb(struct i2c_client *client){
2301         return 0;
2302 }
2303 static int sensor_focus_af_const_pause_usr_cb(struct i2c_client *client)
2304 {
2305     return 0;
2306 }
2307 static int sensor_focus_af_close_usr_cb(struct i2c_client *client){
2308         return 0;
2309 }
2310
2311 static int sensor_focus_af_zoneupdate_usr_cb(struct i2c_client *client,int *zone_tm_pos){
2312     int ret = 0;
2313     int zone_center_pos[2];
2314
2315     zone_tm_pos[0] += 1000;
2316         zone_tm_pos[1] += 1000;
2317         zone_tm_pos[2] += 1000;
2318         zone_tm_pos[3] += 1000;
2319     zone_center_pos[0] = ((zone_tm_pos[0] + zone_tm_pos[2])>>1);
2320     zone_center_pos[1] = ((zone_tm_pos[1] + zone_tm_pos[3])>>1);
2321     
2322     zone_center_pos[0] = zone_center_pos[0]*0x100/2000;
2323     zone_center_pos[1] = zone_center_pos[1]*0x100/2000;
2324
2325     zone_center_pos[0] = zone_center_pos[0]/0x40*0x40;
2326     zone_center_pos[1] = zone_center_pos[1]/0x40*0x40;
2327
2328     sensor_af_trigger[0].val = (zone_center_pos[0]<<8)|zone_center_pos[1];
2329   
2330 //sensor_af_zone_end:
2331     return ret;
2332 }
2333
2334 /*
2335 face defect call back
2336 */
2337 static int      sensor_face_detect_usr_cb(struct i2c_client *client,int on){
2338         return 0;
2339 }
2340
2341 /*
2342 *   The function can been run in sensor_init_parametres which run in sensor_probe, so user can do some
2343 * initialization in the function. 
2344 */
2345 static void sensor_init_parameters_user(struct specific_sensor* spsensor,struct soc_camera_device *icd)
2346 {
2347     return;
2348 }
2349
2350 /*
2351 * :::::WARNING:::::
2352 * It is not allowed to modify the following code
2353 */
2354
2355 sensor_init_parameters_default_code();
2356
2357 sensor_v4l2_struct_initialization();
2358
2359 sensor_probe_default_code();
2360
2361 sensor_remove_default_code();
2362
2363 sensor_driver_default_module_code();
2364