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}, /* 639*/ 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 1010