30 #ifndef STV06XX_VV6410_H_
31 #define STV06XX_VV6410_H_
35 #define VV6410_COLS 416
36 #define VV6410_ROWS 320
40 #define VV6410_DEVICEH 0x00
41 #define VV6410_DEVICEL 0x01
45 #define VV6410_STATUS0 0x02
48 #define VV6410_LINECOUNTH 0x03
49 #define VV6410_LINECOUNTL 0x04
52 #define VV6410_XENDH 0x05
53 #define VV6410_XENDL 0x06
56 #define VV6410_YENDH 0x07
57 #define VV6410_YENDL 0x08
61 #define VV6410_DARKAVGH 0x09
62 #define VV6410_DARKAVGL 0x0a
66 #define VV6410_BLACKAVGH 0x0b
67 #define VV6410_BLACKAVGL 0x0c
70 #define VV6410_STATUS1 0x0d
75 #define VV6410_SETUP0 0x10
78 #define VV6410_SETUP1 0x11
81 #define VV6410_SYNCVALUE 0x12
84 #define VV6410_FGMODES 0x14
87 #define VV6410_PINMAPPING 0x15
90 #define VV6410_DATAFORMAT 0x16
93 #define VV6410_OPFORMAT 0x17
96 #define VV6410_MODESELECT 0x18
100 #define VV6410_FINEH 0x20
101 #define VV6410_FINEL 0x21
104 #define VV6410_COARSEH 0x22
105 #define VV6410_COARSEL 0x23
108 #define VV6410_ANALOGGAIN 0x24
111 #define VV6410_CLKDIV 0x25
114 #define VV6410_DARKOFFSETH 0x2c
115 #define VV6410_DARKOFFSETL 0x2d
118 #define VV6410_DARKOFFSETSETUP 0x2e
122 #define VV6410_LINELENGTHH 0x52
123 #define VV6410_LINELENGTHL 0x53
126 #define VV6410_XOFFSETH 0x57
127 #define VV6410_XOFFSETL 0x58
130 #define VV6410_YOFFSETH 0x59
131 #define VV6410_YOFFSETL 0x5a
134 #define VV6410_FIELDLENGTHH 0x61
135 #define VV6410_FIELDLENGTHL 0x62
139 #define VV6410_BLACKOFFSETH 0x70
140 #define VV6410_BLACKOFFSETL 0x71
143 #define VV6410_BLACKOFFSETSETUP 0x72
146 #define VV6410_CR0 0x75
149 #define VV6410_CR1 0x76
152 #define VV6410_AS0 0x77
155 #define VV6410_AT0 0x78
158 #define VV6410_AT1 0x79
160 #define VV6410_HFLIP (1 << 3)
161 #define VV6410_VFLIP (1 << 4)
163 #define VV6410_LOW_POWER_MODE (1 << 0)
164 #define VV6410_SOFT_RESET (1 << 2)
165 #define VV6410_PAL_25_FPS (0 << 3)
167 #define VV6410_CLK_DIV_2 (1 << 1)
169 #define VV6410_FINE_EXPOSURE 320
170 #define VV6410_COARSE_EXPOSURE 192
171 #define VV6410_DEFAULT_GAIN 5
173 #define VV6410_SUBSAMPLE 0x01
174 #define VV6410_CROP_TO_QVGA 0x02
176 #define VV6410_CIF_LINELENGTH 415
178 static int vv6410_probe(
struct sd *
sd);
179 static int vv6410_start(
struct sd *
sd);
180 static int vv6410_init(
struct sd *
sd);
181 static int vv6410_init_controls(
struct sd *
sd);
182 static int vv6410_stop(
struct sd *
sd);
183 static int vv6410_dump(
struct sd *
sd);
198 .min_packet_size = { 1023 },
199 .max_packet_size = { 1023 },
201 .init_controls = vv6410_init_controls,
202 .probe = vv6410_probe,
203 .start = vv6410_start,
214 static const struct stv_init stv_bridge_init[] = {
233 static const u8 vv6410_sensor_init[][2] = {