V4L/DVB (10024): m5602: Remove the mt9m111 implementation of the read_sensor function.
[pandora-kernel.git] / drivers / media / video / gspca / m5602 / m5602_mt9m111.h
1 /*
2  * Driver for the mt9m111 sensor
3  *
4  * Copyright (C) 2008 Erik AndrĂ©n
5  * Copyright (C) 2007 Ilyes Gouta. Based on the m5603x Linux Driver Project.
6  * Copyright (C) 2005 m5603x Linux Driver Project <m5602@x3ng.com.br>
7  *
8  * Portions of code to USB interface and ALi driver software,
9  * Copyright (c) 2006 Willem Duinker
10  * v4l2 interface modeled after the V4L2 driver
11  * for SN9C10x PC Camera Controllers
12  *
13  * Some defines taken from the mt9m111 sensor driver
14  * Copyright (C) 2008, Robert Jarzmik <robert.jarzmik@free.fr>
15  *
16  * This program is free software; you can redistribute it and/or
17  * modify it under the terms of the GNU General Public License as
18  * published by the Free Software Foundation, version 2.
19  *
20  */
21
22 #ifndef M5602_MT9M111_H_
23 #define M5602_MT9M111_H_
24
25 #include "m5602_sensor.h"
26
27 /*****************************************************************************/
28
29 #define MT9M111_SC_CHIPVER                      0x00
30 #define MT9M111_SC_ROWSTART                     0x01
31 #define MT9M111_SC_COLSTART                     0x02
32 #define MT9M111_SC_WINDOW_HEIGHT                0x03
33 #define MT9M111_SC_WINDOW_WIDTH                 0x04
34 #define MT9M111_SC_HBLANK_CONTEXT_B             0x05
35 #define MT9M111_SC_VBLANK_CONTEXT_B             0x06
36 #define MT9M111_SC_HBLANK_CONTEXT_A             0x07
37 #define MT9M111_SC_VBLANK_CONTEXT_A             0x08
38 #define MT9M111_SC_SHUTTER_WIDTH                0x09
39 #define MT9M111_SC_ROW_SPEED                    0x0a
40
41 #define MT9M111_SC_EXTRA_DELAY                  0x0b
42 #define MT9M111_SC_SHUTTER_DELAY                0x0c
43 #define MT9M111_SC_RESET                        0x0d
44 #define MT9M111_SC_R_MODE_CONTEXT_B             0x20
45 #define MT9M111_SC_R_MODE_CONTEXT_A             0x21
46 #define MT9M111_SC_FLASH_CONTROL                0x23
47 #define MT9M111_SC_GREEN_1_GAIN                 0x2b
48 #define MT9M111_SC_BLUE_GAIN                    0x2c
49 #define MT9M111_SC_RED_GAIN                     0x2d
50 #define MT9M111_SC_GREEN_2_GAIN                 0x2e
51 #define MT9M111_SC_GLOBAL_GAIN                  0x2f
52
53 #define MT9M111_RMB_MIRROR_ROWS                 (1 << 0)
54 #define MT9M111_RMB_MIRROR_COLS                 (1 << 1)
55
56 #define MT9M111_CONTEXT_CONTROL                 0xc8
57 #define MT9M111_PAGE_MAP                        0xf0
58 #define MT9M111_BYTEWISE_ADDRESS                0xf1
59
60 #define MT9M111_CP_OPERATING_MODE_CTL           0x06
61 #define MT9M111_CP_LUMA_OFFSET                  0x34
62 #define MT9M111_CP_LUMA_CLIP                    0x35
63 #define MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_A 0x3a
64 #define MT9M111_CP_LENS_CORRECTION_1            0x3b
65 #define MT9M111_CP_DEFECT_CORR_CONTEXT_A        0x4c
66 #define MT9M111_CP_DEFECT_CORR_CONTEXT_B        0x4d
67 #define MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_B 0x9b
68 #define MT9M111_CP_GLOBAL_CLK_CONTROL           0xb3
69
70 #define MT9M111_CC_AUTO_EXPOSURE_PARAMETER_18   0x65
71 #define MT9M111_CC_AWB_PARAMETER_7              0x28
72
73 #define MT9M111_SENSOR_CORE                     0x00
74 #define MT9M111_COLORPIPE                       0x01
75 #define MT9M111_CAMERA_CONTROL                  0x02
76
77 #define INITIAL_MAX_GAIN                        64
78 #define DEFAULT_GAIN                            283
79
80 /*****************************************************************************/
81
82 /* Kernel module parameters */
83 extern int force_sensor;
84 extern int dump_sensor;
85
86 int mt9m111_probe(struct sd *sd);
87 int mt9m111_init(struct sd *sd);
88 int mt9m111_power_down(struct sd *sd);
89
90 int mt9m111_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
91 int mt9m111_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
92 int mt9m111_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
93 int mt9m111_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
94 int mt9m111_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
95 int mt9m111_set_gain(struct gspca_dev *gspca_dev, __s32 val);
96
97 static struct m5602_sensor mt9m111 = {
98         .name = "MT9M111",
99
100         .i2c_slave_id = 0xba,
101         .i2c_regW = 2,
102
103         .probe = mt9m111_probe,
104         .init = mt9m111_init,
105         .power_down = mt9m111_power_down,
106
107         .nctrls = 3,
108         .ctrls = {
109         {
110                 {
111                         .id             = V4L2_CID_VFLIP,
112                         .type           = V4L2_CTRL_TYPE_BOOLEAN,
113                         .name           = "vertical flip",
114                         .minimum        = 0,
115                         .maximum        = 1,
116                         .step           = 1,
117                         .default_value  = 0
118                 },
119                 .set = mt9m111_set_vflip,
120                 .get = mt9m111_get_vflip
121         }, {
122                 {
123                         .id             = V4L2_CID_HFLIP,
124                         .type           = V4L2_CTRL_TYPE_BOOLEAN,
125                         .name           = "horizontal flip",
126                         .minimum        = 0,
127                         .maximum        = 1,
128                         .step           = 1,
129                         .default_value  = 0
130                 },
131                 .set = mt9m111_set_hflip,
132                 .get = mt9m111_get_hflip
133         }, {
134                 {
135                         .id             = V4L2_CID_GAIN,
136                         .type           = V4L2_CTRL_TYPE_INTEGER,
137                         .name           = "gain",
138                         .minimum        = 0,
139                         .maximum        = (INITIAL_MAX_GAIN - 1) * 2 * 2 * 2,
140                         .step           = 1,
141                         .default_value  = DEFAULT_GAIN,
142                         .flags          = V4L2_CTRL_FLAG_SLIDER
143                 },
144                 .set = mt9m111_set_gain,
145                 .get = mt9m111_get_gain
146         }
147         },
148
149         .nmodes = 1,
150         .modes = {
151         {
152                 M5602_DEFAULT_FRAME_WIDTH,
153                 M5602_DEFAULT_FRAME_HEIGHT,
154                 V4L2_PIX_FMT_SBGGR8,
155                 V4L2_FIELD_NONE,
156                 .sizeimage =
157                         M5602_DEFAULT_FRAME_WIDTH * M5602_DEFAULT_FRAME_HEIGHT,
158                 .bytesperline = M5602_DEFAULT_FRAME_WIDTH,
159                 .colorspace = V4L2_COLORSPACE_SRGB,
160                 .priv = 1
161         }
162         }
163 };
164
165 static const unsigned char preinit_mt9m111[][4] =
166 {
167         {BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02, 0x00},
168         {BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0, 0x00},
169         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
170         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
171         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0d, 0x00},
172         {BRIDGE, M5602_XB_SENSOR_CTRL, 0x00, 0x00},
173         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
174         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
175
176         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
177         {SENSOR, MT9M111_SC_RESET, 0xff, 0xf7},
178
179         {BRIDGE, M5602_XB_GPIO_DIR, 0x05, 0x00},
180         {BRIDGE, M5602_XB_GPIO_DAT, 0x04, 0x00},
181         {BRIDGE, M5602_XB_GPIO_EN_H, 0x3e, 0x00},
182         {BRIDGE, M5602_XB_GPIO_DIR_H, 0x3e, 0x00},
183         {BRIDGE, M5602_XB_GPIO_DAT_H, 0x02, 0x00},
184         {BRIDGE, M5602_XB_GPIO_EN_L, 0xff, 0x00},
185         {BRIDGE, M5602_XB_GPIO_DIR_L, 0xff, 0x00},
186         {BRIDGE, M5602_XB_GPIO_DAT_L, 0x00, 0x00},
187
188         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
189         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
190         {BRIDGE, M5602_XB_GPIO_DIR, 0x07, 0x00},
191         {BRIDGE, M5602_XB_GPIO_DAT, 0x0b, 0x00},
192         {BRIDGE, M5602_XB_GPIO_EN_H, 0x06, 0x00},
193         {BRIDGE, M5602_XB_GPIO_EN_L, 0x00, 0x00},
194
195         {BRIDGE, M5602_XB_I2C_CLK_DIV, 0x0a, 0x00}
196 };
197
198 static const unsigned char init_mt9m111[][4] =
199 {
200         {BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02, 0x00},
201         {BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0, 0x00},
202         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
203         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
204         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
205         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x0d, 0x00},
206         {BRIDGE, M5602_XB_SENSOR_CTRL, 0x00, 0x00},
207         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
208         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
209         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
210         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
211
212         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
213         {SENSOR, MT9M111_SC_RESET, 0xff, 0xff},
214         {SENSOR, MT9M111_SC_RESET, 0xff, 0xff},
215         {SENSOR, MT9M111_SC_RESET, 0xff, 0xde},
216         {SENSOR, MT9M111_SC_RESET, 0xff, 0xff},
217         {SENSOR, MT9M111_SC_RESET, 0xff, 0xf7},
218         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01},
219
220         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xb3, 0x00},
221
222         {SENSOR, MT9M111_CP_GLOBAL_CLK_CONTROL, 0xff, 0xff},
223
224         {BRIDGE, M5602_XB_GPIO_DIR, 0x05, 0x00},
225         {BRIDGE, M5602_XB_GPIO_DAT, 0x04, 0x00},
226         {BRIDGE, M5602_XB_GPIO_EN_H, 0x3e, 0x00},
227         {BRIDGE, M5602_XB_GPIO_DIR_H, 0x3e, 0x00},
228         {BRIDGE, M5602_XB_GPIO_DAT_H, 0x02, 0x00},
229         {BRIDGE, M5602_XB_GPIO_EN_L, 0xff, 0x00},
230         {BRIDGE, M5602_XB_GPIO_DIR_L, 0xff, 0x00},
231         {BRIDGE, M5602_XB_GPIO_DAT_L, 0x00, 0x00},
232         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x04, 0x00},
233         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
234         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
235         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
236         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
237         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
238         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
239         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
240         {BRIDGE, M5602_XB_GPIO_DIR, 0x07, 0x00},
241         {BRIDGE, M5602_XB_GPIO_DAT, 0x0b, 0x00},
242         {BRIDGE, M5602_XB_GPIO_EN_H, 0x06, 0x00},
243         {BRIDGE, M5602_XB_GPIO_EN_L, 0x00, 0x00},
244         {BRIDGE, M5602_XB_I2C_CLK_DIV, 0x0a, 0x00},
245
246         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
247         {SENSOR, MT9M111_SC_RESET, 0x00, 0x05},
248         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
249         {SENSOR, MT9M111_SC_RESET, 0x00, 0x29},
250         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
251         {SENSOR, MT9M111_SC_RESET, 0x00, 0x08},
252         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01},
253         {SENSOR, MT9M111_CP_OPERATING_MODE_CTL, 0x00, 0x10},
254         {SENSOR, MT9M111_CP_LENS_CORRECTION_1, 0x04, 0x2a},
255         {SENSOR, MT9M111_CP_DEFECT_CORR_CONTEXT_A, 0x00, 0x01},
256         {SENSOR, MT9M111_CP_DEFECT_CORR_CONTEXT_B, 0x00, 0x01},
257         {SENSOR, MT9M111_CP_LUMA_OFFSET, 0x00, 0x00},
258         {SENSOR, MT9M111_CP_LUMA_CLIP, 0xff, 0x00},
259         {SENSOR, MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_A, 0x14, 0x00},
260         {SENSOR, MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_B, 0x14, 0x00},
261         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xcd, 0x00},
262
263         {SENSOR, 0xcd, 0x00, 0x0e},
264         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xd0, 0x00},
265         {SENSOR, 0xd0, 0x00, 0x40},
266         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x02},
267         {SENSOR, MT9M111_CC_AUTO_EXPOSURE_PARAMETER_18, 0x00, 0x00},
268         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x28, 0x00},
269         {SENSOR, MT9M111_CC_AWB_PARAMETER_7, 0xef, 0x07},
270         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x28, 0x00},
271         {SENSOR, MT9M111_CC_AWB_PARAMETER_7, 0xef, 0x03},
272         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
273         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x33, 0x00},
274         {SENSOR, 0x33, 0x03, 0x49},
275         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x33, 0x00},
276
277         {SENSOR, 0x33, 0x03, 0x49},
278         {SENSOR, 0x34, 0xc0, 0x19},
279         {SENSOR, 0x3f, 0x20, 0x20},
280         {SENSOR, 0x40, 0x20, 0x20},
281         {SENSOR, 0x5a, 0xc0, 0x0a},
282         {SENSOR, 0x70, 0x7b, 0x0a},
283         {SENSOR, 0x71, 0xff, 0x00},
284         {SENSOR, 0x72, 0x19, 0x0e},
285         {SENSOR, 0x73, 0x18, 0x0f},
286         {SENSOR, 0x74, 0x57, 0x32},
287         {SENSOR, 0x75, 0x56, 0x34},
288         {SENSOR, 0x76, 0x73, 0x35},
289         {SENSOR, 0x77, 0x30, 0x12},
290         {SENSOR, 0x78, 0x79, 0x02},
291         {SENSOR, 0x79, 0x75, 0x06},
292         {SENSOR, 0x7a, 0x77, 0x0a},
293         {SENSOR, 0x7b, 0x78, 0x09},
294         {SENSOR, 0x7c, 0x7d, 0x06},
295         {SENSOR, 0x7d, 0x31, 0x10},
296         {SENSOR, 0x7e, 0x00, 0x7e},
297         {SENSOR, 0x80, 0x59, 0x04},
298         {SENSOR, 0x81, 0x59, 0x04},
299         {SENSOR, 0x82, 0x57, 0x0a},
300         {SENSOR, 0x83, 0x58, 0x0b},
301         {SENSOR, 0x84, 0x47, 0x0c},
302         {SENSOR, 0x85, 0x48, 0x0e},
303         {SENSOR, 0x86, 0x5b, 0x02},
304         {SENSOR, 0x87, 0x00, 0x5c},
305         {SENSOR, MT9M111_CONTEXT_CONTROL, 0x00, 0x08},
306         {SENSOR, 0x60, 0x00, 0x80},
307         {SENSOR, 0x61, 0x00, 0x00},
308         {SENSOR, 0x62, 0x00, 0x00},
309         {SENSOR, 0x63, 0x00, 0x00},
310         {SENSOR, 0x64, 0x00, 0x00},
311
312         {SENSOR, MT9M111_SC_ROWSTART, 0x00, 0x0d},
313         {SENSOR, MT9M111_SC_COLSTART, 0x00, 0x18},
314         {SENSOR, MT9M111_SC_WINDOW_HEIGHT, 0x04, 0x04},
315         {SENSOR, MT9M111_SC_WINDOW_WIDTH, 0x05, 0x08},
316         {SENSOR, MT9M111_SC_HBLANK_CONTEXT_B, 0x01, 0x38},
317         {SENSOR, MT9M111_SC_VBLANK_CONTEXT_B, 0x00, 0x11},
318         {SENSOR, MT9M111_SC_HBLANK_CONTEXT_A, 0x01, 0x38},
319         {SENSOR, MT9M111_SC_VBLANK_CONTEXT_A, 0x00, 0x11},
320         {SENSOR, MT9M111_SC_R_MODE_CONTEXT_B, 0x01, 0x03},
321         {SENSOR, MT9M111_SC_R_MODE_CONTEXT_A, 0x01, 0x03},
322         {SENSOR, 0x30, 0x04, 0x00},
323
324         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
325         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
326         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
327         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
328         {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x81, 0x00},
329         {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82, 0x00},
330         {BRIDGE, M5602_XB_SIG_INI, 0x01, 0x00},
331         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
332         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
333         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
334         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
335         {BRIDGE, M5602_XB_VSYNC_PARA, 0x04, 0x00},
336         {BRIDGE, M5602_XB_VSYNC_PARA, 0x04, 0x00},
337         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
338         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
339         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
340         {BRIDGE, M5602_XB_SIG_INI, 0x02, 0x00},
341         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
342         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
343         {BRIDGE, M5602_XB_HSYNC_PARA, 0x05, 0x00},
344         {BRIDGE, M5602_XB_HSYNC_PARA, 0x07, 0x00},
345         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
346         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
347         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xa0, 0x00},
348         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
349         {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0xf4},
350         {SENSOR, MT9M111_SC_GLOBAL_GAIN, 0x00, 0xea},
351
352         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
353         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
354         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
355         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
356         {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x81, 0x00},
357         {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82, 0x00},
358         {BRIDGE, M5602_XB_SIG_INI, 0x01, 0x00},
359         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
360         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
361         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
362         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
363         {BRIDGE, M5602_XB_VSYNC_PARA, 0x04, 0x00},
364         {BRIDGE, M5602_XB_VSYNC_PARA, 0x04, 0x00},
365         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
366         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
367         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
368         {BRIDGE, M5602_XB_SIG_INI, 0x02, 0x00},
369         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
370         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
371         {BRIDGE, M5602_XB_HSYNC_PARA, 0x05, 0x00},
372         {BRIDGE, M5602_XB_HSYNC_PARA, 0x07, 0x00},
373         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
374         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
375         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
376
377         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
378         {SENSOR, MT9M111_SC_RESET, 0x00, 0x09},
379         {SENSOR, MT9M111_SC_RESET, 0x00, 0x29},
380         {SENSOR, MT9M111_SC_RESET, 0x00, 0x08},
381         {SENSOR, MT9M111_SC_RESET, 0x00, 0x0c},
382         {SENSOR, MT9M111_SC_RESET, 0x00, 0x04},
383         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01},
384         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xb3, 0x00},
385         {SENSOR, MT9M111_CP_GLOBAL_CLK_CONTROL, 0x00, 0x03},
386         {BRIDGE, M5602_XB_GPIO_DIR, 0x05, 0x00},
387         {BRIDGE, M5602_XB_GPIO_DAT, 0x04, 0x00},
388         {BRIDGE, M5602_XB_GPIO_EN_H, 0x3e, 0x00},
389         {BRIDGE, M5602_XB_GPIO_DIR_H, 0x3e, 0x00},
390         {BRIDGE, M5602_XB_GPIO_DAT_H, 0x02, 0x00},
391         {BRIDGE, M5602_XB_GPIO_EN_L, 0xff, 0x00},
392         {BRIDGE, M5602_XB_GPIO_DIR_L, 0xff, 0x00},
393         {BRIDGE, M5602_XB_GPIO_DAT_L, 0x00, 0x00},
394         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x04, 0x00},
395         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
396         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
397         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
398         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
399         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
400         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
401         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
402         {BRIDGE, M5602_XB_GPIO_DIR, 0x07, 0x00},
403         {BRIDGE, M5602_XB_GPIO_DAT, 0x0b, 0x00},
404         {BRIDGE, M5602_XB_GPIO_EN_H, 0x06, 0x00},
405         {BRIDGE, M5602_XB_GPIO_EN_L, 0x00, 0x00},
406         {BRIDGE, M5602_XB_I2C_CLK_DIV, 0x0a, 0x00},
407
408         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
409         {SENSOR, MT9M111_SC_RESET, 0x00, 0x05},
410         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
411         {SENSOR, MT9M111_SC_RESET, 0x00, 0x29},
412         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
413         {SENSOR, MT9M111_SC_RESET, 0x00, 0x08},
414         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01},
415         {SENSOR, MT9M111_CP_OPERATING_MODE_CTL, 0x00, 0x10},
416         {SENSOR, MT9M111_CP_LENS_CORRECTION_1, 0x04, 0x2a},
417         {SENSOR, MT9M111_CP_DEFECT_CORR_CONTEXT_A, 0x00, 0x01},
418         {SENSOR, MT9M111_CP_DEFECT_CORR_CONTEXT_B, 0x00, 0x01},
419         {SENSOR, MT9M111_CP_LUMA_OFFSET, 0x00, 0x00},
420         {SENSOR, MT9M111_CP_LUMA_CLIP, 0xff, 0x00},
421         {SENSOR, MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_A, 0x14, 0x00},
422         {SENSOR, MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_B, 0x14, 0x00},
423
424         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xcd, 0x00},
425         {SENSOR, 0xcd, 0x00, 0x0e},
426         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xd0, 0x00},
427         {SENSOR, 0xd0, 0x00, 0x40},
428         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x02},
429         {SENSOR, MT9M111_CC_AUTO_EXPOSURE_PARAMETER_18, 0x00, 0x00},
430         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x28, 0x00},
431         {SENSOR, MT9M111_CC_AWB_PARAMETER_7, 0xef, 0x07},
432         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x28, 0x00},
433         {SENSOR, MT9M111_CC_AWB_PARAMETER_7, 0xef, 0x03},
434         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
435         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x33, 0x00},
436         {SENSOR, 0x33, 0x03, 0x49},
437         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x33, 0x00},
438
439         {SENSOR, 0x33, 0x03, 0x49},
440         {SENSOR, 0x34, 0xc0, 0x19},
441         {SENSOR, 0x3f, 0x20, 0x20},
442         {SENSOR, 0x40, 0x20, 0x20},
443         {SENSOR, 0x5a, 0xc0, 0x0a},
444         {SENSOR, 0x70, 0x7b, 0x0a},
445         {SENSOR, 0x71, 0xff, 0x00},
446         {SENSOR, 0x72, 0x19, 0x0e},
447         {SENSOR, 0x73, 0x18, 0x0f},
448         {SENSOR, 0x74, 0x57, 0x32},
449         {SENSOR, 0x75, 0x56, 0x34},
450         {SENSOR, 0x76, 0x73, 0x35},
451         {SENSOR, 0x77, 0x30, 0x12},
452         {SENSOR, 0x78, 0x79, 0x02},
453         {SENSOR, 0x79, 0x75, 0x06},
454         {SENSOR, 0x7a, 0x77, 0x0a},
455         {SENSOR, 0x7b, 0x78, 0x09},
456         {SENSOR, 0x7c, 0x7d, 0x06},
457         {SENSOR, 0x7d, 0x31, 0x10},
458         {SENSOR, 0x7e, 0x00, 0x7e},
459         {SENSOR, 0x80, 0x59, 0x04},
460         {SENSOR, 0x81, 0x59, 0x04},
461         {SENSOR, 0x82, 0x57, 0x0a},
462         {SENSOR, 0x83, 0x58, 0x0b},
463         {SENSOR, 0x84, 0x47, 0x0c},
464         {SENSOR, 0x85, 0x48, 0x0e},
465         {SENSOR, 0x86, 0x5b, 0x02},
466         {SENSOR, 0x87, 0x00, 0x5c},
467         {SENSOR, MT9M111_CONTEXT_CONTROL, 0x00, 0x08},
468         {SENSOR, 0x60, 0x00, 0x80},
469         {SENSOR, 0x61, 0x00, 0x00},
470         {SENSOR, 0x62, 0x00, 0x00},
471         {SENSOR, 0x63, 0x00, 0x00},
472         {SENSOR, 0x64, 0x00, 0x00},
473
474         {SENSOR, MT9M111_SC_ROWSTART, 0x00, 0x0d},
475         {SENSOR, MT9M111_SC_COLSTART, 0x00, 0x18},
476         {SENSOR, MT9M111_SC_WINDOW_HEIGHT, 0x04, 0x04},
477         {SENSOR, MT9M111_SC_WINDOW_WIDTH, 0x05, 0x08},
478         {SENSOR, MT9M111_SC_HBLANK_CONTEXT_B, 0x01, 0x38},
479         {SENSOR, MT9M111_SC_VBLANK_CONTEXT_B, 0x00, 0x11},
480         {SENSOR, MT9M111_SC_HBLANK_CONTEXT_A, 0x01, 0x38},
481         {SENSOR, MT9M111_SC_VBLANK_CONTEXT_A, 0x00, 0x11},
482         {SENSOR, MT9M111_SC_R_MODE_CONTEXT_B, 0x01, 0x03},
483         {SENSOR, MT9M111_SC_R_MODE_CONTEXT_A, 0x01, 0x03},
484         {SENSOR, 0x30, 0x04, 0x00},
485
486         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
487         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
488         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
489         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
490         {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x81, 0x00},
491         {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82, 0x00},
492         {BRIDGE, M5602_XB_SIG_INI, 0x01, 0x00},
493         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
494         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
495         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
496         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
497         {BRIDGE, M5602_XB_VSYNC_PARA, 0x04, 0x00},
498         {BRIDGE, M5602_XB_VSYNC_PARA, 0x04, 0x00},
499         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
500         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
501         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
502         {BRIDGE, M5602_XB_SIG_INI, 0x02, 0x00},
503         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
504         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
505         {BRIDGE, M5602_XB_HSYNC_PARA, 0x05, 0x00},
506         {BRIDGE, M5602_XB_HSYNC_PARA, 0x07, 0x00},
507         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
508         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
509         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xa0, 0x00},
510         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
511         {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0xf4},
512         {SENSOR, MT9M111_SC_GLOBAL_GAIN, 0x00, 0xea},
513         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
514         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
515
516         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
517         {SENSOR, MT9M111_SC_RESET, 0x00, 0x09},
518         {SENSOR, MT9M111_SC_RESET, 0x00, 0x29},
519         {SENSOR, MT9M111_SC_RESET, 0x00, 0x08},
520         {SENSOR, MT9M111_SC_RESET, 0x00, 0x0c},
521         {SENSOR, MT9M111_SC_RESET, 0x00, 0x04},
522         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01},
523
524         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xb3, 0x00},
525         {SENSOR, MT9M111_CP_GLOBAL_CLK_CONTROL, 0x00, 0x03},
526         {BRIDGE, M5602_XB_GPIO_DIR, 0x05, 0x00},
527         {BRIDGE, M5602_XB_GPIO_DAT, 0x04, 0x00},
528         {BRIDGE, M5602_XB_GPIO_EN_H, 0x3e, 0x00},
529         {BRIDGE, M5602_XB_GPIO_DIR_H, 0x3e, 0x00},
530         {BRIDGE, M5602_XB_GPIO_DAT_H, 0x02, 0x00},
531         {BRIDGE, M5602_XB_GPIO_EN_L, 0xff, 0x00},
532         {BRIDGE, M5602_XB_GPIO_DIR_L, 0xff, 0x00},
533         {BRIDGE, M5602_XB_GPIO_DAT_L, 0x00, 0x00},
534         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x04, 0x00},
535         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
536         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
537         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
538         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
539         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
540         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
541         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
542         {BRIDGE, M5602_XB_GPIO_DIR, 0x07, 0x00},
543         {BRIDGE, M5602_XB_GPIO_DAT, 0x0b, 0x00},
544         {BRIDGE, M5602_XB_GPIO_EN_H, 0x06, 0x00},
545         {BRIDGE, M5602_XB_GPIO_EN_L, 0x00, 0x00},
546         {BRIDGE, M5602_XB_I2C_CLK_DIV, 0x0a, 0x00},
547
548         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
549         {SENSOR, MT9M111_SC_RESET, 0x00, 0x05},
550         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
551         {SENSOR, MT9M111_SC_RESET, 0x00, 0x29},
552         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
553         {SENSOR, MT9M111_SC_RESET, 0x00, 0x08},
554         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01},
555         {SENSOR, MT9M111_CP_OPERATING_MODE_CTL, 0x00, 0x10},
556         {SENSOR, MT9M111_CP_LENS_CORRECTION_1, 0x04, 0x2a},
557         {SENSOR, MT9M111_CP_DEFECT_CORR_CONTEXT_A, 0x00, 0x01},
558         {SENSOR, MT9M111_CP_DEFECT_CORR_CONTEXT_B, 0x00, 0x01},
559         {SENSOR, MT9M111_CP_LUMA_OFFSET, 0x00, 0x00},
560         {SENSOR, MT9M111_CP_LUMA_CLIP, 0xff, 0x00},
561         {SENSOR, MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_A, 0x14, 0x00},
562         {SENSOR, MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_B, 0x14, 0x00},
563
564         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xcd, 0x00},
565         {SENSOR, 0xcd, 0x00, 0x0e},
566         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xd0, 0x00},
567         {SENSOR, 0xd0, 0x00, 0x40},
568         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x02},
569         {SENSOR, MT9M111_CC_AUTO_EXPOSURE_PARAMETER_18, 0x00, 0x00},
570         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x28, 0x00},
571         {SENSOR, MT9M111_CC_AWB_PARAMETER_7, 0xef, 0x07},
572         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x28, 0x00},
573         {SENSOR, MT9M111_CC_AWB_PARAMETER_7, 0xef, 0x03},
574         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
575         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x33, 0x00},
576         {SENSOR, 0x33, 0x03, 0x49},
577         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x33, 0x00},
578
579         {SENSOR, 0x33, 0x03, 0x49},
580         {SENSOR, 0x34, 0xc0, 0x19},
581         {SENSOR, 0x3f, 0x20, 0x20},
582         {SENSOR, 0x40, 0x20, 0x20},
583         {SENSOR, 0x5a, 0xc0, 0x0a},
584         {SENSOR, 0x70, 0x7b, 0x0a},
585         {SENSOR, 0x71, 0xff, 0x00},
586         {SENSOR, 0x72, 0x19, 0x0e},
587         {SENSOR, 0x73, 0x18, 0x0f},
588         {SENSOR, 0x74, 0x57, 0x32},
589         {SENSOR, 0x75, 0x56, 0x34},
590         {SENSOR, 0x76, 0x73, 0x35},
591         {SENSOR, 0x77, 0x30, 0x12},
592         {SENSOR, 0x78, 0x79, 0x02},
593         {SENSOR, 0x79, 0x75, 0x06},
594         {SENSOR, 0x7a, 0x77, 0x0a},
595         {SENSOR, 0x7b, 0x78, 0x09},
596         {SENSOR, 0x7c, 0x7d, 0x06},
597         {SENSOR, 0x7d, 0x31, 0x10},
598         {SENSOR, 0x7e, 0x00, 0x7e},
599         {SENSOR, 0x80, 0x59, 0x04},
600         {SENSOR, 0x81, 0x59, 0x04},
601         {SENSOR, 0x82, 0x57, 0x0a},
602         {SENSOR, 0x83, 0x58, 0x0b},
603         {SENSOR, 0x84, 0x47, 0x0c},
604         {SENSOR, 0x85, 0x48, 0x0e},
605         {SENSOR, 0x86, 0x5b, 0x02},
606         {SENSOR, 0x87, 0x00, 0x5c},
607         {SENSOR, MT9M111_CONTEXT_CONTROL, 0x00, 0x08},
608         {SENSOR, 0x60, 0x00, 0x80},
609         {SENSOR, 0x61, 0x00, 0x00},
610         {SENSOR, 0x62, 0x00, 0x00},
611         {SENSOR, 0x63, 0x00, 0x00},
612         {SENSOR, 0x64, 0x00, 0x00},
613
614         {SENSOR, MT9M111_SC_ROWSTART, 0x00, 0x0d},
615         {SENSOR, MT9M111_SC_COLSTART, 0x00, 0x18},
616         {SENSOR, MT9M111_SC_WINDOW_HEIGHT, 0x04, 0x04},
617         {SENSOR, MT9M111_SC_WINDOW_WIDTH, 0x05, 0x08},
618         {SENSOR, MT9M111_SC_HBLANK_CONTEXT_B, 0x01, 0x38},
619         {SENSOR, MT9M111_SC_VBLANK_CONTEXT_B, 0x00, 0x11},
620         {SENSOR, MT9M111_SC_HBLANK_CONTEXT_A, 0x01, 0x38},
621         {SENSOR, MT9M111_SC_VBLANK_CONTEXT_A, 0x00, 0x11},
622         {SENSOR, MT9M111_SC_R_MODE_CONTEXT_B, 0x01, 0x03},
623         {SENSOR, MT9M111_SC_R_MODE_CONTEXT_A, 0x01, 0x03},
624         {SENSOR, 0x30, 0x04, 0x00},
625
626         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
627         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
628         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
629         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
630         {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x81, 0x00},
631         {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82, 0x00},
632         {BRIDGE, M5602_XB_SIG_INI, 0x01, 0x00},
633         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
634         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
635         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
636         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
637         {BRIDGE, M5602_XB_VSYNC_PARA, 0x04, 0x00},
638         {BRIDGE, M5602_XB_VSYNC_PARA, 0x04, 0x00},
639         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
640         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
641         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
642         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
643         {BRIDGE, M5602_XB_HSYNC_PARA, 0x05, 0x00},
644         {BRIDGE, M5602_XB_HSYNC_PARA, 0x07, 0x00},
645         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
646         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
647         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xa0, 0x00},
648         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
649         {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0xf4},
650         {SENSOR, MT9M111_SC_GLOBAL_GAIN, 0x00, 0xea},
651         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
652         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
653         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
654         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
655         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
656         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
657         {SENSOR, MT9M111_SC_RESET, 0x00, 0x09},
658         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
659         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
660         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
661         {SENSOR, MT9M111_SC_RESET, 0x00, 0x29},
662         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
663         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
664         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
665         {SENSOR, MT9M111_SC_RESET, 0x00, 0x08},
666         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
667         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
668         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
669         {SENSOR, MT9M111_SC_RESET, 0x00, 0x0c},
670         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
671         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
672         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
673         {SENSOR, MT9M111_SC_RESET, 0x00, 0x04},
674         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01},
675         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
676         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xb3, 0x00},
677         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
678         {SENSOR, MT9M111_CP_GLOBAL_CLK_CONTROL, 0x00, 0x03},
679         {BRIDGE, M5602_XB_GPIO_DIR, 0x05, 0x00},
680         {BRIDGE, M5602_XB_GPIO_DAT, 0x04, 0x00},
681         {BRIDGE, M5602_XB_GPIO_EN_H, 0x3e, 0x00},
682         {BRIDGE, M5602_XB_GPIO_DIR_H, 0x3e, 0x00},
683         {BRIDGE, M5602_XB_GPIO_DAT_H, 0x02, 0x00},
684         {BRIDGE, M5602_XB_GPIO_EN_L, 0xff, 0x00},
685         {BRIDGE, M5602_XB_GPIO_DIR_L, 0xff, 0x00},
686         {BRIDGE, M5602_XB_GPIO_DAT_L, 0x00, 0x00},
687         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x04, 0x00},
688         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
689         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
690         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
691         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
692         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
693         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
694         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
695         {BRIDGE, M5602_XB_GPIO_DIR, 0x07, 0x00},
696         {BRIDGE, M5602_XB_GPIO_DAT, 0x0b, 0x00},
697         {BRIDGE, M5602_XB_GPIO_EN_H, 0x06, 0x00},
698         {BRIDGE, M5602_XB_GPIO_EN_L, 0x00, 0x00},
699         {BRIDGE, M5602_XB_I2C_CLK_DIV, 0x0a, 0x00},
700         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
701         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
702         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
703         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
704         {SENSOR, MT9M111_SC_RESET, 0x00, 0x05},
705         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
706         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
707         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
708         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
709         {SENSOR, MT9M111_SC_RESET, 0x00, 0x29},
710         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
711         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
712         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
713         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
714
715         {SENSOR, MT9M111_SC_RESET, 0x00, 0x08},
716         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01},
717         {SENSOR, MT9M111_CP_OPERATING_MODE_CTL, 0x00, 0x10},
718         {SENSOR, MT9M111_CP_LENS_CORRECTION_1, 0x04, 0x2a},
719         {SENSOR, MT9M111_CP_DEFECT_CORR_CONTEXT_A, 0x00, 0x01},
720         {SENSOR, MT9M111_CP_DEFECT_CORR_CONTEXT_B, 0x00, 0x01},
721         {SENSOR, MT9M111_CP_LUMA_OFFSET, 0x00, 0x00},
722         {SENSOR, MT9M111_CP_LUMA_CLIP, 0xff, 0x00},
723         {SENSOR, MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_A, 0x14, 0x00},
724         {SENSOR, MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_B, 0x14, 0x00},
725
726         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
727         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xcd, 0x00},
728         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
729         {SENSOR, 0xcd, 0x00, 0x0e},
730         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
731         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xd0, 0x00},
732         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
733         {SENSOR, 0xd0, 0x00, 0x40},
734         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x02},
735         {SENSOR, MT9M111_CC_AUTO_EXPOSURE_PARAMETER_18, 0x00, 0x00},
736         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
737         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x28, 0x00},
738         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
739         {SENSOR, MT9M111_CC_AWB_PARAMETER_7, 0xef, 0x07},
740         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
741         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x28, 0x00},
742         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
743         {SENSOR, MT9M111_CC_AWB_PARAMETER_7, 0xef, 0x03},
744         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
745         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
746         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x33, 0x00},
747         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
748         {SENSOR, 0x33, 0x03, 0x49},
749         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
750         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x33, 0x00},
751         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
752
753         {SENSOR, 0x33, 0x03, 0x49},
754         {SENSOR, 0x34, 0xc0, 0x19},
755         {SENSOR, 0x3f, 0x20, 0x20},
756         {SENSOR, 0x40, 0x20, 0x20},
757         {SENSOR, 0x5a, 0xc0, 0x0a},
758         {SENSOR, 0x70, 0x7b, 0x0a},
759         {SENSOR, 0x71, 0xff, 0x00},
760         {SENSOR, 0x72, 0x19, 0x0e},
761         {SENSOR, 0x73, 0x18, 0x0f},
762         {SENSOR, 0x74, 0x57, 0x32},
763         {SENSOR, 0x75, 0x56, 0x34},
764         {SENSOR, 0x76, 0x73, 0x35},
765         {SENSOR, 0x77, 0x30, 0x12},
766         {SENSOR, 0x78, 0x79, 0x02},
767         {SENSOR, 0x79, 0x75, 0x06},
768         {SENSOR, 0x7a, 0x77, 0x0a},
769         {SENSOR, 0x7b, 0x78, 0x09},
770         {SENSOR, 0x7c, 0x7d, 0x06},
771         {SENSOR, 0x7d, 0x31, 0x10},
772         {SENSOR, 0x7e, 0x00, 0x7e},
773         {SENSOR, 0x80, 0x59, 0x04},
774         {SENSOR, 0x81, 0x59, 0x04},
775         {SENSOR, 0x82, 0x57, 0x0a},
776         {SENSOR, 0x83, 0x58, 0x0b},
777         {SENSOR, 0x84, 0x47, 0x0c},
778         {SENSOR, 0x85, 0x48, 0x0e},
779         {SENSOR, 0x86, 0x5b, 0x02},
780         {SENSOR, 0x87, 0x00, 0x5c},
781         {SENSOR, MT9M111_CONTEXT_CONTROL, 0x00, 0x08},
782         {SENSOR, 0x60, 0x00, 0x80},
783         {SENSOR, 0x61, 0x00, 0x00},
784         {SENSOR, 0x62, 0x00, 0x00},
785         {SENSOR, 0x63, 0x00, 0x00},
786         {SENSOR, 0x64, 0x00, 0x00},
787         {SENSOR, MT9M111_SC_ROWSTART, 0x00, 0x0d},
788         {SENSOR, MT9M111_SC_COLSTART, 0x00, 0x12},
789         {SENSOR, MT9M111_SC_WINDOW_HEIGHT, 0x04, 0x00},
790         {SENSOR, MT9M111_SC_WINDOW_WIDTH, 0x05, 0x10},
791         {SENSOR, MT9M111_SC_HBLANK_CONTEXT_B, 0x01, 0x60},
792         {SENSOR, MT9M111_SC_VBLANK_CONTEXT_B, 0x00, 0x11},
793         {SENSOR, MT9M111_SC_HBLANK_CONTEXT_A, 0x01, 0x60},
794         {SENSOR, MT9M111_SC_VBLANK_CONTEXT_A, 0x00, 0x11},
795         {SENSOR, MT9M111_SC_R_MODE_CONTEXT_B, 0x01, 0x0f},
796         {SENSOR, MT9M111_SC_R_MODE_CONTEXT_A, 0x01, 0x0f},
797         {SENSOR, 0x30, 0x04, 0x00},
798
799         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
800         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
801         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
802         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
803         {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x81, 0x00},
804         {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82, 0x00},
805         {BRIDGE, M5602_XB_SIG_INI, 0x01, 0x00},
806         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
807         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
808         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
809         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
810         {BRIDGE, M5602_XB_VSYNC_PARA, 0x01, 0x00},
811         {BRIDGE, M5602_XB_VSYNC_PARA, 0xe3, 0x00},
812         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
813         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
814         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
815         {BRIDGE, M5602_XB_SIG_INI, 0x02, 0x00},
816         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
817         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
818         {BRIDGE, M5602_XB_HSYNC_PARA, 0x02, 0x00},
819         {BRIDGE, M5602_XB_HSYNC_PARA, 0x87, 0x00},
820         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
821         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
822         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
823
824         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
825         {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0x90},
826         {SENSOR, MT9M111_SC_GLOBAL_GAIN, 0x00, 0xe6},
827         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
828         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
829         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
830         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
831         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
832         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
833         {SENSOR, MT9M111_SC_RESET, 0x00, 0x09},
834         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
835         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
836         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
837         {SENSOR, MT9M111_SC_RESET, 0x00, 0x29},
838         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
839         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
840         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
841         {SENSOR, MT9M111_SC_RESET, 0x00, 0x08},
842         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
843         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
844         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
845         {SENSOR, MT9M111_SC_RESET, 0x00, 0x0c},
846         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
847         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
848         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
849         {SENSOR, MT9M111_SC_RESET, 0x00, 0x04},
850         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01},
851         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
852         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xb3, 0x00},
853         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
854         {SENSOR, MT9M111_CP_GLOBAL_CLK_CONTROL, 0x00, 0x03},
855
856         {BRIDGE, M5602_XB_GPIO_DIR, 0x05, 0x00},
857         {BRIDGE, M5602_XB_GPIO_DAT, 0x04, 0x00},
858         {BRIDGE, M5602_XB_GPIO_EN_H, 0x3e, 0x00},
859         {BRIDGE, M5602_XB_GPIO_DIR_H, 0x3e, 0x00},
860         {BRIDGE, M5602_XB_GPIO_DAT_H, 0x02, 0x00},
861         {BRIDGE, M5602_XB_GPIO_EN_L, 0xff, 0x00},
862         {BRIDGE, M5602_XB_GPIO_DIR_L, 0xff, 0x00},
863         {BRIDGE, M5602_XB_GPIO_DAT_L, 0x00, 0x00},
864         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x04, 0x00},
865         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
866         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
867         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
868         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
869         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
870         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
871         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
872         {BRIDGE, M5602_XB_GPIO_DIR, 0x07, 0x00},
873         {BRIDGE, M5602_XB_GPIO_DAT, 0x0b, 0x00},
874         {BRIDGE, M5602_XB_GPIO_EN_H, 0x06, 0x00},
875         {BRIDGE, M5602_XB_GPIO_EN_L, 0x00, 0x00},
876         {BRIDGE, M5602_XB_I2C_CLK_DIV, 0x0a, 0x00},
877         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
878         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
879         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
880         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
881         {SENSOR, MT9M111_SC_RESET, 0x00, 0x05},
882         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
883         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
884         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
885         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
886         {SENSOR, MT9M111_SC_RESET, 0x00, 0x29},
887         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
888         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
889         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x0d, 0x00},
890         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
891         {SENSOR, MT9M111_SC_RESET, 0x00, 0x08},
892         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01},
893         {SENSOR, MT9M111_CP_OPERATING_MODE_CTL, 0x00, 0x10},
894         {SENSOR, MT9M111_CP_LENS_CORRECTION_1, 0x04, 0x2a},
895         {SENSOR, MT9M111_CP_DEFECT_CORR_CONTEXT_A, 0x00, 0x01},
896         {SENSOR, MT9M111_CP_DEFECT_CORR_CONTEXT_B, 0x00, 0x01},
897         {SENSOR, MT9M111_CP_LUMA_OFFSET, 0x00, 0x00},
898         {SENSOR, MT9M111_CP_LUMA_CLIP, 0xff, 0x00},
899         {SENSOR, MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_A, 0x14, 0x00},
900         {SENSOR, MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_B, 0x14, 0x00},
901
902         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
903         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xcd, 0x00},
904         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
905         {SENSOR, 0xcd, 0x00, 0x0e},
906         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
907         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xd0, 0x00},
908         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
909         {SENSOR, 0xd0, 0x00, 0x40},
910         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x02},
911         {SENSOR, MT9M111_CC_AUTO_EXPOSURE_PARAMETER_18, 0x00, 0x00},
912         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
913         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x28, 0x00},
914         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
915         {SENSOR, MT9M111_CC_AWB_PARAMETER_7, 0xef, 0x07},
916         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
917         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x28, 0x00},
918         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
919         {SENSOR, MT9M111_CC_AWB_PARAMETER_7, 0xef, 0x03},
920         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
921
922         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
923         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x33, 0x00},
924         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
925         {SENSOR, 0x33, 0x03, 0x49},
926         {BRIDGE, M5602_XB_I2C_DEV_ADDR, 0xba, 0x00},
927         {BRIDGE, M5602_XB_I2C_REG_ADDR, 0x33, 0x00},
928         {BRIDGE, M5602_XB_I2C_CTRL, 0x1a, 0x00},
929
930         {SENSOR, 0x33, 0x03, 0x49},
931         {SENSOR, 0x34, 0xc0, 0x19},
932         {SENSOR, 0x3f, 0x20, 0x20},
933         {SENSOR, 0x40, 0x20, 0x20},
934         {SENSOR, 0x5a, 0xc0, 0x0a},
935         {SENSOR, 0x70, 0x7b, 0x0a},
936         {SENSOR, 0x71, 0xff, 0x00},
937         {SENSOR, 0x72, 0x19, 0x0e},
938         {SENSOR, 0x73, 0x18, 0x0f},
939         {SENSOR, 0x74, 0x57, 0x32},
940         {SENSOR, 0x75, 0x56, 0x34},
941         {SENSOR, 0x76, 0x73, 0x35},
942         {SENSOR, 0x77, 0x30, 0x12},
943         {SENSOR, 0x78, 0x79, 0x02},
944         {SENSOR, 0x79, 0x75, 0x06},
945         {SENSOR, 0x7a, 0x77, 0x0a},
946         {SENSOR, 0x7b, 0x78, 0x09},
947         {SENSOR, 0x7c, 0x7d, 0x06},
948         {SENSOR, 0x7d, 0x31, 0x10},
949         {SENSOR, 0x7e, 0x00, 0x7e},
950         {SENSOR, 0x80, 0x59, 0x04},
951         {SENSOR, 0x81, 0x59, 0x04},
952         {SENSOR, 0x82, 0x57, 0x0a},
953         {SENSOR, 0x83, 0x58, 0x0b},
954         {SENSOR, 0x84, 0x47, 0x0c},
955         {SENSOR, 0x85, 0x48, 0x0e},
956         {SENSOR, 0x86, 0x5b, 0x02},
957         {SENSOR, 0x87, 0x00, 0x5c},
958         {SENSOR, MT9M111_CONTEXT_CONTROL, 0x00, 0x08},
959         {SENSOR, 0x60, 0x00, 0x80},
960         {SENSOR, 0x61, 0x00, 0x00},
961         {SENSOR, 0x62, 0x00, 0x00},
962         {SENSOR, 0x63, 0x00, 0x00},
963         {SENSOR, 0x64, 0x00, 0x00},
964
965         {SENSOR, MT9M111_SC_ROWSTART, 0x00, 0x0d},
966         {SENSOR, MT9M111_SC_COLSTART, 0x00, 0x12},
967         {SENSOR, MT9M111_SC_WINDOW_HEIGHT, 0x04, 0x00},
968         {SENSOR, MT9M111_SC_WINDOW_WIDTH, 0x05, 0x10},
969         {SENSOR, MT9M111_SC_HBLANK_CONTEXT_B, 0x01, 0x60},
970         {SENSOR, MT9M111_SC_VBLANK_CONTEXT_B, 0x00, 0x11},
971         {SENSOR, MT9M111_SC_HBLANK_CONTEXT_A, 0x01, 0x60},
972         {SENSOR, MT9M111_SC_VBLANK_CONTEXT_A, 0x00, 0x11},
973         {SENSOR, MT9M111_SC_R_MODE_CONTEXT_B, 0x01, 0x0f},
974         {SENSOR, MT9M111_SC_R_MODE_CONTEXT_A, 0x01, 0x0f},
975         {SENSOR, 0x30, 0x04, 0x00},
976
977         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
978         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
979         {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
980         {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00},
981         {BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x81, 0x00},
982         {BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82, 0x00},
983         {BRIDGE, M5602_XB_SIG_INI, 0x01, 0x00},
984         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
985         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
986         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
987         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
988         {BRIDGE, M5602_XB_VSYNC_PARA, 0x01, 0x00},
989         {BRIDGE, M5602_XB_VSYNC_PARA, 0xe0, 0x00},
990         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
991         {BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
992         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
993         {BRIDGE, M5602_XB_SIG_INI, 0x02, 0x00},
994         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
995         {BRIDGE, M5602_XB_HSYNC_PARA, 0x00, 0x00},
996         {BRIDGE, M5602_XB_HSYNC_PARA, 0x02, 0x00},
997         {BRIDGE, M5602_XB_HSYNC_PARA, 0x7f, 0x00},
998         {BRIDGE, M5602_XB_SIG_INI, 0x00, 0x00},
999         {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
1000         {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
1001
1002         {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00},
1003         /* Set number of blank rows chosen to 400 */
1004         {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0x90},
1005         /* Set the global gain to 283 (of 512) */
1006         {SENSOR, MT9M111_SC_GLOBAL_GAIN, 0x03, 0x63}
1007 };
1008
1009 #endif