GNU Linux-libre 5.19-rc6-gnu
[releases.git] / drivers / staging / media / atomisp / i2c / mt9m114.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for mt9m114 Camera Sensor.
4  *
5  * Copyright (c) 2010 Intel Corporation. All Rights Reserved.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License version
9  * 2 as published by the Free Software Foundation.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  *
17  */
18
19 #ifndef __A1040_H__
20 #define __A1040_H__
21
22 #include <linux/kernel.h>
23 #include <linux/types.h>
24 #include <linux/i2c.h>
25 #include <linux/delay.h>
26 #include <linux/videodev2.h>
27 #include <linux/spinlock.h>
28 #include <media/v4l2-subdev.h>
29 #include <media/v4l2-device.h>
30 #include <media/v4l2-ctrls.h>
31 #include <linux/v4l2-mediabus.h>
32 #include <media/media-entity.h>
33 #include "../include/linux/atomisp_platform.h"
34 #include "../include/linux/atomisp.h"
35
36 #define V4L2_IDENT_MT9M114 8245
37
38 #define MT9P111_REV3
39 #define FULLINISUPPORT
40
41 /* #defines for register writes and register array processing */
42 #define MISENSOR_8BIT           1
43 #define MISENSOR_16BIT          2
44 #define MISENSOR_32BIT          4
45
46 #define MISENSOR_FWBURST0       0x80
47 #define MISENSOR_FWBURST1       0x81
48 #define MISENSOR_FWBURST4       0x84
49 #define MISENSOR_FWBURST        0x88
50
51 #define MISENSOR_TOK_TERM       0xf000  /* terminating token for reg list */
52 #define MISENSOR_TOK_DELAY      0xfe00  /* delay token for reg list */
53 #define MISENSOR_TOK_FWLOAD     0xfd00  /* token indicating load FW */
54 #define MISENSOR_TOK_POLL       0xfc00  /* token indicating poll instruction */
55 #define MISENSOR_TOK_RMW        0x0010  /* RMW operation */
56 #define MISENSOR_TOK_MASK       0xfff0
57 #define MISENSOR_AWB_STEADY     BIT(0)  /* awb steady */
58 #define MISENSOR_AE_READY       BIT(3)  /* ae status ready */
59
60 /* mask to set sensor read_mode via misensor_rmw_reg */
61 #define MISENSOR_R_MODE_MASK    0x0330
62 /* mask to set sensor vert_flip and horz_mirror */
63 #define MISENSOR_VFLIP_MASK     0x0002
64 #define MISENSOR_HFLIP_MASK     0x0001
65 #define MISENSOR_FLIP_EN        1
66 #define MISENSOR_FLIP_DIS       0
67
68 /* bits set to set sensor read_mode via misensor_rmw_reg */
69 #define MISENSOR_SKIPPING_SET   0x0011
70 #define MISENSOR_SUMMING_SET    0x0033
71 #define MISENSOR_NORMAL_SET     0x0000
72
73 /* sensor register that control sensor read-mode and mirror */
74 #define MISENSOR_READ_MODE      0xC834
75 /* sensor ae-track status register */
76 #define MISENSOR_AE_TRACK_STATUS        0xA800
77 /* sensor awb status register */
78 #define MISENSOR_AWB_STATUS     0xAC00
79 /* sensor coarse integration time register */
80 #define MISENSOR_COARSE_INTEGRATION_TIME 0xC83C
81
82 /* registers */
83 #define REG_SW_RESET                    0x301A
84 #define REG_SW_STREAM                   0xDC00
85 #define REG_SCCB_CTRL                   0x3100
86 #define REG_SC_CMMN_CHIP_ID             0x0000
87 #define REG_V_START                     0xc800 /* 16bits */
88 #define REG_H_START                     0xc802 /* 16bits */
89 #define REG_V_END                       0xc804 /* 16bits */
90 #define REG_H_END                       0xc806 /* 16bits */
91 #define REG_PIXEL_CLK                   0xc808 /* 32bits */
92 #define REG_TIMING_VTS                  0xc812 /* 16bits */
93 #define REG_TIMING_HTS                  0xc814 /* 16bits */
94 #define REG_WIDTH                       0xC868 /* 16bits */
95 #define REG_HEIGHT                      0xC86A /* 16bits */
96 #define REG_EXPO_COARSE                 0x3012 /* 16bits */
97 #define REG_EXPO_FINE                   0x3014 /* 16bits */
98 #define REG_GAIN                        0x305E
99 #define REG_ANALOGGAIN                  0x305F
100 #define REG_ADDR_ACESSS                 0x098E /* logical_address_access */
101 #define REG_COMM_Register               0x0080 /* command_register */
102
103 #define SENSOR_DETECTED         1
104 #define SENSOR_NOT_DETECTED     0
105
106 #define I2C_RETRY_COUNT         5
107 #define MSG_LEN_OFFSET          2
108
109 #ifndef MIPI_CONTROL
110 #define MIPI_CONTROL            0x3400  /* MIPI_Control */
111 #endif
112
113 /* GPIO pin on Moorestown */
114 #define GPIO_SCLK_25            44
115 #define GPIO_STB_PIN            47
116
117 #define GPIO_STDBY_PIN          49   /* ab:new */
118 #define GPIO_RESET_PIN          50
119
120 /* System control register for Aptina A-1040SOC*/
121 #define MT9M114_PID             0x0
122
123 /* MT9P111_DEVICE_ID */
124 #define MT9M114_MOD_ID          0x2481
125
126 #define MT9M114_FINE_INTG_TIME_MIN 0
127 #define MT9M114_FINE_INTG_TIME_MAX_MARGIN 0
128 #define MT9M114_COARSE_INTG_TIME_MIN 1
129 #define MT9M114_COARSE_INTG_TIME_MAX_MARGIN 6
130
131 /* ulBPat; */
132
133 #define MT9M114_BPAT_RGRGGBGB   BIT(0)
134 #define MT9M114_BPAT_GRGRBGBG   BIT(1)
135 #define MT9M114_BPAT_GBGBRGRG   BIT(2)
136 #define MT9M114_BPAT_BGBGGRGR   BIT(3)
137
138 #define MT9M114_FOCAL_LENGTH_NUM        208     /*2.08mm*/
139 #define MT9M114_FOCAL_LENGTH_DEM        100
140 #define MT9M114_F_NUMBER_DEFAULT_NUM    24
141 #define MT9M114_F_NUMBER_DEM    10
142 #define MT9M114_WAIT_STAT_TIMEOUT       100
143 #define MT9M114_FLICKER_MODE_50HZ       1
144 #define MT9M114_FLICKER_MODE_60HZ       2
145 /*
146  * focal length bits definition:
147  * bits 31-16: numerator, bits 15-0: denominator
148  */
149 #define MT9M114_FOCAL_LENGTH_DEFAULT 0xD00064
150
151 /*
152  * current f-number bits definition:
153  * bits 31-16: numerator, bits 15-0: denominator
154  */
155 #define MT9M114_F_NUMBER_DEFAULT 0x18000a
156
157 /*
158  * f-number range bits definition:
159  * bits 31-24: max f-number numerator
160  * bits 23-16: max f-number denominator
161  * bits 15-8: min f-number numerator
162  * bits 7-0: min f-number denominator
163  */
164 #define MT9M114_F_NUMBER_RANGE 0x180a180a
165
166 /* Supported resolutions */
167 enum {
168         MT9M114_RES_736P,
169         MT9M114_RES_864P,
170         MT9M114_RES_960P,
171 };
172
173 #define MT9M114_RES_960P_SIZE_H         1296
174 #define MT9M114_RES_960P_SIZE_V         976
175 #define MT9M114_RES_720P_SIZE_H         1280
176 #define MT9M114_RES_720P_SIZE_V         720
177 #define MT9M114_RES_576P_SIZE_H         1024
178 #define MT9M114_RES_576P_SIZE_V         576
179 #define MT9M114_RES_480P_SIZE_H         768
180 #define MT9M114_RES_480P_SIZE_V         480
181 #define MT9M114_RES_VGA_SIZE_H          640
182 #define MT9M114_RES_VGA_SIZE_V          480
183 #define MT9M114_RES_QVGA_SIZE_H         320
184 #define MT9M114_RES_QVGA_SIZE_V         240
185 #define MT9M114_RES_QCIF_SIZE_H         176
186 #define MT9M114_RES_QCIF_SIZE_V         144
187
188 #define MT9M114_RES_720_480p_768_SIZE_H 736
189 #define MT9M114_RES_720_480p_768_SIZE_V 496
190 #define MT9M114_RES_736P_SIZE_H 1296
191 #define MT9M114_RES_736P_SIZE_V 736
192 #define MT9M114_RES_864P_SIZE_H 1296
193 #define MT9M114_RES_864P_SIZE_V 864
194 #define MT9M114_RES_976P_SIZE_H 1296
195 #define MT9M114_RES_976P_SIZE_V 976
196
197 #define MT9M114_BIN_FACTOR_MAX                  3
198
199 #define MT9M114_DEFAULT_FIRST_EXP 0x10
200 #define MT9M114_MAX_FIRST_EXP 0x302
201
202 /* completion status polling requirements, usage based on Aptina .INI Rev2 */
203 enum poll_reg {
204         NO_POLLING,
205         PRE_POLLING,
206         POST_POLLING,
207 };
208
209 /*
210  * struct misensor_reg - MI sensor  register format
211  * @length: length of the register
212  * @reg: 16-bit offset to register
213  * @val: 8/16/32-bit register value
214  * Define a structure for sensor register initialization values
215  */
216 struct misensor_reg {
217         u32 length;
218         u32 reg;
219         u32 val;        /* value or for read/mod/write, AND mask */
220         u32 val2;       /* optional; for rmw, OR mask */
221 };
222
223 /*
224  * struct misensor_fwreg - Firmware burst command
225  * @type: FW burst or 8/16 bit register
226  * @addr: 16-bit offset to register or other values depending on type
227  * @valx: data value for burst (or other commands)
228  *
229  * Define a structure for sensor register initialization values
230  */
231 struct misensor_fwreg {
232         u32     type;   /* type of value, register or FW burst string */
233         u32     addr;   /* target address */
234         u32     val0;
235         u32     val1;
236         u32     val2;
237         u32     val3;
238         u32     val4;
239         u32     val5;
240         u32     val6;
241         u32     val7;
242 };
243
244 struct regval_list {
245         u16 reg_num;
246         u8 value;
247 };
248
249 struct mt9m114_device {
250         struct v4l2_subdev sd;
251         struct media_pad pad;
252         struct v4l2_mbus_framefmt format;
253
254         struct camera_sensor_platform_data *platform_data;
255         struct mutex input_lock;        /* serialize sensor's ioctl */
256         struct v4l2_ctrl_handler ctrl_handler;
257         int real_model_id;
258         int nctx;
259         int power;
260
261         unsigned int bus_width;
262         unsigned int mode;
263         unsigned int field_inv;
264         unsigned int field_sel;
265         unsigned int ycseq;
266         unsigned int conv422;
267         unsigned int bpat;
268         unsigned int hpol;
269         unsigned int vpol;
270         unsigned int edge;
271         unsigned int bls;
272         unsigned int gamma;
273         unsigned int cconv;
274         unsigned int res;
275         unsigned int dwn_sz;
276         unsigned int blc;
277         unsigned int agc;
278         unsigned int awb;
279         unsigned int aec;
280         /* extension SENSOR version 2 */
281         unsigned int cie_profile;
282
283         /* extension SENSOR version 3 */
284         unsigned int flicker_freq;
285
286         /* extension SENSOR version 4 */
287         unsigned int smia_mode;
288         unsigned int mipi_mode;
289
290         /* Add name here to load shared library */
291         unsigned int type;
292
293         /*Number of MIPI lanes*/
294         unsigned int mipi_lanes;
295         /*WA for low light AE*/
296         unsigned int first_exp;
297         unsigned int first_gain;
298         unsigned int first_diggain;
299         char name[32];
300
301         u8 lightfreq;
302         u8 streamon;
303 };
304
305 struct mt9m114_format_struct {
306         u8 *desc;
307         u32 pixelformat;
308         struct regval_list *regs;
309 };
310
311 struct mt9m114_res_struct {
312         u8 *desc;
313         int res;
314         int width;
315         int height;
316         int fps;
317         int skip_frames;
318         bool used;
319         struct regval_list *regs;
320         u16 pixels_per_line;
321         u16 lines_per_frame;
322         u8 bin_factor_x;
323         u8 bin_factor_y;
324         u8 bin_mode;
325 };
326
327 /* 2 bytes used for address: 256 bytes total */
328 #define MT9M114_MAX_WRITE_BUF_SIZE      254
329 struct mt9m114_write_buffer {
330         u16 addr;
331         u8 data[MT9M114_MAX_WRITE_BUF_SIZE];
332 };
333
334 struct mt9m114_write_ctrl {
335         int index;
336         struct mt9m114_write_buffer buffer;
337 };
338
339 /*
340  * Modes supported by the mt9m114 driver.
341  * Please, keep them in ascending order.
342  */
343 static struct mt9m114_res_struct mt9m114_res[] = {
344         {
345                 .desc   = "720P",
346                 .res    = MT9M114_RES_736P,
347                 .width  = 1296,
348                 .height = 736,
349                 .fps    = 30,
350                 .used   = false,
351                 .regs   = NULL,
352                 .skip_frames = 1,
353
354                 .pixels_per_line = 0x0640,
355                 .lines_per_frame = 0x0307,
356                 .bin_factor_x = 1,
357                 .bin_factor_y = 1,
358                 .bin_mode = 0,
359         },
360         {
361                 .desc   = "848P",
362                 .res    = MT9M114_RES_864P,
363                 .width  = 1296,
364                 .height = 864,
365                 .fps    = 30,
366                 .used   = false,
367                 .regs   = NULL,
368                 .skip_frames = 1,
369
370                 .pixels_per_line = 0x0640,
371                 .lines_per_frame = 0x03E8,
372                 .bin_factor_x = 1,
373                 .bin_factor_y = 1,
374                 .bin_mode = 0,
375         },
376         {
377                 .desc   = "960P",
378                 .res    = MT9M114_RES_960P,
379                 .width  = 1296,
380                 .height = 976,
381                 .fps    = 30,
382                 .used   = false,
383                 .regs   = NULL,
384                 .skip_frames = 1,
385
386                 .pixels_per_line = 0x0644, /* consistent with regs arrays */
387                 .lines_per_frame = 0x03E5, /* consistent with regs arrays */
388                 .bin_factor_x = 1,
389                 .bin_factor_y = 1,
390                 .bin_mode = 0,
391         },
392 };
393
394 #define N_RES (ARRAY_SIZE(mt9m114_res))
395
396 #if 0 /* Currently unused */
397 static struct misensor_reg const mt9m114_exitstandby[] = {
398         {MISENSOR_16BIT,  0x098E, 0xDC00},
399         /* exit-standby */
400         {MISENSOR_8BIT,  0xDC00, 0x54},
401         {MISENSOR_16BIT,  0x0080, 0x8002},
402         {MISENSOR_TOK_TERM, 0, 0}
403 };
404 #endif
405
406 static struct misensor_reg const mt9m114_exp_win[5][5] = {
407         {
408                 {MISENSOR_8BIT,  0xA407, 0x64},
409                 {MISENSOR_8BIT,  0xA408, 0x64},
410                 {MISENSOR_8BIT,  0xA409, 0x64},
411                 {MISENSOR_8BIT,  0xA40A, 0x64},
412                 {MISENSOR_8BIT,  0xA40B, 0x64},
413         },
414         {
415                 {MISENSOR_8BIT,  0xA40C, 0x64},
416                 {MISENSOR_8BIT,  0xA40D, 0x64},
417                 {MISENSOR_8BIT,  0xA40E, 0x64},
418                 {MISENSOR_8BIT,  0xA40F, 0x64},
419                 {MISENSOR_8BIT,  0xA410, 0x64},
420         },
421         {
422                 {MISENSOR_8BIT,  0xA411, 0x64},
423                 {MISENSOR_8BIT,  0xA412, 0x64},
424                 {MISENSOR_8BIT,  0xA413, 0x64},
425                 {MISENSOR_8BIT,  0xA414, 0x64},
426                 {MISENSOR_8BIT,  0xA415, 0x64},
427         },
428         {
429                 {MISENSOR_8BIT,  0xA416, 0x64},
430                 {MISENSOR_8BIT,  0xA417, 0x64},
431                 {MISENSOR_8BIT,  0xA418, 0x64},
432                 {MISENSOR_8BIT,  0xA419, 0x64},
433                 {MISENSOR_8BIT,  0xA41A, 0x64},
434         },
435         {
436                 {MISENSOR_8BIT,  0xA41B, 0x64},
437                 {MISENSOR_8BIT,  0xA41C, 0x64},
438                 {MISENSOR_8BIT,  0xA41D, 0x64},
439                 {MISENSOR_8BIT,  0xA41E, 0x64},
440                 {MISENSOR_8BIT,  0xA41F, 0x64},
441         },
442 };
443
444 static struct misensor_reg const mt9m114_exp_average[] = {
445         {MISENSOR_8BIT,  0xA407, 0x00},
446         {MISENSOR_8BIT,  0xA408, 0x00},
447         {MISENSOR_8BIT,  0xA409, 0x00},
448         {MISENSOR_8BIT,  0xA40A, 0x00},
449         {MISENSOR_8BIT,  0xA40B, 0x00},
450         {MISENSOR_8BIT,  0xA40C, 0x00},
451         {MISENSOR_8BIT,  0xA40D, 0x00},
452         {MISENSOR_8BIT,  0xA40E, 0x00},
453         {MISENSOR_8BIT,  0xA40F, 0x00},
454         {MISENSOR_8BIT,  0xA410, 0x00},
455         {MISENSOR_8BIT,  0xA411, 0x00},
456         {MISENSOR_8BIT,  0xA412, 0x00},
457         {MISENSOR_8BIT,  0xA413, 0x00},
458         {MISENSOR_8BIT,  0xA414, 0x00},
459         {MISENSOR_8BIT,  0xA415, 0x00},
460         {MISENSOR_8BIT,  0xA416, 0x00},
461         {MISENSOR_8BIT,  0xA417, 0x00},
462         {MISENSOR_8BIT,  0xA418, 0x00},
463         {MISENSOR_8BIT,  0xA419, 0x00},
464         {MISENSOR_8BIT,  0xA41A, 0x00},
465         {MISENSOR_8BIT,  0xA41B, 0x00},
466         {MISENSOR_8BIT,  0xA41C, 0x00},
467         {MISENSOR_8BIT,  0xA41D, 0x00},
468         {MISENSOR_8BIT,  0xA41E, 0x00},
469         {MISENSOR_8BIT,  0xA41F, 0x00},
470         {MISENSOR_TOK_TERM, 0, 0}
471 };
472
473 static struct misensor_reg const mt9m114_exp_center[] = {
474         {MISENSOR_8BIT,  0xA407, 0x19},
475         {MISENSOR_8BIT,  0xA408, 0x19},
476         {MISENSOR_8BIT,  0xA409, 0x19},
477         {MISENSOR_8BIT,  0xA40A, 0x19},
478         {MISENSOR_8BIT,  0xA40B, 0x19},
479         {MISENSOR_8BIT,  0xA40C, 0x19},
480         {MISENSOR_8BIT,  0xA40D, 0x4B},
481         {MISENSOR_8BIT,  0xA40E, 0x4B},
482         {MISENSOR_8BIT,  0xA40F, 0x4B},
483         {MISENSOR_8BIT,  0xA410, 0x19},
484         {MISENSOR_8BIT,  0xA411, 0x19},
485         {MISENSOR_8BIT,  0xA412, 0x4B},
486         {MISENSOR_8BIT,  0xA413, 0x64},
487         {MISENSOR_8BIT,  0xA414, 0x4B},
488         {MISENSOR_8BIT,  0xA415, 0x19},
489         {MISENSOR_8BIT,  0xA416, 0x19},
490         {MISENSOR_8BIT,  0xA417, 0x4B},
491         {MISENSOR_8BIT,  0xA418, 0x4B},
492         {MISENSOR_8BIT,  0xA419, 0x4B},
493         {MISENSOR_8BIT,  0xA41A, 0x19},
494         {MISENSOR_8BIT,  0xA41B, 0x19},
495         {MISENSOR_8BIT,  0xA41C, 0x19},
496         {MISENSOR_8BIT,  0xA41D, 0x19},
497         {MISENSOR_8BIT,  0xA41E, 0x19},
498         {MISENSOR_8BIT,  0xA41F, 0x19},
499         {MISENSOR_TOK_TERM, 0, 0}
500 };
501
502 #if 0 /* Currently unused */
503 static struct misensor_reg const mt9m114_suspend[] = {
504         {MISENSOR_16BIT,  0x098E, 0xDC00},
505         {MISENSOR_8BIT,  0xDC00, 0x40},
506         {MISENSOR_16BIT,  0x0080, 0x8002},
507         {MISENSOR_TOK_TERM, 0, 0}
508 };
509
510 static struct misensor_reg const mt9m114_streaming[] = {
511         {MISENSOR_16BIT,  0x098E, 0xDC00},
512         {MISENSOR_8BIT,  0xDC00, 0x34},
513         {MISENSOR_16BIT,  0x0080, 0x8002},
514         {MISENSOR_TOK_TERM, 0, 0}
515 };
516 #endif
517
518 static struct misensor_reg const mt9m114_standby_reg[] = {
519         {MISENSOR_16BIT,  0x098E, 0xDC00},
520         {MISENSOR_8BIT,  0xDC00, 0x50},
521         {MISENSOR_16BIT,  0x0080, 0x8002},
522         {MISENSOR_TOK_TERM, 0, 0}
523 };
524
525 #if 0 /* Currently unused */
526 static struct misensor_reg const mt9m114_wakeup_reg[] = {
527         {MISENSOR_16BIT,  0x098E, 0xDC00},
528         {MISENSOR_8BIT,  0xDC00, 0x54},
529         {MISENSOR_16BIT,  0x0080, 0x8002},
530         {MISENSOR_TOK_TERM, 0, 0}
531 };
532 #endif
533
534 static struct misensor_reg const mt9m114_chgstat_reg[] = {
535         {MISENSOR_16BIT,  0x098E, 0xDC00},
536         {MISENSOR_8BIT,  0xDC00, 0x28},
537         {MISENSOR_16BIT,  0x0080, 0x8002},
538         {MISENSOR_TOK_TERM, 0, 0}
539 };
540
541 /* [1296x976_30fps] - Intel */
542 #if 0
543 static struct misensor_reg const mt9m114_960P_init[] = {
544         {MISENSOR_16BIT, 0x098E, 0x1000},
545         {MISENSOR_8BIT, 0xC97E, 0x01},    /* cam_sysctl_pll_enable = 1 */
546         {MISENSOR_16BIT, 0xC980, 0x0128}, /* cam_sysctl_pll_divider_m_n = 276 */
547         {MISENSOR_16BIT, 0xC982, 0x0700}, /* cam_sysctl_pll_divider_p = 1792 */
548         {MISENSOR_16BIT, 0xC800, 0x0000}, /* cam_sensor_cfg_y_addr_start = 0 */
549         {MISENSOR_16BIT, 0xC802, 0x0000}, /* cam_sensor_cfg_x_addr_start = 0 */
550         {MISENSOR_16BIT, 0xC804, 0x03CF}, /* cam_sensor_cfg_y_addr_end = 971 */
551         {MISENSOR_16BIT, 0xC806, 0x050F}, /* cam_sensor_cfg_x_addr_end = 1291 */
552         {MISENSOR_16BIT, 0xC808, 0x02DC}, /* cam_sensor_cfg_pixclk = 48000000 */
553         {MISENSOR_16BIT, 0xC80A, 0x6C00},
554         {MISENSOR_16BIT, 0xC80C, 0x0001}, /* cam_sensor_cfg_row_speed = 1 */
555         /* cam_sensor_cfg_fine_integ_time_min = 219 */
556         {MISENSOR_16BIT, 0xC80E, 0x00DB},
557         /* cam_sensor_cfg_fine_integ_time_max = 1459 */
558         {MISENSOR_16BIT, 0xC810, 0x05B3},
559         /* cam_sensor_cfg_frame_length_lines = 1006 */
560         {MISENSOR_16BIT, 0xC812, 0x03F6},
561         /* cam_sensor_cfg_line_length_pck = 1590 */
562         {MISENSOR_16BIT, 0xC814, 0x063E},
563         /* cam_sensor_cfg_fine_correction = 96 */
564         {MISENSOR_16BIT, 0xC816, 0x0060},
565         /* cam_sensor_cfg_cpipe_last_row = 963 */
566         {MISENSOR_16BIT, 0xC818, 0x03C3},
567         {MISENSOR_16BIT, 0xC826, 0x0020}, /* cam_sensor_cfg_reg_0_data = 32 */
568         {MISENSOR_16BIT, 0xC834, 0x0000}, /* cam_sensor_control_read_mode = 0 */
569         {MISENSOR_16BIT, 0xC854, 0x0000}, /* cam_crop_window_xoffset = 0 */
570         {MISENSOR_16BIT, 0xC856, 0x0000}, /* cam_crop_window_yoffset = 0 */
571         {MISENSOR_16BIT, 0xC858, 0x0508}, /* cam_crop_window_width = 1280 */
572         {MISENSOR_16BIT, 0xC85A, 0x03C8}, /* cam_crop_window_height = 960 */
573         {MISENSOR_8BIT,  0xC85C, 0x03},   /* cam_crop_cropmode = 3 */
574         {MISENSOR_16BIT, 0xC868, 0x0508}, /* cam_output_width = 1280 */
575         {MISENSOR_16BIT, 0xC86A, 0x03C8}, /* cam_output_height = 960 */
576         {MISENSOR_TOK_TERM, 0, 0},
577 };
578 #endif
579
580 /* [1296x976_30fps_768Mbps] */
581 static struct misensor_reg const mt9m114_976P_init[] = {
582         {MISENSOR_16BIT, 0x98E, 0x1000},
583         {MISENSOR_8BIT, 0xC97E, 0x01},    /* cam_sysctl_pll_enable = 1 */
584         {MISENSOR_16BIT, 0xC980, 0x0128}, /* cam_sysctl_pll_divider_m_n = 276 */
585         {MISENSOR_16BIT, 0xC982, 0x0700}, /* cam_sysctl_pll_divider_p = 1792 */
586         {MISENSOR_16BIT, 0xC800, 0x0000}, /* cam_sensor_cfg_y_addr_start = 0 */
587         {MISENSOR_16BIT, 0xC802, 0x0000}, /* cam_sensor_cfg_x_addr_start = 0 */
588         {MISENSOR_16BIT, 0xC804, 0x03CF}, /* cam_sensor_cfg_y_addr_end = 975 */
589         {MISENSOR_16BIT, 0xC806, 0x050F}, /* cam_sensor_cfg_x_addr_end = 1295 */
590         {MISENSOR_32BIT, 0xC808, 0x2DC6C00},/* cam_sensor_cfg_pixclk = 480000*/
591         {MISENSOR_16BIT, 0xC80C, 0x0001}, /* cam_sensor_cfg_row_speed = 1 */
592         /* cam_sensor_cfg_fine_integ_time_min = 219 */
593         {MISENSOR_16BIT, 0xC80E, 0x00DB},
594         /* 0x062E //cam_sensor_cfg_fine_integ_time_max = 1459 */
595         {MISENSOR_16BIT, 0xC810, 0x05B3},
596         /* 0x074C //cam_sensor_cfg_frame_length_lines = 1006 */
597         {MISENSOR_16BIT, 0xC812, 0x03E5},
598         /* 0x06B1 /cam_sensor_cfg_line_length_pck = 1590 */
599         {MISENSOR_16BIT, 0xC814, 0x0644},
600         /* cam_sensor_cfg_fine_correction = 96 */
601         {MISENSOR_16BIT, 0xC816, 0x0060},
602         /* cam_sensor_cfg_cpipe_last_row = 963 */
603         {MISENSOR_16BIT, 0xC818, 0x03C3},
604         {MISENSOR_16BIT, 0xC826, 0x0020}, /* cam_sensor_cfg_reg_0_data = 32 */
605         {MISENSOR_16BIT, 0xC834, 0x0000}, /* cam_sensor_control_read_mode = 0 */
606         {MISENSOR_16BIT, 0xC854, 0x0000}, /* cam_crop_window_xoffset = 0 */
607         {MISENSOR_16BIT, 0xC856, 0x0000}, /* cam_crop_window_yoffset = 0 */
608         {MISENSOR_16BIT, 0xC858, 0x0508}, /* cam_crop_window_width = 1288 */
609         {MISENSOR_16BIT, 0xC85A, 0x03C8}, /* cam_crop_window_height = 968 */
610         {MISENSOR_8BIT, 0xC85C, 0x03}, /* cam_crop_cropmode = 3 */
611         {MISENSOR_16BIT, 0xC868, 0x0508}, /* cam_output_width = 1288 */
612         {MISENSOR_16BIT, 0xC86A, 0x03C8}, /* cam_output_height = 968 */
613         {MISENSOR_8BIT, 0xC878, 0x00}, /* 0x0E //cam_aet_aemode = 0 */
614         {MISENSOR_TOK_TERM, 0, 0}
615 };
616
617 /* [1296x864_30fps] */
618 static struct misensor_reg const mt9m114_864P_init[] = {
619         {MISENSOR_16BIT, 0x98E, 0x1000},
620         {MISENSOR_8BIT, 0xC97E, 0x01},    /* cam_sysctl_pll_enable = 1 */
621         {MISENSOR_16BIT, 0xC980, 0x0128}, /* cam_sysctl_pll_divider_m_n = 276 */
622         {MISENSOR_16BIT, 0xC982, 0x0700}, /* cam_sysctl_pll_divider_p = 1792 */
623         {MISENSOR_16BIT, 0xC800, 0x0038}, /* cam_sensor_cfg_y_addr_start = 56 */
624         {MISENSOR_16BIT, 0xC802, 0x0000}, /* cam_sensor_cfg_x_addr_start = 0 */
625         {MISENSOR_16BIT, 0xC804, 0x0397}, /* cam_sensor_cfg_y_addr_end = 919 */
626         {MISENSOR_16BIT, 0xC806, 0x050F}, /* cam_sensor_cfg_x_addr_end = 1295 */
627         /* cam_sensor_cfg_pixclk = 48000000 */
628         {MISENSOR_32BIT, 0xC808, 0x2DC6C00},
629         {MISENSOR_16BIT, 0xC80C, 0x0001}, /* cam_sensor_cfg_row_speed = 1 */
630         /* cam_sensor_cfg_fine_integ_time_min = 219 */
631         {MISENSOR_16BIT, 0xC80E, 0x00DB},
632         /* cam_sensor_cfg_fine_integ_time_max = 1469 */
633         {MISENSOR_16BIT, 0xC810, 0x05BD},
634         /* cam_sensor_cfg_frame_length_lines = 1000 */
635         {MISENSOR_16BIT, 0xC812, 0x03E8},
636         /* cam_sensor_cfg_line_length_pck = 1600 */
637         {MISENSOR_16BIT, 0xC814, 0x0640},
638         /* cam_sensor_cfg_fine_correction = 96 */
639         {MISENSOR_16BIT, 0xC816, 0x0060},
640         /* cam_sensor_cfg_cpipe_last_row = 859 */
641         {MISENSOR_16BIT, 0xC818, 0x035B},
642         {MISENSOR_16BIT, 0xC826, 0x0020}, /* cam_sensor_cfg_reg_0_data = 32 */
643         {MISENSOR_16BIT, 0xC834, 0x0000}, /* cam_sensor_control_read_mode = 0 */
644         {MISENSOR_16BIT, 0xC854, 0x0000}, /* cam_crop_window_xoffset = 0 */
645         {MISENSOR_16BIT, 0xC856, 0x0000}, /* cam_crop_window_yoffset = 0 */
646         {MISENSOR_16BIT, 0xC858, 0x0508}, /* cam_crop_window_width = 1288 */
647         {MISENSOR_16BIT, 0xC85A, 0x0358}, /* cam_crop_window_height = 856 */
648         {MISENSOR_8BIT, 0xC85C, 0x03}, /* cam_crop_cropmode = 3 */
649         {MISENSOR_16BIT, 0xC868, 0x0508}, /* cam_output_width = 1288 */
650         {MISENSOR_16BIT, 0xC86A, 0x0358}, /* cam_output_height = 856 */
651         {MISENSOR_8BIT, 0xC878, 0x00}, /* 0x0E //cam_aet_aemode = 0 */
652         {MISENSOR_TOK_TERM, 0, 0}
653 };
654
655 /* [1296x736_30fps] */
656 static struct misensor_reg const mt9m114_736P_init[] = {
657         {MISENSOR_16BIT, 0x98E, 0x1000},
658         {MISENSOR_8BIT, 0xC97E, 0x01},    /* cam_sysctl_pll_enable = 1 */
659         {MISENSOR_16BIT, 0xC980, 0x011F}, /* cam_sysctl_pll_divider_m_n = 287 */
660         {MISENSOR_16BIT, 0xC982, 0x0700}, /* cam_sysctl_pll_divider_p = 1792 */
661         {MISENSOR_16BIT, 0xC800, 0x0078}, /* cam_sensor_cfg_y_addr_start = 120*/
662         {MISENSOR_16BIT, 0xC802, 0x0000}, /* cam_sensor_cfg_x_addr_start = 0 */
663         {MISENSOR_16BIT, 0xC804, 0x0357}, /* cam_sensor_cfg_y_addr_end = 855 */
664         {MISENSOR_16BIT, 0xC806, 0x050F}, /* cam_sensor_cfg_x_addr_end = 1295 */
665         {MISENSOR_32BIT, 0xC808, 0x237A07F}, /* cam_sensor_cfg_pixclk=37199999*/
666         {MISENSOR_16BIT, 0xC80C, 0x0001}, /* cam_sensor_cfg_row_speed = 1 */
667         /* cam_sensor_cfg_fine_integ_time_min = 219 */
668         {MISENSOR_16BIT, 0xC80E, 0x00DB},
669         /* 0x062E //cam_sensor_cfg_fine_integ_time_max = 1469 */
670         {MISENSOR_16BIT, 0xC810, 0x05BD},
671         /* 0x074C //cam_sensor_cfg_frame_length_lines = 775 */
672         {MISENSOR_16BIT, 0xC812, 0x0307},
673         /* 0x06B1 /cam_sensor_cfg_line_length_pck = 1600 */
674         {MISENSOR_16BIT, 0xC814, 0x0640},
675         /* cam_sensor_cfg_fine_correction = 96 */
676         {MISENSOR_16BIT, 0xC816, 0x0060},
677         /* cam_sensor_cfg_cpipe_last_row = 731 */
678         {MISENSOR_16BIT, 0xC818, 0x02DB},
679         {MISENSOR_16BIT, 0xC826, 0x0020}, /* cam_sensor_cfg_reg_0_data = 32 */
680         {MISENSOR_16BIT, 0xC834, 0x0000}, /* cam_sensor_control_read_mode = 0 */
681         {MISENSOR_16BIT, 0xC854, 0x0000}, /* cam_crop_window_xoffset = 0 */
682         {MISENSOR_16BIT, 0xC856, 0x0000}, /* cam_crop_window_yoffset = 0 */
683         {MISENSOR_16BIT, 0xC858, 0x0508}, /* cam_crop_window_width = 1288 */
684         {MISENSOR_16BIT, 0xC85A, 0x02D8}, /* cam_crop_window_height = 728 */
685         {MISENSOR_8BIT, 0xC85C, 0x03}, /* cam_crop_cropmode = 3 */
686         {MISENSOR_16BIT, 0xC868, 0x0508}, /* cam_output_width = 1288 */
687         {MISENSOR_16BIT, 0xC86A, 0x02D8}, /* cam_output_height = 728 */
688         {MISENSOR_8BIT, 0xC878, 0x00}, /* 0x0E //cam_aet_aemode = 0 */
689         {MISENSOR_TOK_TERM, 0, 0}
690 };
691
692 /* [736x496_30fps_768Mbps] */
693 #if 0 /* Currently unused */
694 static struct misensor_reg const mt9m114_720_480P_init[] = {
695         {MISENSOR_16BIT, 0x98E, 0x1000},
696         {MISENSOR_8BIT, 0xC97E, 0x01},    /* cam_sysctl_pll_enable = 1 */
697         {MISENSOR_16BIT, 0xC980, 0x0128}, /* cam_sysctl_pll_divider_m_n = 276 */
698         {MISENSOR_16BIT, 0xC982, 0x0700}, /* cam_sysctl_pll_divider_p = 1792 */
699         {MISENSOR_16BIT, 0xC800, 0x00F0}, /* cam_sensor_cfg_y_addr_start = 240*/
700         {MISENSOR_16BIT, 0xC802, 0x0118}, /* cam_sensor_cfg_x_addr_start = 280*/
701         {MISENSOR_16BIT, 0xC804, 0x02DF}, /* cam_sensor_cfg_y_addr_end = 735 */
702         {MISENSOR_16BIT, 0xC806, 0x03F7}, /* cam_sensor_cfg_x_addr_end = 1015 */
703         /* cam_sensor_cfg_pixclk = 48000000 */
704         {MISENSOR_32BIT, 0xC808, 0x2DC6C00},
705         {MISENSOR_16BIT, 0xC80C, 0x0001}, /* cam_sensor_cfg_row_speed = 1 */
706         /* cam_sensor_cfg_fine_integ_time_min = 219 */
707         {MISENSOR_16BIT, 0xC80E, 0x00DB},
708         /* 0x062E //cam_sensor_cfg_fine_integ_time_max = 1459 */
709         {MISENSOR_16BIT, 0xC810, 0x05B3},
710         /* 0x074C //cam_sensor_cfg_frame_length_lines = 997 */
711         {MISENSOR_16BIT, 0xC812, 0x03E5},
712         /* 0x06B1 /cam_sensor_cfg_line_length_pck = 1604 */
713         {MISENSOR_16BIT, 0xC814, 0x0644},
714         /* cam_sensor_cfg_fine_correction = 96 */
715         {MISENSOR_16BIT, 0xC816, 0x0060},
716         {MISENSOR_16BIT, 0xC818, 0x03C3}, /* cam_sensor_cfg_cpipe_last_row=963*/
717         {MISENSOR_16BIT, 0xC826, 0x0020}, /* cam_sensor_cfg_reg_0_data = 32 */
718         {MISENSOR_16BIT, 0xC834, 0x0000}, /* cam_sensor_control_read_mode = 0*/
719         {MISENSOR_16BIT, 0xC854, 0x0000}, /* cam_crop_window_xoffset = 0 */
720         {MISENSOR_16BIT, 0xC856, 0x0000}, /* cam_crop_window_yoffset = 0 */
721         {MISENSOR_16BIT, 0xC858, 0x02D8}, /* cam_crop_window_width = 728 */
722         {MISENSOR_16BIT, 0xC85A, 0x01E8}, /* cam_crop_window_height = 488 */
723         {MISENSOR_8BIT, 0xC85C, 0x03}, /* cam_crop_cropmode = 3 */
724         {MISENSOR_16BIT, 0xC868, 0x02D8}, /* cam_output_width = 728 */
725         {MISENSOR_16BIT, 0xC86A, 0x01E8}, /* cam_output_height = 488 */
726         {MISENSOR_8BIT, 0xC878, 0x00}, /* 0x0E //cam_aet_aemode = 0 */
727         {MISENSOR_TOK_TERM, 0, 0}
728 };
729 #endif
730
731 static struct misensor_reg const mt9m114_common[] = {
732         /* reset */
733         {MISENSOR_16BIT,  0x301A, 0x0234},
734         /* LOAD = Step2-PLL_Timing      //PLL and Timing */
735         {MISENSOR_16BIT, 0x098E, 0x1000}, /* LOGICAL_ADDRESS_ACCESS */
736         {MISENSOR_8BIT, 0xC97E, 0x01},    /* cam_sysctl_pll_enable = 1 */
737         {MISENSOR_16BIT, 0xC980, 0x0128}, /* cam_sysctl_pll_divider_m_n = 276 */
738         {MISENSOR_16BIT, 0xC982, 0x0700}, /* cam_sysctl_pll_divider_p = 1792 */
739         {MISENSOR_16BIT, 0xC800, 0x0000}, /* cam_sensor_cfg_y_addr_start = 216*/
740         {MISENSOR_16BIT, 0xC802, 0x0000}, /* cam_sensor_cfg_x_addr_start = 168*/
741         {MISENSOR_16BIT, 0xC804, 0x03CD}, /* cam_sensor_cfg_y_addr_end = 761 */
742         {MISENSOR_16BIT, 0xC806, 0x050D}, /* cam_sensor_cfg_x_addr_end = 1127 */
743         {MISENSOR_16BIT, 0xC808, 0x02DC}, /* cam_sensor_cfg_pixclk = 24000000 */
744         {MISENSOR_16BIT, 0xC80A, 0x6C00},
745         {MISENSOR_16BIT, 0xC80C, 0x0001}, /* cam_sensor_cfg_row_speed = 1 */
746         /* cam_sensor_cfg_fine_integ_time_min = 219 */
747         {MISENSOR_16BIT, 0xC80E, 0x01C3},
748         /* cam_sensor_cfg_fine_integ_time_max = 1149 */
749         {MISENSOR_16BIT, 0xC810, 0x03F7},
750         /* cam_sensor_cfg_frame_length_lines = 625 */
751         {MISENSOR_16BIT, 0xC812, 0x0500},
752         /* cam_sensor_cfg_line_length_pck = 1280 */
753         {MISENSOR_16BIT, 0xC814, 0x04E2},
754         /* cam_sensor_cfg_fine_correction = 96 */
755         {MISENSOR_16BIT, 0xC816, 0x00E0},
756         /* cam_sensor_cfg_cpipe_last_row = 541 */
757         {MISENSOR_16BIT, 0xC818, 0x01E3},
758         {MISENSOR_16BIT, 0xC826, 0x0020}, /* cam_sensor_cfg_reg_0_data = 32 */
759         {MISENSOR_16BIT, 0xC834, 0x0330}, /* cam_sensor_control_read_mode = 0 */
760         {MISENSOR_16BIT, 0xC854, 0x0000}, /* cam_crop_window_xoffset = 0 */
761         {MISENSOR_16BIT, 0xC856, 0x0000}, /* cam_crop_window_yoffset = 0 */
762         {MISENSOR_16BIT, 0xC858, 0x0280}, /* cam_crop_window_width = 952 */
763         {MISENSOR_16BIT, 0xC85A, 0x01E0}, /* cam_crop_window_height = 538 */
764         {MISENSOR_8BIT, 0xC85C, 0x03},    /* cam_crop_cropmode = 3 */
765         {MISENSOR_16BIT, 0xC868, 0x0280}, /* cam_output_width = 952 */
766         {MISENSOR_16BIT, 0xC86A, 0x01E0}, /* cam_output_height = 538 */
767         /*
768          * LOAD = Step3-Recommended
769          * Patch, Errata and Sensor optimization Setting
770          */
771         {MISENSOR_16BIT, 0x316A, 0x8270}, /* DAC_TXLO_ROW */
772         {MISENSOR_16BIT, 0x316C, 0x8270}, /* DAC_TXLO */
773         {MISENSOR_16BIT, 0x3ED0, 0x2305}, /* DAC_LD_4_5 */
774         {MISENSOR_16BIT, 0x3ED2, 0x77CF}, /* DAC_LD_6_7 */
775         {MISENSOR_16BIT, 0x316E, 0x8202}, /* DAC_ECL */
776         {MISENSOR_16BIT, 0x3180, 0x87FF}, /* DELTA_DK_CONTROL */
777         {MISENSOR_16BIT, 0x30D4, 0x6080}, /* COLUMN_CORRECTION */
778         {MISENSOR_16BIT, 0xA802, 0x0008}, /* AE_TRACK_MODE */
779         {MISENSOR_16BIT, 0x3E14, 0xFF39}, /* SAMP_COL_PUP2 */
780         {MISENSOR_16BIT, 0x31E0, 0x0003}, /* PIX_DEF_ID */
781         /* LOAD = Step8-Features        //Ports, special features, etc. */
782         {MISENSOR_16BIT, 0x098E, 0x0000}, /* LOGICAL_ADDRESS_ACCESS */
783         {MISENSOR_16BIT, 0x001E, 0x0777}, /* PAD_SLEW */
784         {MISENSOR_16BIT, 0x098E, 0x0000}, /* LOGICAL_ADDRESS_ACCESS */
785         {MISENSOR_16BIT, 0xC984, 0x8001}, /* CAM_PORT_OUTPUT_CONTROL */
786         {MISENSOR_16BIT, 0xC988, 0x0F00}, /* CAM_PORT_MIPI_TIMING_T_HS_ZERO */
787         /* CAM_PORT_MIPI_TIMING_T_HS_EXIT_HS_TRAIL */
788         {MISENSOR_16BIT, 0xC98A, 0x0B07},
789         /* CAM_PORT_MIPI_TIMING_T_CLK_POST_CLK_PRE */
790         {MISENSOR_16BIT, 0xC98C, 0x0D01},
791         /* CAM_PORT_MIPI_TIMING_T_CLK_TRAIL_CLK_ZERO */
792         {MISENSOR_16BIT, 0xC98E, 0x071D},
793         {MISENSOR_16BIT, 0xC990, 0x0006}, /* CAM_PORT_MIPI_TIMING_T_LPX */
794         {MISENSOR_16BIT, 0xC992, 0x0A0C}, /* CAM_PORT_MIPI_TIMING_INIT_TIMING */
795         {MISENSOR_16BIT, 0x3C5A, 0x0009}, /* MIPI_DELAY_TRIM */
796         {MISENSOR_16BIT, 0xC86C, 0x0210}, /* CAM_OUTPUT_FORMAT */
797         {MISENSOR_16BIT, 0xA804, 0x0000}, /* AE_TRACK_ALGO */
798         /* default exposure */
799         {MISENSOR_16BIT, 0x3012, 0x0110}, /* COMMAND_REGISTER */
800         {MISENSOR_TOK_TERM, 0, 0},
801
802 };
803
804 #if 0 /* Currently unused */
805 static struct misensor_reg const mt9m114_antiflicker_50hz[] = {
806         {MISENSOR_16BIT,  0x098E, 0xC88B},
807         {MISENSOR_8BIT,  0xC88B, 0x32},
808         {MISENSOR_8BIT,  0xDC00, 0x28},
809         {MISENSOR_16BIT,  0x0080, 0x8002},
810         {MISENSOR_TOK_TERM, 0, 0}
811 };
812
813 static struct misensor_reg const mt9m114_antiflicker_60hz[] = {
814         {MISENSOR_16BIT,  0x098E, 0xC88B},
815         {MISENSOR_8BIT,  0xC88B, 0x3C},
816         {MISENSOR_8BIT,  0xDC00, 0x28},
817         {MISENSOR_16BIT,  0x0080, 0x8002},
818         {MISENSOR_TOK_TERM, 0, 0}
819 };
820
821 static struct misensor_reg const mt9m114_iq[] = {
822         /* [Step3-Recommended] [Sensor optimization] */
823         {MISENSOR_16BIT,        0x316A, 0x8270},
824         {MISENSOR_16BIT,        0x316C, 0x8270},
825         {MISENSOR_16BIT,        0x3ED0, 0x2305},
826         {MISENSOR_16BIT,        0x3ED2, 0x77CF},
827         {MISENSOR_16BIT,        0x316E, 0x8202},
828         {MISENSOR_16BIT,        0x3180, 0x87FF},
829         {MISENSOR_16BIT,        0x30D4, 0x6080},
830         {MISENSOR_16BIT,        0xA802, 0x0008},
831
832         /* This register is from vender to avoid low light color noise */
833         {MISENSOR_16BIT,        0x31E0, 0x0001},
834
835         /* LOAD=Errata item 1 */
836         {MISENSOR_16BIT,        0x3E14, 0xFF39},
837
838         /* LOAD=Errata item 2 */
839         {MISENSOR_16BIT,        0x301A, 0x8234},
840
841         /*
842          * LOAD=Errata item 3
843          * LOAD=Patch 0202;
844          * Feature Recommended; Black level correction fix
845          */
846         {MISENSOR_16BIT,        0x0982, 0x0001},
847         {MISENSOR_16BIT,        0x098A, 0x5000},
848         {MISENSOR_16BIT,        0xD000, 0x70CF},
849         {MISENSOR_16BIT,        0xD002, 0xFFFF},
850         {MISENSOR_16BIT,        0xD004, 0xC5D4},
851         {MISENSOR_16BIT,        0xD006, 0x903A},
852         {MISENSOR_16BIT,        0xD008, 0x2144},
853         {MISENSOR_16BIT,        0xD00A, 0x0C00},
854         {MISENSOR_16BIT,        0xD00C, 0x2186},
855         {MISENSOR_16BIT,        0xD00E, 0x0FF3},
856         {MISENSOR_16BIT,        0xD010, 0xB844},
857         {MISENSOR_16BIT,        0xD012, 0xB948},
858         {MISENSOR_16BIT,        0xD014, 0xE082},
859         {MISENSOR_16BIT,        0xD016, 0x20CC},
860         {MISENSOR_16BIT,        0xD018, 0x80E2},
861         {MISENSOR_16BIT,        0xD01A, 0x21CC},
862         {MISENSOR_16BIT,        0xD01C, 0x80A2},
863         {MISENSOR_16BIT,        0xD01E, 0x21CC},
864         {MISENSOR_16BIT,        0xD020, 0x80E2},
865         {MISENSOR_16BIT,        0xD022, 0xF404},
866         {MISENSOR_16BIT,        0xD024, 0xD801},
867         {MISENSOR_16BIT,        0xD026, 0xF003},
868         {MISENSOR_16BIT,        0xD028, 0xD800},
869         {MISENSOR_16BIT,        0xD02A, 0x7EE0},
870         {MISENSOR_16BIT,        0xD02C, 0xC0F1},
871         {MISENSOR_16BIT,        0xD02E, 0x08BA},
872
873         {MISENSOR_16BIT,        0xD030, 0x0600},
874         {MISENSOR_16BIT,        0xD032, 0xC1A1},
875         {MISENSOR_16BIT,        0xD034, 0x76CF},
876         {MISENSOR_16BIT,        0xD036, 0xFFFF},
877         {MISENSOR_16BIT,        0xD038, 0xC130},
878         {MISENSOR_16BIT,        0xD03A, 0x6E04},
879         {MISENSOR_16BIT,        0xD03C, 0xC040},
880         {MISENSOR_16BIT,        0xD03E, 0x71CF},
881         {MISENSOR_16BIT,        0xD040, 0xFFFF},
882         {MISENSOR_16BIT,        0xD042, 0xC790},
883         {MISENSOR_16BIT,        0xD044, 0x8103},
884         {MISENSOR_16BIT,        0xD046, 0x77CF},
885         {MISENSOR_16BIT,        0xD048, 0xFFFF},
886         {MISENSOR_16BIT,        0xD04A, 0xC7C0},
887         {MISENSOR_16BIT,        0xD04C, 0xE001},
888         {MISENSOR_16BIT,        0xD04E, 0xA103},
889         {MISENSOR_16BIT,        0xD050, 0xD800},
890         {MISENSOR_16BIT,        0xD052, 0x0C6A},
891         {MISENSOR_16BIT,        0xD054, 0x04E0},
892         {MISENSOR_16BIT,        0xD056, 0xB89E},
893         {MISENSOR_16BIT,        0xD058, 0x7508},
894         {MISENSOR_16BIT,        0xD05A, 0x8E1C},
895         {MISENSOR_16BIT,        0xD05C, 0x0809},
896         {MISENSOR_16BIT,        0xD05E, 0x0191},
897
898         {MISENSOR_16BIT,        0xD060, 0xD801},
899         {MISENSOR_16BIT,        0xD062, 0xAE1D},
900         {MISENSOR_16BIT,        0xD064, 0xE580},
901         {MISENSOR_16BIT,        0xD066, 0x20CA},
902         {MISENSOR_16BIT,        0xD068, 0x0022},
903         {MISENSOR_16BIT,        0xD06A, 0x20CF},
904         {MISENSOR_16BIT,        0xD06C, 0x0522},
905         {MISENSOR_16BIT,        0xD06E, 0x0C5C},
906         {MISENSOR_16BIT,        0xD070, 0x04E2},
907         {MISENSOR_16BIT,        0xD072, 0x21CA},
908         {MISENSOR_16BIT,        0xD074, 0x0062},
909         {MISENSOR_16BIT,        0xD076, 0xE580},
910         {MISENSOR_16BIT,        0xD078, 0xD901},
911         {MISENSOR_16BIT,        0xD07A, 0x79C0},
912         {MISENSOR_16BIT,        0xD07C, 0xD800},
913         {MISENSOR_16BIT,        0xD07E, 0x0BE6},
914         {MISENSOR_16BIT,        0xD080, 0x04E0},
915         {MISENSOR_16BIT,        0xD082, 0xB89E},
916         {MISENSOR_16BIT,        0xD084, 0x70CF},
917         {MISENSOR_16BIT,        0xD086, 0xFFFF},
918         {MISENSOR_16BIT,        0xD088, 0xC8D4},
919         {MISENSOR_16BIT,        0xD08A, 0x9002},
920         {MISENSOR_16BIT,        0xD08C, 0x0857},
921         {MISENSOR_16BIT,        0xD08E, 0x025E},
922
923         {MISENSOR_16BIT,        0xD090, 0xFFDC},
924         {MISENSOR_16BIT,        0xD092, 0xE080},
925         {MISENSOR_16BIT,        0xD094, 0x25CC},
926         {MISENSOR_16BIT,        0xD096, 0x9022},
927         {MISENSOR_16BIT,        0xD098, 0xF225},
928         {MISENSOR_16BIT,        0xD09A, 0x1700},
929         {MISENSOR_16BIT,        0xD09C, 0x108A},
930         {MISENSOR_16BIT,        0xD09E, 0x73CF},
931         {MISENSOR_16BIT,        0xD0A0, 0xFF00},
932         {MISENSOR_16BIT,        0xD0A2, 0x3174},
933         {MISENSOR_16BIT,        0xD0A4, 0x9307},
934         {MISENSOR_16BIT,        0xD0A6, 0x2A04},
935         {MISENSOR_16BIT,        0xD0A8, 0x103E},
936         {MISENSOR_16BIT,        0xD0AA, 0x9328},
937         {MISENSOR_16BIT,        0xD0AC, 0x2942},
938         {MISENSOR_16BIT,        0xD0AE, 0x7140},
939         {MISENSOR_16BIT,        0xD0B0, 0x2A04},
940         {MISENSOR_16BIT,        0xD0B2, 0x107E},
941         {MISENSOR_16BIT,        0xD0B4, 0x9349},
942         {MISENSOR_16BIT,        0xD0B6, 0x2942},
943         {MISENSOR_16BIT,        0xD0B8, 0x7141},
944         {MISENSOR_16BIT,        0xD0BA, 0x2A04},
945         {MISENSOR_16BIT,        0xD0BC, 0x10BE},
946         {MISENSOR_16BIT,        0xD0BE, 0x934A},
947
948         {MISENSOR_16BIT,        0xD0C0, 0x2942},
949         {MISENSOR_16BIT,        0xD0C2, 0x714B},
950         {MISENSOR_16BIT,        0xD0C4, 0x2A04},
951         {MISENSOR_16BIT,        0xD0C6, 0x10BE},
952         {MISENSOR_16BIT,        0xD0C8, 0x130C},
953         {MISENSOR_16BIT,        0xD0CA, 0x010A},
954         {MISENSOR_16BIT,        0xD0CC, 0x2942},
955         {MISENSOR_16BIT,        0xD0CE, 0x7142},
956         {MISENSOR_16BIT,        0xD0D0, 0x2250},
957         {MISENSOR_16BIT,        0xD0D2, 0x13CA},
958         {MISENSOR_16BIT,        0xD0D4, 0x1B0C},
959         {MISENSOR_16BIT,        0xD0D6, 0x0284},
960         {MISENSOR_16BIT,        0xD0D8, 0xB307},
961         {MISENSOR_16BIT,        0xD0DA, 0xB328},
962         {MISENSOR_16BIT,        0xD0DC, 0x1B12},
963         {MISENSOR_16BIT,        0xD0DE, 0x02C4},
964         {MISENSOR_16BIT,        0xD0E0, 0xB34A},
965         {MISENSOR_16BIT,        0xD0E2, 0xED88},
966         {MISENSOR_16BIT,        0xD0E4, 0x71CF},
967         {MISENSOR_16BIT,        0xD0E6, 0xFF00},
968         {MISENSOR_16BIT,        0xD0E8, 0x3174},
969         {MISENSOR_16BIT,        0xD0EA, 0x9106},
970         {MISENSOR_16BIT,        0xD0EC, 0xB88F},
971         {MISENSOR_16BIT,        0xD0EE, 0xB106},
972
973         {MISENSOR_16BIT,        0xD0F0, 0x210A},
974         {MISENSOR_16BIT,        0xD0F2, 0x8340},
975         {MISENSOR_16BIT,        0xD0F4, 0xC000},
976         {MISENSOR_16BIT,        0xD0F6, 0x21CA},
977         {MISENSOR_16BIT,        0xD0F8, 0x0062},
978         {MISENSOR_16BIT,        0xD0FA, 0x20F0},
979         {MISENSOR_16BIT,        0xD0FC, 0x0040},
980         {MISENSOR_16BIT,        0xD0FE, 0x0B02},
981         {MISENSOR_16BIT,        0xD100, 0x0320},
982         {MISENSOR_16BIT,        0xD102, 0xD901},
983         {MISENSOR_16BIT,        0xD104, 0x07F1},
984         {MISENSOR_16BIT,        0xD106, 0x05E0},
985         {MISENSOR_16BIT,        0xD108, 0xC0A1},
986         {MISENSOR_16BIT,        0xD10A, 0x78E0},
987         {MISENSOR_16BIT,        0xD10C, 0xC0F1},
988         {MISENSOR_16BIT,        0xD10E, 0x71CF},
989         {MISENSOR_16BIT,        0xD110, 0xFFFF},
990         {MISENSOR_16BIT,        0xD112, 0xC7C0},
991         {MISENSOR_16BIT,        0xD114, 0xD840},
992         {MISENSOR_16BIT,        0xD116, 0xA900},
993         {MISENSOR_16BIT,        0xD118, 0x71CF},
994         {MISENSOR_16BIT,        0xD11A, 0xFFFF},
995         {MISENSOR_16BIT,        0xD11C, 0xD02C},
996         {MISENSOR_16BIT,        0xD11E, 0xD81E},
997
998         {MISENSOR_16BIT,        0xD120, 0x0A5A},
999         {MISENSOR_16BIT,        0xD122, 0x04E0},
1000         {MISENSOR_16BIT,        0xD124, 0xDA00},
1001         {MISENSOR_16BIT,        0xD126, 0xD800},
1002         {MISENSOR_16BIT,        0xD128, 0xC0D1},
1003         {MISENSOR_16BIT,        0xD12A, 0x7EE0},
1004
1005         {MISENSOR_16BIT,        0x098E, 0x0000},
1006         {MISENSOR_16BIT,        0xE000, 0x010C},
1007         {MISENSOR_16BIT,        0xE002, 0x0202},
1008         {MISENSOR_16BIT,        0xE004, 0x4103},
1009         {MISENSOR_16BIT,        0xE006, 0x0202},
1010         {MISENSOR_16BIT,        0x0080, 0xFFF0},
1011         {MISENSOR_16BIT,        0x0080, 0xFFF1},
1012
1013         /* LOAD=Patch 0302; Feature Recommended; Adaptive Sensitivity */
1014         {MISENSOR_16BIT,        0x0982, 0x0001},
1015         {MISENSOR_16BIT,        0x098A, 0x512C},
1016         {MISENSOR_16BIT,        0xD12C, 0x70CF},
1017         {MISENSOR_16BIT,        0xD12E, 0xFFFF},
1018         {MISENSOR_16BIT,        0xD130, 0xC5D4},
1019         {MISENSOR_16BIT,        0xD132, 0x903A},
1020         {MISENSOR_16BIT,        0xD134, 0x2144},
1021         {MISENSOR_16BIT,        0xD136, 0x0C00},
1022         {MISENSOR_16BIT,        0xD138, 0x2186},
1023         {MISENSOR_16BIT,        0xD13A, 0x0FF3},
1024         {MISENSOR_16BIT,        0xD13C, 0xB844},
1025         {MISENSOR_16BIT,        0xD13E, 0x262F},
1026         {MISENSOR_16BIT,        0xD140, 0xF008},
1027         {MISENSOR_16BIT,        0xD142, 0xB948},
1028         {MISENSOR_16BIT,        0xD144, 0x21CC},
1029         {MISENSOR_16BIT,        0xD146, 0x8021},
1030         {MISENSOR_16BIT,        0xD148, 0xD801},
1031         {MISENSOR_16BIT,        0xD14A, 0xF203},
1032         {MISENSOR_16BIT,        0xD14C, 0xD800},
1033         {MISENSOR_16BIT,        0xD14E, 0x7EE0},
1034         {MISENSOR_16BIT,        0xD150, 0xC0F1},
1035         {MISENSOR_16BIT,        0xD152, 0x71CF},
1036         {MISENSOR_16BIT,        0xD154, 0xFFFF},
1037         {MISENSOR_16BIT,        0xD156, 0xC610},
1038         {MISENSOR_16BIT,        0xD158, 0x910E},
1039         {MISENSOR_16BIT,        0xD15A, 0x208C},
1040         {MISENSOR_16BIT,        0xD15C, 0x8014},
1041         {MISENSOR_16BIT,        0xD15E, 0xF418},
1042         {MISENSOR_16BIT,        0xD160, 0x910F},
1043         {MISENSOR_16BIT,        0xD162, 0x208C},
1044         {MISENSOR_16BIT,        0xD164, 0x800F},
1045         {MISENSOR_16BIT,        0xD166, 0xF414},
1046         {MISENSOR_16BIT,        0xD168, 0x9116},
1047         {MISENSOR_16BIT,        0xD16A, 0x208C},
1048         {MISENSOR_16BIT,        0xD16C, 0x800A},
1049         {MISENSOR_16BIT,        0xD16E, 0xF410},
1050         {MISENSOR_16BIT,        0xD170, 0x9117},
1051         {MISENSOR_16BIT,        0xD172, 0x208C},
1052         {MISENSOR_16BIT,        0xD174, 0x8807},
1053         {MISENSOR_16BIT,        0xD176, 0xF40C},
1054         {MISENSOR_16BIT,        0xD178, 0x9118},
1055         {MISENSOR_16BIT,        0xD17A, 0x2086},
1056         {MISENSOR_16BIT,        0xD17C, 0x0FF3},
1057         {MISENSOR_16BIT,        0xD17E, 0xB848},
1058         {MISENSOR_16BIT,        0xD180, 0x080D},
1059         {MISENSOR_16BIT,        0xD182, 0x0090},
1060         {MISENSOR_16BIT,        0xD184, 0xFFEA},
1061         {MISENSOR_16BIT,        0xD186, 0xE081},
1062         {MISENSOR_16BIT,        0xD188, 0xD801},
1063         {MISENSOR_16BIT,        0xD18A, 0xF203},
1064         {MISENSOR_16BIT,        0xD18C, 0xD800},
1065         {MISENSOR_16BIT,        0xD18E, 0xC0D1},
1066         {MISENSOR_16BIT,        0xD190, 0x7EE0},
1067         {MISENSOR_16BIT,        0xD192, 0x78E0},
1068         {MISENSOR_16BIT,        0xD194, 0xC0F1},
1069         {MISENSOR_16BIT,        0xD196, 0x71CF},
1070         {MISENSOR_16BIT,        0xD198, 0xFFFF},
1071         {MISENSOR_16BIT,        0xD19A, 0xC610},
1072         {MISENSOR_16BIT,        0xD19C, 0x910E},
1073         {MISENSOR_16BIT,        0xD19E, 0x208C},
1074         {MISENSOR_16BIT,        0xD1A0, 0x800A},
1075         {MISENSOR_16BIT,        0xD1A2, 0xF418},
1076         {MISENSOR_16BIT,        0xD1A4, 0x910F},
1077         {MISENSOR_16BIT,        0xD1A6, 0x208C},
1078         {MISENSOR_16BIT,        0xD1A8, 0x8807},
1079         {MISENSOR_16BIT,        0xD1AA, 0xF414},
1080         {MISENSOR_16BIT,        0xD1AC, 0x9116},
1081         {MISENSOR_16BIT,        0xD1AE, 0x208C},
1082         {MISENSOR_16BIT,        0xD1B0, 0x800A},
1083         {MISENSOR_16BIT,        0xD1B2, 0xF410},
1084         {MISENSOR_16BIT,        0xD1B4, 0x9117},
1085         {MISENSOR_16BIT,        0xD1B6, 0x208C},
1086         {MISENSOR_16BIT,        0xD1B8, 0x8807},
1087         {MISENSOR_16BIT,        0xD1BA, 0xF40C},
1088         {MISENSOR_16BIT,        0xD1BC, 0x9118},
1089         {MISENSOR_16BIT,        0xD1BE, 0x2086},
1090         {MISENSOR_16BIT,        0xD1C0, 0x0FF3},
1091         {MISENSOR_16BIT,        0xD1C2, 0xB848},
1092         {MISENSOR_16BIT,        0xD1C4, 0x080D},
1093         {MISENSOR_16BIT,        0xD1C6, 0x0090},
1094         {MISENSOR_16BIT,        0xD1C8, 0xFFD9},
1095         {MISENSOR_16BIT,        0xD1CA, 0xE080},
1096         {MISENSOR_16BIT,        0xD1CC, 0xD801},
1097         {MISENSOR_16BIT,        0xD1CE, 0xF203},
1098         {MISENSOR_16BIT,        0xD1D0, 0xD800},
1099         {MISENSOR_16BIT,        0xD1D2, 0xF1DF},
1100         {MISENSOR_16BIT,        0xD1D4, 0x9040},
1101         {MISENSOR_16BIT,        0xD1D6, 0x71CF},
1102         {MISENSOR_16BIT,        0xD1D8, 0xFFFF},
1103         {MISENSOR_16BIT,        0xD1DA, 0xC5D4},
1104         {MISENSOR_16BIT,        0xD1DC, 0xB15A},
1105         {MISENSOR_16BIT,        0xD1DE, 0x9041},
1106         {MISENSOR_16BIT,        0xD1E0, 0x73CF},
1107         {MISENSOR_16BIT,        0xD1E2, 0xFFFF},
1108         {MISENSOR_16BIT,        0xD1E4, 0xC7D0},
1109         {MISENSOR_16BIT,        0xD1E6, 0xB140},
1110         {MISENSOR_16BIT,        0xD1E8, 0x9042},
1111         {MISENSOR_16BIT,        0xD1EA, 0xB141},
1112         {MISENSOR_16BIT,        0xD1EC, 0x9043},
1113         {MISENSOR_16BIT,        0xD1EE, 0xB142},
1114         {MISENSOR_16BIT,        0xD1F0, 0x9044},
1115         {MISENSOR_16BIT,        0xD1F2, 0xB143},
1116         {MISENSOR_16BIT,        0xD1F4, 0x9045},
1117         {MISENSOR_16BIT,        0xD1F6, 0xB147},
1118         {MISENSOR_16BIT,        0xD1F8, 0x9046},
1119         {MISENSOR_16BIT,        0xD1FA, 0xB148},
1120         {MISENSOR_16BIT,        0xD1FC, 0x9047},
1121         {MISENSOR_16BIT,        0xD1FE, 0xB14B},
1122         {MISENSOR_16BIT,        0xD200, 0x9048},
1123         {MISENSOR_16BIT,        0xD202, 0xB14C},
1124         {MISENSOR_16BIT,        0xD204, 0x9049},
1125         {MISENSOR_16BIT,        0xD206, 0x1958},
1126         {MISENSOR_16BIT,        0xD208, 0x0084},
1127         {MISENSOR_16BIT,        0xD20A, 0x904A},
1128         {MISENSOR_16BIT,        0xD20C, 0x195A},
1129         {MISENSOR_16BIT,        0xD20E, 0x0084},
1130         {MISENSOR_16BIT,        0xD210, 0x8856},
1131         {MISENSOR_16BIT,        0xD212, 0x1B36},
1132         {MISENSOR_16BIT,        0xD214, 0x8082},
1133         {MISENSOR_16BIT,        0xD216, 0x8857},
1134         {MISENSOR_16BIT,        0xD218, 0x1B37},
1135         {MISENSOR_16BIT,        0xD21A, 0x8082},
1136         {MISENSOR_16BIT,        0xD21C, 0x904C},
1137         {MISENSOR_16BIT,        0xD21E, 0x19A7},
1138         {MISENSOR_16BIT,        0xD220, 0x009C},
1139         {MISENSOR_16BIT,        0xD222, 0x881A},
1140         {MISENSOR_16BIT,        0xD224, 0x7FE0},
1141         {MISENSOR_16BIT,        0xD226, 0x1B54},
1142         {MISENSOR_16BIT,        0xD228, 0x8002},
1143         {MISENSOR_16BIT,        0xD22A, 0x78E0},
1144         {MISENSOR_16BIT,        0xD22C, 0x71CF},
1145         {MISENSOR_16BIT,        0xD22E, 0xFFFF},
1146         {MISENSOR_16BIT,        0xD230, 0xC350},
1147         {MISENSOR_16BIT,        0xD232, 0xD828},
1148         {MISENSOR_16BIT,        0xD234, 0xA90B},
1149         {MISENSOR_16BIT,        0xD236, 0x8100},
1150         {MISENSOR_16BIT,        0xD238, 0x01C5},
1151         {MISENSOR_16BIT,        0xD23A, 0x0320},
1152         {MISENSOR_16BIT,        0xD23C, 0xD900},
1153         {MISENSOR_16BIT,        0xD23E, 0x78E0},
1154         {MISENSOR_16BIT,        0xD240, 0x220A},
1155         {MISENSOR_16BIT,        0xD242, 0x1F80},
1156         {MISENSOR_16BIT,        0xD244, 0xFFFF},
1157         {MISENSOR_16BIT,        0xD246, 0xD4E0},
1158         {MISENSOR_16BIT,        0xD248, 0xC0F1},
1159         {MISENSOR_16BIT,        0xD24A, 0x0811},
1160         {MISENSOR_16BIT,        0xD24C, 0x0051},
1161         {MISENSOR_16BIT,        0xD24E, 0x2240},
1162         {MISENSOR_16BIT,        0xD250, 0x1200},
1163         {MISENSOR_16BIT,        0xD252, 0xFFE1},
1164         {MISENSOR_16BIT,        0xD254, 0xD801},
1165         {MISENSOR_16BIT,        0xD256, 0xF006},
1166         {MISENSOR_16BIT,        0xD258, 0x2240},
1167         {MISENSOR_16BIT,        0xD25A, 0x1900},
1168         {MISENSOR_16BIT,        0xD25C, 0xFFDE},
1169         {MISENSOR_16BIT,        0xD25E, 0xD802},
1170         {MISENSOR_16BIT,        0xD260, 0x1A05},
1171         {MISENSOR_16BIT,        0xD262, 0x1002},
1172         {MISENSOR_16BIT,        0xD264, 0xFFF2},
1173         {MISENSOR_16BIT,        0xD266, 0xF195},
1174         {MISENSOR_16BIT,        0xD268, 0xC0F1},
1175         {MISENSOR_16BIT,        0xD26A, 0x0E7E},
1176         {MISENSOR_16BIT,        0xD26C, 0x05C0},
1177         {MISENSOR_16BIT,        0xD26E, 0x75CF},
1178         {MISENSOR_16BIT,        0xD270, 0xFFFF},
1179         {MISENSOR_16BIT,        0xD272, 0xC84C},
1180         {MISENSOR_16BIT,        0xD274, 0x9502},
1181         {MISENSOR_16BIT,        0xD276, 0x77CF},
1182         {MISENSOR_16BIT,        0xD278, 0xFFFF},
1183         {MISENSOR_16BIT,        0xD27A, 0xC344},
1184         {MISENSOR_16BIT,        0xD27C, 0x2044},
1185         {MISENSOR_16BIT,        0xD27E, 0x008E},
1186         {MISENSOR_16BIT,        0xD280, 0xB8A1},
1187         {MISENSOR_16BIT,        0xD282, 0x0926},
1188         {MISENSOR_16BIT,        0xD284, 0x03E0},
1189         {MISENSOR_16BIT,        0xD286, 0xB502},
1190         {MISENSOR_16BIT,        0xD288, 0x9502},
1191         {MISENSOR_16BIT,        0xD28A, 0x952E},
1192         {MISENSOR_16BIT,        0xD28C, 0x7E05},
1193         {MISENSOR_16BIT,        0xD28E, 0xB5C2},
1194         {MISENSOR_16BIT,        0xD290, 0x70CF},
1195         {MISENSOR_16BIT,        0xD292, 0xFFFF},
1196         {MISENSOR_16BIT,        0xD294, 0xC610},
1197         {MISENSOR_16BIT,        0xD296, 0x099A},
1198         {MISENSOR_16BIT,        0xD298, 0x04A0},
1199         {MISENSOR_16BIT,        0xD29A, 0xB026},
1200         {MISENSOR_16BIT,        0xD29C, 0x0E02},
1201         {MISENSOR_16BIT,        0xD29E, 0x0560},
1202         {MISENSOR_16BIT,        0xD2A0, 0xDE00},
1203         {MISENSOR_16BIT,        0xD2A2, 0x0A12},
1204         {MISENSOR_16BIT,        0xD2A4, 0x0320},
1205         {MISENSOR_16BIT,        0xD2A6, 0xB7C4},
1206         {MISENSOR_16BIT,        0xD2A8, 0x0B36},
1207         {MISENSOR_16BIT,        0xD2AA, 0x03A0},
1208         {MISENSOR_16BIT,        0xD2AC, 0x70C9},
1209         {MISENSOR_16BIT,        0xD2AE, 0x9502},
1210         {MISENSOR_16BIT,        0xD2B0, 0x7608},
1211         {MISENSOR_16BIT,        0xD2B2, 0xB8A8},
1212         {MISENSOR_16BIT,        0xD2B4, 0xB502},
1213         {MISENSOR_16BIT,        0xD2B6, 0x70CF},
1214         {MISENSOR_16BIT,        0xD2B8, 0x0000},
1215         {MISENSOR_16BIT,        0xD2BA, 0x5536},
1216         {MISENSOR_16BIT,        0xD2BC, 0x7860},
1217         {MISENSOR_16BIT,        0xD2BE, 0x2686},
1218         {MISENSOR_16BIT,        0xD2C0, 0x1FFB},
1219         {MISENSOR_16BIT,        0xD2C2, 0x9502},
1220         {MISENSOR_16BIT,        0xD2C4, 0x78C5},
1221         {MISENSOR_16BIT,        0xD2C6, 0x0631},
1222         {MISENSOR_16BIT,        0xD2C8, 0x05E0},
1223         {MISENSOR_16BIT,        0xD2CA, 0xB502},
1224         {MISENSOR_16BIT,        0xD2CC, 0x72CF},
1225         {MISENSOR_16BIT,        0xD2CE, 0xFFFF},
1226         {MISENSOR_16BIT,        0xD2D0, 0xC5D4},
1227         {MISENSOR_16BIT,        0xD2D2, 0x923A},
1228         {MISENSOR_16BIT,        0xD2D4, 0x73CF},
1229         {MISENSOR_16BIT,        0xD2D6, 0xFFFF},
1230         {MISENSOR_16BIT,        0xD2D8, 0xC7D0},
1231         {MISENSOR_16BIT,        0xD2DA, 0xB020},
1232         {MISENSOR_16BIT,        0xD2DC, 0x9220},
1233         {MISENSOR_16BIT,        0xD2DE, 0xB021},
1234         {MISENSOR_16BIT,        0xD2E0, 0x9221},
1235         {MISENSOR_16BIT,        0xD2E2, 0xB022},
1236         {MISENSOR_16BIT,        0xD2E4, 0x9222},
1237         {MISENSOR_16BIT,        0xD2E6, 0xB023},
1238         {MISENSOR_16BIT,        0xD2E8, 0x9223},
1239         {MISENSOR_16BIT,        0xD2EA, 0xB024},
1240         {MISENSOR_16BIT,        0xD2EC, 0x9227},
1241         {MISENSOR_16BIT,        0xD2EE, 0xB025},
1242         {MISENSOR_16BIT,        0xD2F0, 0x9228},
1243         {MISENSOR_16BIT,        0xD2F2, 0xB026},
1244         {MISENSOR_16BIT,        0xD2F4, 0x922B},
1245         {MISENSOR_16BIT,        0xD2F6, 0xB027},
1246         {MISENSOR_16BIT,        0xD2F8, 0x922C},
1247         {MISENSOR_16BIT,        0xD2FA, 0xB028},
1248         {MISENSOR_16BIT,        0xD2FC, 0x1258},
1249         {MISENSOR_16BIT,        0xD2FE, 0x0101},
1250         {MISENSOR_16BIT,        0xD300, 0xB029},
1251         {MISENSOR_16BIT,        0xD302, 0x125A},
1252         {MISENSOR_16BIT,        0xD304, 0x0101},
1253         {MISENSOR_16BIT,        0xD306, 0xB02A},
1254         {MISENSOR_16BIT,        0xD308, 0x1336},
1255         {MISENSOR_16BIT,        0xD30A, 0x8081},
1256         {MISENSOR_16BIT,        0xD30C, 0xA836},
1257         {MISENSOR_16BIT,        0xD30E, 0x1337},
1258         {MISENSOR_16BIT,        0xD310, 0x8081},
1259         {MISENSOR_16BIT,        0xD312, 0xA837},
1260         {MISENSOR_16BIT,        0xD314, 0x12A7},
1261         {MISENSOR_16BIT,        0xD316, 0x0701},
1262         {MISENSOR_16BIT,        0xD318, 0xB02C},
1263         {MISENSOR_16BIT,        0xD31A, 0x1354},
1264         {MISENSOR_16BIT,        0xD31C, 0x8081},
1265         {MISENSOR_16BIT,        0xD31E, 0x7FE0},
1266         {MISENSOR_16BIT,        0xD320, 0xA83A},
1267         {MISENSOR_16BIT,        0xD322, 0x78E0},
1268         {MISENSOR_16BIT,        0xD324, 0xC0F1},
1269         {MISENSOR_16BIT,        0xD326, 0x0DC2},
1270         {MISENSOR_16BIT,        0xD328, 0x05C0},
1271         {MISENSOR_16BIT,        0xD32A, 0x7608},
1272         {MISENSOR_16BIT,        0xD32C, 0x09BB},
1273         {MISENSOR_16BIT,        0xD32E, 0x0010},
1274         {MISENSOR_16BIT,        0xD330, 0x75CF},
1275         {MISENSOR_16BIT,        0xD332, 0xFFFF},
1276         {MISENSOR_16BIT,        0xD334, 0xD4E0},
1277         {MISENSOR_16BIT,        0xD336, 0x8D21},
1278         {MISENSOR_16BIT,        0xD338, 0x8D00},
1279         {MISENSOR_16BIT,        0xD33A, 0x2153},
1280         {MISENSOR_16BIT,        0xD33C, 0x0003},
1281         {MISENSOR_16BIT,        0xD33E, 0xB8C0},
1282         {MISENSOR_16BIT,        0xD340, 0x8D45},
1283         {MISENSOR_16BIT,        0xD342, 0x0B23},
1284         {MISENSOR_16BIT,        0xD344, 0x0000},
1285         {MISENSOR_16BIT,        0xD346, 0xEA8F},
1286         {MISENSOR_16BIT,        0xD348, 0x0915},
1287         {MISENSOR_16BIT,        0xD34A, 0x001E},
1288         {MISENSOR_16BIT,        0xD34C, 0xFF81},
1289         {MISENSOR_16BIT,        0xD34E, 0xE808},
1290         {MISENSOR_16BIT,        0xD350, 0x2540},
1291         {MISENSOR_16BIT,        0xD352, 0x1900},
1292         {MISENSOR_16BIT,        0xD354, 0xFFDE},
1293         {MISENSOR_16BIT,        0xD356, 0x8D00},
1294         {MISENSOR_16BIT,        0xD358, 0xB880},
1295         {MISENSOR_16BIT,        0xD35A, 0xF004},
1296         {MISENSOR_16BIT,        0xD35C, 0x8D00},
1297         {MISENSOR_16BIT,        0xD35E, 0xB8A0},
1298         {MISENSOR_16BIT,        0xD360, 0xAD00},
1299         {MISENSOR_16BIT,        0xD362, 0x8D05},
1300         {MISENSOR_16BIT,        0xD364, 0xE081},
1301         {MISENSOR_16BIT,        0xD366, 0x20CC},
1302         {MISENSOR_16BIT,        0xD368, 0x80A2},
1303         {MISENSOR_16BIT,        0xD36A, 0xDF00},
1304         {MISENSOR_16BIT,        0xD36C, 0xF40A},
1305         {MISENSOR_16BIT,        0xD36E, 0x71CF},
1306         {MISENSOR_16BIT,        0xD370, 0xFFFF},
1307         {MISENSOR_16BIT,        0xD372, 0xC84C},
1308         {MISENSOR_16BIT,        0xD374, 0x9102},
1309         {MISENSOR_16BIT,        0xD376, 0x7708},
1310         {MISENSOR_16BIT,        0xD378, 0xB8A6},
1311         {MISENSOR_16BIT,        0xD37A, 0x2786},
1312         {MISENSOR_16BIT,        0xD37C, 0x1FFE},
1313         {MISENSOR_16BIT,        0xD37E, 0xB102},
1314         {MISENSOR_16BIT,        0xD380, 0x0B42},
1315         {MISENSOR_16BIT,        0xD382, 0x0180},
1316         {MISENSOR_16BIT,        0xD384, 0x0E3E},
1317         {MISENSOR_16BIT,        0xD386, 0x0180},
1318         {MISENSOR_16BIT,        0xD388, 0x0F4A},
1319         {MISENSOR_16BIT,        0xD38A, 0x0160},
1320         {MISENSOR_16BIT,        0xD38C, 0x70C9},
1321         {MISENSOR_16BIT,        0xD38E, 0x8D05},
1322         {MISENSOR_16BIT,        0xD390, 0xE081},
1323         {MISENSOR_16BIT,        0xD392, 0x20CC},
1324         {MISENSOR_16BIT,        0xD394, 0x80A2},
1325         {MISENSOR_16BIT,        0xD396, 0xF429},
1326         {MISENSOR_16BIT,        0xD398, 0x76CF},
1327         {MISENSOR_16BIT,        0xD39A, 0xFFFF},
1328         {MISENSOR_16BIT,        0xD39C, 0xC84C},
1329         {MISENSOR_16BIT,        0xD39E, 0x082D},
1330         {MISENSOR_16BIT,        0xD3A0, 0x0051},
1331         {MISENSOR_16BIT,        0xD3A2, 0x70CF},
1332         {MISENSOR_16BIT,        0xD3A4, 0xFFFF},
1333         {MISENSOR_16BIT,        0xD3A6, 0xC90C},
1334         {MISENSOR_16BIT,        0xD3A8, 0x8805},
1335         {MISENSOR_16BIT,        0xD3AA, 0x09B6},
1336         {MISENSOR_16BIT,        0xD3AC, 0x0360},
1337         {MISENSOR_16BIT,        0xD3AE, 0xD908},
1338         {MISENSOR_16BIT,        0xD3B0, 0x2099},
1339         {MISENSOR_16BIT,        0xD3B2, 0x0802},
1340         {MISENSOR_16BIT,        0xD3B4, 0x9634},
1341         {MISENSOR_16BIT,        0xD3B6, 0xB503},
1342         {MISENSOR_16BIT,        0xD3B8, 0x7902},
1343         {MISENSOR_16BIT,        0xD3BA, 0x1523},
1344         {MISENSOR_16BIT,        0xD3BC, 0x1080},
1345         {MISENSOR_16BIT,        0xD3BE, 0xB634},
1346         {MISENSOR_16BIT,        0xD3C0, 0xE001},
1347         {MISENSOR_16BIT,        0xD3C2, 0x1D23},
1348         {MISENSOR_16BIT,        0xD3C4, 0x1002},
1349         {MISENSOR_16BIT,        0xD3C6, 0xF00B},
1350         {MISENSOR_16BIT,        0xD3C8, 0x9634},
1351         {MISENSOR_16BIT,        0xD3CA, 0x9503},
1352         {MISENSOR_16BIT,        0xD3CC, 0x6038},
1353         {MISENSOR_16BIT,        0xD3CE, 0xB614},
1354         {MISENSOR_16BIT,        0xD3D0, 0x153F},
1355         {MISENSOR_16BIT,        0xD3D2, 0x1080},
1356         {MISENSOR_16BIT,        0xD3D4, 0xE001},
1357         {MISENSOR_16BIT,        0xD3D6, 0x1D3F},
1358         {MISENSOR_16BIT,        0xD3D8, 0x1002},
1359         {MISENSOR_16BIT,        0xD3DA, 0xFFA4},
1360         {MISENSOR_16BIT,        0xD3DC, 0x9602},
1361         {MISENSOR_16BIT,        0xD3DE, 0x7F05},
1362         {MISENSOR_16BIT,        0xD3E0, 0xD800},
1363         {MISENSOR_16BIT,        0xD3E2, 0xB6E2},
1364         {MISENSOR_16BIT,        0xD3E4, 0xAD05},
1365         {MISENSOR_16BIT,        0xD3E6, 0x0511},
1366         {MISENSOR_16BIT,        0xD3E8, 0x05E0},
1367         {MISENSOR_16BIT,        0xD3EA, 0xD800},
1368         {MISENSOR_16BIT,        0xD3EC, 0xC0F1},
1369         {MISENSOR_16BIT,        0xD3EE, 0x0CFE},
1370         {MISENSOR_16BIT,        0xD3F0, 0x05C0},
1371         {MISENSOR_16BIT,        0xD3F2, 0x0A96},
1372         {MISENSOR_16BIT,        0xD3F4, 0x05A0},
1373         {MISENSOR_16BIT,        0xD3F6, 0x7608},
1374         {MISENSOR_16BIT,        0xD3F8, 0x0C22},
1375         {MISENSOR_16BIT,        0xD3FA, 0x0240},
1376         {MISENSOR_16BIT,        0xD3FC, 0xE080},
1377         {MISENSOR_16BIT,        0xD3FE, 0x20CA},
1378         {MISENSOR_16BIT,        0xD400, 0x0F82},
1379         {MISENSOR_16BIT,        0xD402, 0x0000},
1380         {MISENSOR_16BIT,        0xD404, 0x190B},
1381         {MISENSOR_16BIT,        0xD406, 0x0C60},
1382         {MISENSOR_16BIT,        0xD408, 0x05A2},
1383         {MISENSOR_16BIT,        0xD40A, 0x21CA},
1384         {MISENSOR_16BIT,        0xD40C, 0x0022},
1385         {MISENSOR_16BIT,        0xD40E, 0x0C56},
1386         {MISENSOR_16BIT,        0xD410, 0x0240},
1387         {MISENSOR_16BIT,        0xD412, 0xE806},
1388         {MISENSOR_16BIT,        0xD414, 0x0E0E},
1389         {MISENSOR_16BIT,        0xD416, 0x0220},
1390         {MISENSOR_16BIT,        0xD418, 0x70C9},
1391         {MISENSOR_16BIT,        0xD41A, 0xF048},
1392         {MISENSOR_16BIT,        0xD41C, 0x0896},
1393         {MISENSOR_16BIT,        0xD41E, 0x0440},
1394         {MISENSOR_16BIT,        0xD420, 0x0E96},
1395         {MISENSOR_16BIT,        0xD422, 0x0400},
1396         {MISENSOR_16BIT,        0xD424, 0x0966},
1397         {MISENSOR_16BIT,        0xD426, 0x0380},
1398         {MISENSOR_16BIT,        0xD428, 0x75CF},
1399         {MISENSOR_16BIT,        0xD42A, 0xFFFF},
1400         {MISENSOR_16BIT,        0xD42C, 0xD4E0},
1401         {MISENSOR_16BIT,        0xD42E, 0x8D00},
1402         {MISENSOR_16BIT,        0xD430, 0x084D},
1403         {MISENSOR_16BIT,        0xD432, 0x001E},
1404         {MISENSOR_16BIT,        0xD434, 0xFF47},
1405         {MISENSOR_16BIT,        0xD436, 0x080D},
1406         {MISENSOR_16BIT,        0xD438, 0x0050},
1407         {MISENSOR_16BIT,        0xD43A, 0xFF57},
1408         {MISENSOR_16BIT,        0xD43C, 0x0841},
1409         {MISENSOR_16BIT,        0xD43E, 0x0051},
1410         {MISENSOR_16BIT,        0xD440, 0x8D04},
1411         {MISENSOR_16BIT,        0xD442, 0x9521},
1412         {MISENSOR_16BIT,        0xD444, 0xE064},
1413         {MISENSOR_16BIT,        0xD446, 0x790C},
1414         {MISENSOR_16BIT,        0xD448, 0x702F},
1415         {MISENSOR_16BIT,        0xD44A, 0x0CE2},
1416         {MISENSOR_16BIT,        0xD44C, 0x05E0},
1417         {MISENSOR_16BIT,        0xD44E, 0xD964},
1418         {MISENSOR_16BIT,        0xD450, 0x72CF},
1419         {MISENSOR_16BIT,        0xD452, 0xFFFF},
1420         {MISENSOR_16BIT,        0xD454, 0xC700},
1421         {MISENSOR_16BIT,        0xD456, 0x9235},
1422         {MISENSOR_16BIT,        0xD458, 0x0811},
1423         {MISENSOR_16BIT,        0xD45A, 0x0043},
1424         {MISENSOR_16BIT,        0xD45C, 0xFF3D},
1425         {MISENSOR_16BIT,        0xD45E, 0x080D},
1426         {MISENSOR_16BIT,        0xD460, 0x0051},
1427         {MISENSOR_16BIT,        0xD462, 0xD801},
1428         {MISENSOR_16BIT,        0xD464, 0xFF77},
1429         {MISENSOR_16BIT,        0xD466, 0xF025},
1430         {MISENSOR_16BIT,        0xD468, 0x9501},
1431         {MISENSOR_16BIT,        0xD46A, 0x9235},
1432         {MISENSOR_16BIT,        0xD46C, 0x0911},
1433         {MISENSOR_16BIT,        0xD46E, 0x0003},
1434         {MISENSOR_16BIT,        0xD470, 0xFF49},
1435         {MISENSOR_16BIT,        0xD472, 0x080D},
1436         {MISENSOR_16BIT,        0xD474, 0x0051},
1437         {MISENSOR_16BIT,        0xD476, 0xD800},
1438         {MISENSOR_16BIT,        0xD478, 0xFF72},
1439         {MISENSOR_16BIT,        0xD47A, 0xF01B},
1440         {MISENSOR_16BIT,        0xD47C, 0x0886},
1441         {MISENSOR_16BIT,        0xD47E, 0x03E0},
1442         {MISENSOR_16BIT,        0xD480, 0xD801},
1443         {MISENSOR_16BIT,        0xD482, 0x0EF6},
1444         {MISENSOR_16BIT,        0xD484, 0x03C0},
1445         {MISENSOR_16BIT,        0xD486, 0x0F52},
1446         {MISENSOR_16BIT,        0xD488, 0x0340},
1447         {MISENSOR_16BIT,        0xD48A, 0x0DBA},
1448         {MISENSOR_16BIT,        0xD48C, 0x0200},
1449         {MISENSOR_16BIT,        0xD48E, 0x0AF6},
1450         {MISENSOR_16BIT,        0xD490, 0x0440},
1451         {MISENSOR_16BIT,        0xD492, 0x0C22},
1452         {MISENSOR_16BIT,        0xD494, 0x0400},
1453         {MISENSOR_16BIT,        0xD496, 0x0D72},
1454         {MISENSOR_16BIT,        0xD498, 0x0440},
1455         {MISENSOR_16BIT,        0xD49A, 0x0DC2},
1456         {MISENSOR_16BIT,        0xD49C, 0x0200},
1457         {MISENSOR_16BIT,        0xD49E, 0x0972},
1458         {MISENSOR_16BIT,        0xD4A0, 0x0440},
1459         {MISENSOR_16BIT,        0xD4A2, 0x0D3A},
1460         {MISENSOR_16BIT,        0xD4A4, 0x0220},
1461         {MISENSOR_16BIT,        0xD4A6, 0xD820},
1462         {MISENSOR_16BIT,        0xD4A8, 0x0BFA},
1463         {MISENSOR_16BIT,        0xD4AA, 0x0260},
1464         {MISENSOR_16BIT,        0xD4AC, 0x70C9},
1465         {MISENSOR_16BIT,        0xD4AE, 0x0451},
1466         {MISENSOR_16BIT,        0xD4B0, 0x05C0},
1467         {MISENSOR_16BIT,        0xD4B2, 0x78E0},
1468         {MISENSOR_16BIT,        0xD4B4, 0xD900},
1469         {MISENSOR_16BIT,        0xD4B6, 0xF00A},
1470         {MISENSOR_16BIT,        0xD4B8, 0x70CF},
1471         {MISENSOR_16BIT,        0xD4BA, 0xFFFF},
1472         {MISENSOR_16BIT,        0xD4BC, 0xD520},
1473         {MISENSOR_16BIT,        0xD4BE, 0x7835},
1474         {MISENSOR_16BIT,        0xD4C0, 0x8041},
1475         {MISENSOR_16BIT,        0xD4C2, 0x8000},
1476         {MISENSOR_16BIT,        0xD4C4, 0xE102},
1477         {MISENSOR_16BIT,        0xD4C6, 0xA040},
1478         {MISENSOR_16BIT,        0xD4C8, 0x09F1},
1479         {MISENSOR_16BIT,        0xD4CA, 0x8114},
1480         {MISENSOR_16BIT,        0xD4CC, 0x71CF},
1481         {MISENSOR_16BIT,        0xD4CE, 0xFFFF},
1482         {MISENSOR_16BIT,        0xD4D0, 0xD4E0},
1483         {MISENSOR_16BIT,        0xD4D2, 0x70CF},
1484         {MISENSOR_16BIT,        0xD4D4, 0xFFFF},
1485         {MISENSOR_16BIT,        0xD4D6, 0xC594},
1486         {MISENSOR_16BIT,        0xD4D8, 0xB03A},
1487         {MISENSOR_16BIT,        0xD4DA, 0x7FE0},
1488         {MISENSOR_16BIT,        0xD4DC, 0xD800},
1489         {MISENSOR_16BIT,        0xD4DE, 0x0000},
1490         {MISENSOR_16BIT,        0xD4E0, 0x0000},
1491         {MISENSOR_16BIT,        0xD4E2, 0x0500},
1492         {MISENSOR_16BIT,        0xD4E4, 0x0500},
1493         {MISENSOR_16BIT,        0xD4E6, 0x0200},
1494         {MISENSOR_16BIT,        0xD4E8, 0x0330},
1495         {MISENSOR_16BIT,        0xD4EA, 0x0000},
1496         {MISENSOR_16BIT,        0xD4EC, 0x0000},
1497         {MISENSOR_16BIT,        0xD4EE, 0x03CD},
1498         {MISENSOR_16BIT,        0xD4F0, 0x050D},
1499         {MISENSOR_16BIT,        0xD4F2, 0x01C5},
1500         {MISENSOR_16BIT,        0xD4F4, 0x03B3},
1501         {MISENSOR_16BIT,        0xD4F6, 0x00E0},
1502         {MISENSOR_16BIT,        0xD4F8, 0x01E3},
1503         {MISENSOR_16BIT,        0xD4FA, 0x0280},
1504         {MISENSOR_16BIT,        0xD4FC, 0x01E0},
1505         {MISENSOR_16BIT,        0xD4FE, 0x0109},
1506         {MISENSOR_16BIT,        0xD500, 0x0080},
1507         {MISENSOR_16BIT,        0xD502, 0x0500},
1508         {MISENSOR_16BIT,        0xD504, 0x0000},
1509         {MISENSOR_16BIT,        0xD506, 0x0000},
1510         {MISENSOR_16BIT,        0xD508, 0x0000},
1511         {MISENSOR_16BIT,        0xD50A, 0x0000},
1512         {MISENSOR_16BIT,        0xD50C, 0x0000},
1513         {MISENSOR_16BIT,        0xD50E, 0x0000},
1514         {MISENSOR_16BIT,        0xD510, 0x0000},
1515         {MISENSOR_16BIT,        0xD512, 0x0000},
1516         {MISENSOR_16BIT,        0xD514, 0x0000},
1517         {MISENSOR_16BIT,        0xD516, 0x0000},
1518         {MISENSOR_16BIT,        0xD518, 0x0000},
1519         {MISENSOR_16BIT,        0xD51A, 0x0000},
1520         {MISENSOR_16BIT,        0xD51C, 0x0000},
1521         {MISENSOR_16BIT,        0xD51E, 0x0000},
1522         {MISENSOR_16BIT,        0xD520, 0xFFFF},
1523         {MISENSOR_16BIT,        0xD522, 0xC9B4},
1524         {MISENSOR_16BIT,        0xD524, 0xFFFF},
1525         {MISENSOR_16BIT,        0xD526, 0xD324},
1526         {MISENSOR_16BIT,        0xD528, 0xFFFF},
1527         {MISENSOR_16BIT,        0xD52A, 0xCA34},
1528         {MISENSOR_16BIT,        0xD52C, 0xFFFF},
1529         {MISENSOR_16BIT,        0xD52E, 0xD3EC},
1530         {MISENSOR_16BIT,        0x098E, 0x0000},
1531         {MISENSOR_16BIT,        0xE000, 0x04B4},
1532         {MISENSOR_16BIT,        0xE002, 0x0302},
1533         {MISENSOR_16BIT,        0xE004, 0x4103},
1534         {MISENSOR_16BIT,        0xE006, 0x0202},
1535         {MISENSOR_16BIT,        0x0080, 0xFFF0},
1536         {MISENSOR_16BIT,        0x0080, 0xFFF1},
1537
1538         /* PGA parameter and APGA
1539          * [Step4-APGA] [TP101_MT9M114_APGA]
1540          */
1541         {MISENSOR_16BIT,        0x098E, 0x495E},
1542         {MISENSOR_16BIT,        0xC95E, 0x0000},
1543         {MISENSOR_16BIT,        0x3640, 0x02B0},
1544         {MISENSOR_16BIT,        0x3642, 0x8063},
1545         {MISENSOR_16BIT,        0x3644, 0x78D0},
1546         {MISENSOR_16BIT,        0x3646, 0x50CC},
1547         {MISENSOR_16BIT,        0x3648, 0x3511},
1548         {MISENSOR_16BIT,        0x364A, 0x0110},
1549         {MISENSOR_16BIT,        0x364C, 0xBD8A},
1550         {MISENSOR_16BIT,        0x364E, 0x0CD1},
1551         {MISENSOR_16BIT,        0x3650, 0x24ED},
1552         {MISENSOR_16BIT,        0x3652, 0x7C11},
1553         {MISENSOR_16BIT,        0x3654, 0x0150},
1554         {MISENSOR_16BIT,        0x3656, 0x124C},
1555         {MISENSOR_16BIT,        0x3658, 0x3130},
1556         {MISENSOR_16BIT,        0x365A, 0x508C},
1557         {MISENSOR_16BIT,        0x365C, 0x21F1},
1558         {MISENSOR_16BIT,        0x365E, 0x0090},
1559         {MISENSOR_16BIT,        0x3660, 0xBFCA},
1560         {MISENSOR_16BIT,        0x3662, 0x0A11},
1561         {MISENSOR_16BIT,        0x3664, 0x4F4B},
1562         {MISENSOR_16BIT,        0x3666, 0x28B1},
1563         {MISENSOR_16BIT,        0x3680, 0x50A9},
1564         {MISENSOR_16BIT,        0x3682, 0xA04B},
1565         {MISENSOR_16BIT,        0x3684, 0x0E2D},
1566         {MISENSOR_16BIT,        0x3686, 0x73EC},
1567         {MISENSOR_16BIT,        0x3688, 0x164F},
1568         {MISENSOR_16BIT,        0x368A, 0xF829},
1569         {MISENSOR_16BIT,        0x368C, 0xC1A8},
1570         {MISENSOR_16BIT,        0x368E, 0xB0EC},
1571         {MISENSOR_16BIT,        0x3690, 0xE76A},
1572         {MISENSOR_16BIT,        0x3692, 0x69AF},
1573         {MISENSOR_16BIT,        0x3694, 0x378C},
1574         {MISENSOR_16BIT,        0x3696, 0xA70D},
1575         {MISENSOR_16BIT,        0x3698, 0x884F},
1576         {MISENSOR_16BIT,        0x369A, 0xEE8B},
1577         {MISENSOR_16BIT,        0x369C, 0x5DEF},
1578         {MISENSOR_16BIT,        0x369E, 0x27CC},
1579         {MISENSOR_16BIT,        0x36A0, 0xCAAC},
1580         {MISENSOR_16BIT,        0x36A2, 0x840E},
1581         {MISENSOR_16BIT,        0x36A4, 0xDAA9},
1582         {MISENSOR_16BIT,        0x36A6, 0xF00C},
1583         {MISENSOR_16BIT,        0x36C0, 0x1371},
1584         {MISENSOR_16BIT,        0x36C2, 0x272F},
1585         {MISENSOR_16BIT,        0x36C4, 0x2293},
1586         {MISENSOR_16BIT,        0x36C6, 0xE6D0},
1587         {MISENSOR_16BIT,        0x36C8, 0xEC32},
1588         {MISENSOR_16BIT,        0x36CA, 0x11B1},
1589         {MISENSOR_16BIT,        0x36CC, 0x7BAF},
1590         {MISENSOR_16BIT,        0x36CE, 0x5813},
1591         {MISENSOR_16BIT,        0x36D0, 0xB871},
1592         {MISENSOR_16BIT,        0x36D2, 0x8913},
1593         {MISENSOR_16BIT,        0x36D4, 0x4610},
1594         {MISENSOR_16BIT,        0x36D6, 0x7EEE},
1595         {MISENSOR_16BIT,        0x36D8, 0x0DF3},
1596         {MISENSOR_16BIT,        0x36DA, 0xB84F},
1597         {MISENSOR_16BIT,        0x36DC, 0xB532},
1598         {MISENSOR_16BIT,        0x36DE, 0x1171},
1599         {MISENSOR_16BIT,        0x36E0, 0x13CF},
1600         {MISENSOR_16BIT,        0x36E2, 0x22F3},
1601         {MISENSOR_16BIT,        0x36E4, 0xE090},
1602         {MISENSOR_16BIT,        0x36E6, 0x8133},
1603         {MISENSOR_16BIT,        0x3700, 0x88AE},
1604         {MISENSOR_16BIT,        0x3702, 0x00EA},
1605         {MISENSOR_16BIT,        0x3704, 0x344F},
1606         {MISENSOR_16BIT,        0x3706, 0xEC88},
1607         {MISENSOR_16BIT,        0x3708, 0x3E91},
1608         {MISENSOR_16BIT,        0x370A, 0xF12D},
1609         {MISENSOR_16BIT,        0x370C, 0xB0EF},
1610         {MISENSOR_16BIT,        0x370E, 0x77CD},
1611         {MISENSOR_16BIT,        0x3710, 0x7930},
1612         {MISENSOR_16BIT,        0x3712, 0x5C12},
1613         {MISENSOR_16BIT,        0x3714, 0x500C},
1614         {MISENSOR_16BIT,        0x3716, 0x22CE},
1615         {MISENSOR_16BIT,        0x3718, 0x2370},
1616         {MISENSOR_16BIT,        0x371A, 0x258F},
1617         {MISENSOR_16BIT,        0x371C, 0x3D30},
1618         {MISENSOR_16BIT,        0x371E, 0x370C},
1619         {MISENSOR_16BIT,        0x3720, 0x03ED},
1620         {MISENSOR_16BIT,        0x3722, 0x9AD0},
1621         {MISENSOR_16BIT,        0x3724, 0x7ECF},
1622         {MISENSOR_16BIT,        0x3726, 0x1093},
1623         {MISENSOR_16BIT,        0x3740, 0x2391},
1624         {MISENSOR_16BIT,        0x3742, 0xAAD0},
1625         {MISENSOR_16BIT,        0x3744, 0x28F2},
1626         {MISENSOR_16BIT,        0x3746, 0xBA4F},
1627         {MISENSOR_16BIT,        0x3748, 0xC536},
1628         {MISENSOR_16BIT,        0x374A, 0x1472},
1629         {MISENSOR_16BIT,        0x374C, 0xD110},
1630         {MISENSOR_16BIT,        0x374E, 0x2933},
1631         {MISENSOR_16BIT,        0x3750, 0xD0D1},
1632         {MISENSOR_16BIT,        0x3752, 0x9F37},
1633         {MISENSOR_16BIT,        0x3754, 0x34D1},
1634         {MISENSOR_16BIT,        0x3756, 0x1C6C},
1635         {MISENSOR_16BIT,        0x3758, 0x3FD2},
1636         {MISENSOR_16BIT,        0x375A, 0xCB72},
1637         {MISENSOR_16BIT,        0x375C, 0xBA96},
1638         {MISENSOR_16BIT,        0x375E, 0x1551},
1639         {MISENSOR_16BIT,        0x3760, 0xB74F},
1640         {MISENSOR_16BIT,        0x3762, 0x1672},
1641         {MISENSOR_16BIT,        0x3764, 0x84F1},
1642         {MISENSOR_16BIT,        0x3766, 0xC2D6},
1643         {MISENSOR_16BIT,        0x3782, 0x01E0},
1644         {MISENSOR_16BIT,        0x3784, 0x0280},
1645         {MISENSOR_16BIT,        0x37C0, 0xA6EA},
1646         {MISENSOR_16BIT,        0x37C2, 0x874B},
1647         {MISENSOR_16BIT,        0x37C4, 0x85CB},
1648         {MISENSOR_16BIT,        0x37C6, 0x968A},
1649         {MISENSOR_16BIT,        0x098E, 0x0000},
1650         {MISENSOR_16BIT,        0xC960, 0x0AF0},
1651         {MISENSOR_16BIT,        0xC962, 0x79E2},
1652         {MISENSOR_16BIT,        0xC964, 0x5EC8},
1653         {MISENSOR_16BIT,        0xC966, 0x791F},
1654         {MISENSOR_16BIT,        0xC968, 0x76EE},
1655         {MISENSOR_16BIT,        0xC96A, 0x0FA0},
1656         {MISENSOR_16BIT,        0xC96C, 0x7DFA},
1657         {MISENSOR_16BIT,        0xC96E, 0x7DAF},
1658         {MISENSOR_16BIT,        0xC970, 0x7E02},
1659         {MISENSOR_16BIT,        0xC972, 0x7E0A},
1660         {MISENSOR_16BIT,        0xC974, 0x1964},
1661         {MISENSOR_16BIT,        0xC976, 0x7CDC},
1662         {MISENSOR_16BIT,        0xC978, 0x7838},
1663         {MISENSOR_16BIT,        0xC97A, 0x7C2F},
1664         {MISENSOR_16BIT,        0xC97C, 0x7792},
1665         {MISENSOR_16BIT,        0xC95E, 0x0003},
1666
1667         /* [Step4-APGA] */
1668         {MISENSOR_16BIT,        0x098E, 0x0000},
1669         {MISENSOR_16BIT,        0xC95E, 0x0003},
1670
1671         /* [Step5-AWB_CCM]1: LOAD=CCM */
1672         {MISENSOR_16BIT,        0xC892, 0x0267},
1673         {MISENSOR_16BIT,        0xC894, 0xFF1A},
1674         {MISENSOR_16BIT,        0xC896, 0xFFB3},
1675         {MISENSOR_16BIT,        0xC898, 0xFF80},
1676         {MISENSOR_16BIT,        0xC89A, 0x0166},
1677         {MISENSOR_16BIT,        0xC89C, 0x0003},
1678         {MISENSOR_16BIT,        0xC89E, 0xFF9A},
1679         {MISENSOR_16BIT,        0xC8A0, 0xFEB4},
1680         {MISENSOR_16BIT,        0xC8A2, 0x024D},
1681         {MISENSOR_16BIT,        0xC8A4, 0x01BF},
1682         {MISENSOR_16BIT,        0xC8A6, 0xFF01},
1683         {MISENSOR_16BIT,        0xC8A8, 0xFFF3},
1684         {MISENSOR_16BIT,        0xC8AA, 0xFF75},
1685         {MISENSOR_16BIT,        0xC8AC, 0x0198},
1686         {MISENSOR_16BIT,        0xC8AE, 0xFFFD},
1687         {MISENSOR_16BIT,        0xC8B0, 0xFF9A},
1688         {MISENSOR_16BIT,        0xC8B2, 0xFEE7},
1689         {MISENSOR_16BIT,        0xC8B4, 0x02A8},
1690         {MISENSOR_16BIT,        0xC8B6, 0x01D9},
1691         {MISENSOR_16BIT,        0xC8B8, 0xFF26},
1692         {MISENSOR_16BIT,        0xC8BA, 0xFFF3},
1693         {MISENSOR_16BIT,        0xC8BC, 0xFFB3},
1694         {MISENSOR_16BIT,        0xC8BE, 0x0132},
1695         {MISENSOR_16BIT,        0xC8C0, 0xFFE8},
1696         {MISENSOR_16BIT,        0xC8C2, 0xFFDA},
1697         {MISENSOR_16BIT,        0xC8C4, 0xFECD},
1698         {MISENSOR_16BIT,        0xC8C6, 0x02C2},
1699         {MISENSOR_16BIT,        0xC8C8, 0x0075},
1700         {MISENSOR_16BIT,        0xC8CA, 0x011C},
1701         {MISENSOR_16BIT,        0xC8CC, 0x009A},
1702         {MISENSOR_16BIT,        0xC8CE, 0x0105},
1703         {MISENSOR_16BIT,        0xC8D0, 0x00A4},
1704         {MISENSOR_16BIT,        0xC8D2, 0x00AC},
1705         {MISENSOR_16BIT,        0xC8D4, 0x0A8C},
1706         {MISENSOR_16BIT,        0xC8D6, 0x0F0A},
1707         {MISENSOR_16BIT,        0xC8D8, 0x1964},
1708
1709         /* LOAD=AWB */
1710         {MISENSOR_16BIT,        0xC914, 0x0000},
1711         {MISENSOR_16BIT,        0xC916, 0x0000},
1712         {MISENSOR_16BIT,        0xC918, 0x04FF},
1713         {MISENSOR_16BIT,        0xC91A, 0x02CF},
1714         {MISENSOR_16BIT,        0xC904, 0x0033},
1715         {MISENSOR_16BIT,        0xC906, 0x0040},
1716         {MISENSOR_8BIT,   0xC8F2, 0x03},
1717         {MISENSOR_8BIT,   0xC8F3, 0x02},
1718         {MISENSOR_16BIT,        0xC906, 0x003C},
1719         {MISENSOR_16BIT,        0xC8F4, 0x0000},
1720         {MISENSOR_16BIT,        0xC8F6, 0x0000},
1721         {MISENSOR_16BIT,        0xC8F8, 0x0000},
1722         {MISENSOR_16BIT,        0xC8FA, 0xE724},
1723         {MISENSOR_16BIT,        0xC8FC, 0x1583},
1724         {MISENSOR_16BIT,        0xC8FE, 0x2045},
1725         {MISENSOR_16BIT,        0xC900, 0x05DC},
1726         {MISENSOR_16BIT,        0xC902, 0x007C},
1727         {MISENSOR_8BIT,   0xC90C, 0x80},
1728         {MISENSOR_8BIT,   0xC90D, 0x80},
1729         {MISENSOR_8BIT,   0xC90E, 0x80},
1730         {MISENSOR_8BIT,   0xC90F, 0x88},
1731         {MISENSOR_8BIT,   0xC910, 0x80},
1732         {MISENSOR_8BIT,   0xC911, 0x80},
1733
1734         /* LOAD=Step7-CPIPE_Preference */
1735         {MISENSOR_16BIT,        0xC926, 0x0020},
1736         {MISENSOR_16BIT,        0xC928, 0x009A},
1737         {MISENSOR_16BIT,        0xC946, 0x0070},
1738         {MISENSOR_16BIT,        0xC948, 0x00F3},
1739         {MISENSOR_16BIT,        0xC952, 0x0020},
1740         {MISENSOR_16BIT,        0xC954, 0x009A},
1741         {MISENSOR_8BIT,   0xC92A, 0x80},
1742         {MISENSOR_8BIT,   0xC92B, 0x4B},
1743         {MISENSOR_8BIT,   0xC92C, 0x00},
1744         {MISENSOR_8BIT,   0xC92D, 0xFF},
1745         {MISENSOR_8BIT,   0xC92E, 0x3C},
1746         {MISENSOR_8BIT,   0xC92F, 0x02},
1747         {MISENSOR_8BIT,   0xC930, 0x06},
1748         {MISENSOR_8BIT,   0xC931, 0x64},
1749         {MISENSOR_8BIT,   0xC932, 0x01},
1750         {MISENSOR_8BIT,   0xC933, 0x0C},
1751         {MISENSOR_8BIT,   0xC934, 0x3C},
1752         {MISENSOR_8BIT,   0xC935, 0x3C},
1753         {MISENSOR_8BIT,   0xC936, 0x3C},
1754         {MISENSOR_8BIT,   0xC937, 0x0F},
1755         {MISENSOR_8BIT,   0xC938, 0x64},
1756         {MISENSOR_8BIT,   0xC939, 0x64},
1757         {MISENSOR_8BIT,   0xC93A, 0x64},
1758         {MISENSOR_8BIT,   0xC93B, 0x32},
1759         {MISENSOR_16BIT,        0xC93C, 0x0020},
1760         {MISENSOR_16BIT,        0xC93E, 0x009A},
1761         {MISENSOR_16BIT,        0xC940, 0x00DC},
1762         {MISENSOR_8BIT,   0xC942, 0x38},
1763         {MISENSOR_8BIT,   0xC943, 0x30},
1764         {MISENSOR_8BIT,   0xC944, 0x50},
1765         {MISENSOR_8BIT,   0xC945, 0x19},
1766         {MISENSOR_16BIT,        0xC94A, 0x0230},
1767         {MISENSOR_16BIT,        0xC94C, 0x0010},
1768         {MISENSOR_16BIT,        0xC94E, 0x01CD},
1769         {MISENSOR_8BIT,   0xC950, 0x05},
1770         {MISENSOR_8BIT,   0xC951, 0x40},
1771         {MISENSOR_8BIT,   0xC87B, 0x1B},
1772         {MISENSOR_8BIT,   0xC878, 0x0E},
1773         {MISENSOR_16BIT,        0xC890, 0x0080},
1774         {MISENSOR_16BIT,        0xC886, 0x0100},
1775         {MISENSOR_16BIT,        0xC87C, 0x005A},
1776         {MISENSOR_8BIT,   0xB42A, 0x05},
1777         {MISENSOR_8BIT,   0xA80A, 0x20},
1778
1779         /* Speed up AE/AWB */
1780         {MISENSOR_16BIT,        0x098E, 0x2802},
1781         {MISENSOR_16BIT,        0xA802, 0x0008},
1782         {MISENSOR_8BIT,   0xC908, 0x01},
1783         {MISENSOR_8BIT,   0xC879, 0x01},
1784         {MISENSOR_8BIT,   0xC909, 0x02},
1785         {MISENSOR_8BIT,   0xA80A, 0x18},
1786         {MISENSOR_8BIT,   0xA80B, 0x18},
1787         {MISENSOR_8BIT,   0xAC16, 0x18},
1788         {MISENSOR_8BIT,   0xC878, 0x0E},
1789
1790         {MISENSOR_TOK_TERM, 0, 0}
1791 };
1792
1793 #endif
1794 #endif