diff options
-rw-r--r-- | drivers/media/video/gspca/m5602/m5602_mt9m111.h | 60 |
1 files changed, 39 insertions, 21 deletions
diff --git a/drivers/media/video/gspca/m5602/m5602_mt9m111.h b/drivers/media/video/gspca/m5602/m5602_mt9m111.h index 0ffa98c0ff63..750a3fd428d0 100644 --- a/drivers/media/video/gspca/m5602/m5602_mt9m111.h +++ b/drivers/media/video/gspca/m5602/m5602_mt9m111.h | |||
@@ -37,7 +37,6 @@ | |||
37 | #define MT9M111_SC_VBLANK_CONTEXT_A 0x08 | 37 | #define MT9M111_SC_VBLANK_CONTEXT_A 0x08 |
38 | #define MT9M111_SC_SHUTTER_WIDTH 0x09 | 38 | #define MT9M111_SC_SHUTTER_WIDTH 0x09 |
39 | #define MT9M111_SC_ROW_SPEED 0x0a | 39 | #define MT9M111_SC_ROW_SPEED 0x0a |
40 | |||
41 | #define MT9M111_SC_EXTRA_DELAY 0x0b | 40 | #define MT9M111_SC_EXTRA_DELAY 0x0b |
42 | #define MT9M111_SC_SHUTTER_DELAY 0x0c | 41 | #define MT9M111_SC_SHUTTER_DELAY 0x0c |
43 | #define MT9M111_SC_RESET 0x0d | 42 | #define MT9M111_SC_RESET 0x0d |
@@ -50,9 +49,6 @@ | |||
50 | #define MT9M111_SC_GREEN_2_GAIN 0x2e | 49 | #define MT9M111_SC_GREEN_2_GAIN 0x2e |
51 | #define MT9M111_SC_GLOBAL_GAIN 0x2f | 50 | #define MT9M111_SC_GLOBAL_GAIN 0x2f |
52 | 51 | ||
53 | #define MT9M111_RMB_MIRROR_ROWS (1 << 0) | ||
54 | #define MT9M111_RMB_MIRROR_COLS (1 << 1) | ||
55 | |||
56 | #define MT9M111_CONTEXT_CONTROL 0xc8 | 52 | #define MT9M111_CONTEXT_CONTROL 0xc8 |
57 | #define MT9M111_PAGE_MAP 0xf0 | 53 | #define MT9M111_PAGE_MAP 0xf0 |
58 | #define MT9M111_BYTEWISE_ADDRESS 0xf1 | 54 | #define MT9M111_BYTEWISE_ADDRESS 0xf1 |
@@ -74,7 +70,24 @@ | |||
74 | #define MT9M111_COLORPIPE 0x01 | 70 | #define MT9M111_COLORPIPE 0x01 |
75 | #define MT9M111_CAMERA_CONTROL 0x02 | 71 | #define MT9M111_CAMERA_CONTROL 0x02 |
76 | 72 | ||
73 | #define MT9M111_RESET (1 << 0) | ||
74 | #define MT9M111_RESTART (1 << 1) | ||
75 | #define MT9M111_ANALOG_STANDBY (1 << 2) | ||
76 | #define MT9M111_CHIP_ENABLE (1 << 3) | ||
77 | #define MT9M111_CHIP_DISABLE (0 << 3) | ||
78 | #define MT9M111_OUTPUT_DISABLE (1 << 4) | ||
79 | #define MT9M111_SHOW_BAD_FRAMES (1 << 0) | ||
80 | #define MT9M111_RESTART_BAD_FRAMES (1 << 1) | ||
81 | #define MT9M111_SYNCHRONIZE_CHANGES (1 << 7) | ||
82 | |||
83 | #define MT9M111_RMB_MIRROR_ROWS (1 << 0) | ||
84 | #define MT9M111_RMB_MIRROR_COLS (1 << 1) | ||
85 | |||
77 | #define MT9M111_COLOR_MATRIX_BYPASS (1 << 4) | 86 | #define MT9M111_COLOR_MATRIX_BYPASS (1 << 4) |
87 | #define MT9M111_SEL_CONTEXT_B (1 << 3) | ||
88 | |||
89 | #define MT9M111_TRISTATE_PIN_IN_STANDBY (1 << 1) | ||
90 | #define MT9M111_SOC_SOFT_STANDBY (1 << 0) | ||
78 | 91 | ||
79 | #define INITIAL_MAX_GAIN 64 | 92 | #define INITIAL_MAX_GAIN 64 |
80 | #define DEFAULT_GAIN 283 | 93 | #define DEFAULT_GAIN 283 |
@@ -112,7 +125,14 @@ static const unsigned char preinit_mt9m111[][4] = | |||
112 | {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00}, | 125 | {BRIDGE, M5602_XB_SENSOR_TYPE, 0x09, 0x00}, |
113 | 126 | ||
114 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, | 127 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, |
115 | {SENSOR, MT9M111_SC_RESET, 0xff, 0xf7}, | 128 | {SENSOR, MT9M111_SC_RESET, |
129 | MT9M111_RESET | | ||
130 | MT9M111_RESTART | | ||
131 | MT9M111_ANALOG_STANDBY | | ||
132 | MT9M111_CHIP_DISABLE, | ||
133 | MT9M111_SHOW_BAD_FRAMES | | ||
134 | MT9M111_RESTART_BAD_FRAMES | | ||
135 | MT9M111_SYNCHRONIZE_CHANGES}, | ||
116 | 136 | ||
117 | {BRIDGE, M5602_XB_GPIO_DIR, 0x05, 0x00}, | 137 | {BRIDGE, M5602_XB_GPIO_DIR, 0x05, 0x00}, |
118 | {BRIDGE, M5602_XB_GPIO_DAT, 0x04, 0x00}, | 138 | {BRIDGE, M5602_XB_GPIO_DAT, 0x04, 0x00}, |
@@ -149,15 +169,13 @@ static const unsigned char init_mt9m111[][4] = | |||
149 | 169 | ||
150 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, | 170 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, |
151 | {SENSOR, MT9M111_SC_RESET, 0xff, 0xff}, | 171 | {SENSOR, MT9M111_SC_RESET, 0xff, 0xff}, |
152 | {SENSOR, MT9M111_SC_RESET, 0xff, 0xff}, | ||
153 | {SENSOR, MT9M111_SC_RESET, 0xff, 0xde}, | 172 | {SENSOR, MT9M111_SC_RESET, 0xff, 0xde}, |
154 | {SENSOR, MT9M111_SC_RESET, 0xff, 0xff}, | 173 | {SENSOR, MT9M111_SC_RESET, 0xff, 0xff}, |
155 | {SENSOR, MT9M111_SC_RESET, 0xff, 0xf7}, | 174 | {SENSOR, MT9M111_SC_RESET, 0xff, 0xf7}, |
156 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01}, | 175 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x01}, |
157 | 176 | {SENSOR, MT9M111_CP_GLOBAL_CLK_CONTROL, 0x00, | |
158 | {BRIDGE, M5602_XB_I2C_REG_ADDR, 0xb3, 0x00}, | 177 | MT9M111_TRISTATE_PIN_IN_STANDBY | |
159 | 178 | MT9M111_SOC_SOFT_STANDBY}, | |
160 | {SENSOR, MT9M111_CP_GLOBAL_CLK_CONTROL, 0xff, 0xff}, | ||
161 | 179 | ||
162 | {BRIDGE, M5602_XB_GPIO_EN_H, 0x06, 0x00}, | 180 | {BRIDGE, M5602_XB_GPIO_EN_H, 0x06, 0x00}, |
163 | {BRIDGE, M5602_XB_GPIO_EN_L, 0x00, 0x00}, | 181 | {BRIDGE, M5602_XB_GPIO_EN_L, 0x00, 0x00}, |
@@ -364,23 +382,23 @@ static const unsigned char init_mt9m111[][4] = | |||
364 | {SENSOR, 0x85, 0x48, 0x0e}, | 382 | {SENSOR, 0x85, 0x48, 0x0e}, |
365 | {SENSOR, 0x86, 0x5b, 0x02}, | 383 | {SENSOR, 0x86, 0x5b, 0x02}, |
366 | {SENSOR, 0x87, 0x00, 0x5c}, | 384 | {SENSOR, 0x87, 0x00, 0x5c}, |
367 | {SENSOR, MT9M111_CONTEXT_CONTROL, 0x00, 0x08}, | 385 | {SENSOR, MT9M111_CONTEXT_CONTROL, 0x00, MT9M111_SEL_CONTEXT_B}, |
368 | {SENSOR, 0x60, 0x00, 0x80}, | 386 | {SENSOR, 0x60, 0x00, 0x80}, |
369 | {SENSOR, 0x61, 0x00, 0x00}, | 387 | {SENSOR, 0x61, 0x00, 0x00}, |
370 | {SENSOR, 0x62, 0x00, 0x00}, | 388 | {SENSOR, 0x62, 0x00, 0x00}, |
371 | {SENSOR, 0x63, 0x00, 0x00}, | 389 | {SENSOR, 0x63, 0x00, 0x00}, |
372 | {SENSOR, 0x64, 0x00, 0x00}, | 390 | {SENSOR, 0x64, 0x00, 0x00}, |
373 | 391 | ||
374 | {SENSOR, MT9M111_SC_ROWSTART, 0x00, 0x0d}, | 392 | {SENSOR, MT9M111_SC_ROWSTART, 0x00, 0x0d}, /* 13 */ |
375 | {SENSOR, MT9M111_SC_COLSTART, 0x00, 0x12}, | 393 | {SENSOR, MT9M111_SC_COLSTART, 0x00, 0x12}, /* 18 */ |
376 | {SENSOR, MT9M111_SC_WINDOW_HEIGHT, 0x04, 0x00}, | 394 | {SENSOR, MT9M111_SC_WINDOW_HEIGHT, 0x04, 0x00}, /* 1024 */ |
377 | {SENSOR, MT9M111_SC_WINDOW_WIDTH, 0x05, 0x10}, | 395 | {SENSOR, MT9M111_SC_WINDOW_WIDTH, 0x05, 0x10}, /* 1296 */ |
378 | {SENSOR, MT9M111_SC_HBLANK_CONTEXT_B, 0x01, 0x60}, | 396 | {SENSOR, MT9M111_SC_HBLANK_CONTEXT_B, 0x01, 0x60}, /* 352 */ |
379 | {SENSOR, MT9M111_SC_VBLANK_CONTEXT_B, 0x00, 0x11}, | 397 | {SENSOR, MT9M111_SC_VBLANK_CONTEXT_B, 0x00, 0x11}, /* 17 */ |
380 | {SENSOR, MT9M111_SC_HBLANK_CONTEXT_A, 0x01, 0x60}, | 398 | {SENSOR, MT9M111_SC_HBLANK_CONTEXT_A, 0x01, 0x60}, /* 352 */ |
381 | {SENSOR, MT9M111_SC_VBLANK_CONTEXT_A, 0x00, 0x11}, | 399 | {SENSOR, MT9M111_SC_VBLANK_CONTEXT_A, 0x00, 0x11}, /* 17 */ |
382 | {SENSOR, MT9M111_SC_R_MODE_CONTEXT_B, 0x01, 0x0f}, | 400 | {SENSOR, MT9M111_SC_R_MODE_CONTEXT_B, 0x01, 0x0f}, /* 271 */ |
383 | {SENSOR, MT9M111_SC_R_MODE_CONTEXT_A, 0x01, 0x0f}, | 401 | {SENSOR, MT9M111_SC_R_MODE_CONTEXT_A, 0x01, 0x0f}, /* 271 */ |
384 | {SENSOR, 0x30, 0x04, 0x00}, | 402 | {SENSOR, 0x30, 0x04, 0x00}, |
385 | 403 | ||
386 | {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00}, | 404 | {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00}, |