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