aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/gspca/m5602/m5602_mt9m111.h60
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},