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