]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blob - drivers/staging/media/atomisp/i2c/imx/imx175.h
staging/atomisp: Add support for the Intel IPU v2
[mirror_ubuntu-jammy-kernel.git] / drivers / staging / media / atomisp / i2c / imx / imx175.h
1 #ifndef __IMX175_H__
2 #define __IMX175_H__
3 #include "common.h"
4
5 /************************** settings for imx *************************/
6 static struct imx_reg const imx_STILL_8M_30fps[] = {
7 GROUPED_PARAMETER_HOLD_ENABLE,
8 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
9 /* shutter */
10 {IMX_8BIT, 0x0202, 0x0A}, /* coarse _integration_time[15:8] */
11 {IMX_8BIT, 0x0203, 0xFC}, /* coarse _integration_time[7:0] */
12 /* pll */
13 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
14 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
15 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
16 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
17 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
18 {IMX_8BIT, 0x030C, 0x01},
19 {IMX_8BIT, 0x030D, 0x2c},
20 /* image sizing */
21 {IMX_8BIT, 0x0340, 0x09}, /* frame_length_lines[15:8] */
22 {IMX_8BIT, 0x0341, 0xC4}, /* frame_length_lines[7:0] */
23 {IMX_8BIT, 0x0342, 0x0D}, /* line_length_pck[15:8] */
24 {IMX_8BIT, 0x0343, 0x66}, /* line_length_pck[7:0] */
25 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
26 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
27 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
28 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
29 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
30 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
31 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
32 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
33 {IMX_8BIT, 0x034C, 0x0C}, /* x_output_size[15:8] */
34 {IMX_8BIT, 0x034D, 0xD0}, /* x_output_size[7:0] */
35 {IMX_8BIT, 0x034E, 0x09}, /* y_output_size[15:8] */
36 {IMX_8BIT, 0x034F, 0xA0}, /* y_output_size[7:0] */
37 /* binning & scaling */
38 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
39 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
40 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
41 /* timer */
42 {IMX_8BIT, 0x3344, 0x57},
43 {IMX_8BIT, 0x3345, 0x1F},
44 /* timing */
45 {IMX_8BIT, 0x3370, 0x77},
46 {IMX_8BIT, 0x3371, 0x2F},
47 {IMX_8BIT, 0x3372, 0x4F},
48 {IMX_8BIT, 0x3373, 0x2F},
49 {IMX_8BIT, 0x3374, 0x2F},
50 {IMX_8BIT, 0x3375, 0x37},
51 {IMX_8BIT, 0x3376, 0x9F},
52 {IMX_8BIT, 0x3377, 0x37},
53 {IMX_8BIT, 0x33C8, 0x01},
54 {IMX_8BIT, 0x33D4, 0x0C},
55 {IMX_8BIT, 0x33D5, 0xD0},
56 {IMX_8BIT, 0x33D6, 0x09},
57 {IMX_8BIT, 0x33D7, 0xA0},
58
59 {IMX_8BIT, 0x030e, 0x01},
60 {IMX_8BIT, 0x41c0, 0x01},
61 {IMX_TOK_TERM, 0, 0}
62 };
63
64 static struct imx_reg const imx_STILL_8M_15fps[] = {
65 GROUPED_PARAMETER_HOLD_ENABLE,
66 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
67 /* shutter */
68 {IMX_8BIT, 0x0202, 0x0A}, /* coarse _integration_time[15:8] */
69 {IMX_8BIT, 0x0203, 0xFC}, /* coarse _integration_time[7:0] */
70 /* pll */
71 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
72 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
73 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
74 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
75 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
76 {IMX_8BIT, 0x030C, 0x01},
77 {IMX_8BIT, 0x030D, 0x2c},
78 /* image sizing */
79 {IMX_8BIT, 0x0340, 0x0B}, /* frame_length_lines[15:8] */
80 {IMX_8BIT, 0x0341, 0xB8}, /* frame_length_lines[7:0] */
81 {IMX_8BIT, 0x0342, 0x16}, /* line_length_pck[15:8] */
82 {IMX_8BIT, 0x0343, 0x44}, /* line_length_pck[7:0] */
83 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
84 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
85 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
86 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
87 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
88 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
89 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
90 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
91 {IMX_8BIT, 0x034C, 0x0C}, /* x_output_size[15:8] */
92 {IMX_8BIT, 0x034D, 0xD0}, /* x_output_size[7:0] */
93 {IMX_8BIT, 0x034E, 0x09}, /* y_output_size[15:8] */
94 {IMX_8BIT, 0x034F, 0xA0}, /* y_output_size[7:0] */
95 /* binning & scaling */
96 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
97 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
98 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
99 /* timer */
100 {IMX_8BIT, 0x3344, 0x57},
101 {IMX_8BIT, 0x3345, 0x1F},
102 /* timing */
103 {IMX_8BIT, 0x3370, 0x77},
104 {IMX_8BIT, 0x3371, 0x2F},
105 {IMX_8BIT, 0x3372, 0x4F},
106 {IMX_8BIT, 0x3373, 0x2F},
107 {IMX_8BIT, 0x3374, 0x2F},
108 {IMX_8BIT, 0x3375, 0x37},
109 {IMX_8BIT, 0x3376, 0x9F},
110 {IMX_8BIT, 0x3377, 0x37},
111 {IMX_8BIT, 0x33C8, 0x01},
112 {IMX_8BIT, 0x33D4, 0x0C},
113 {IMX_8BIT, 0x33D5, 0xD0},
114 {IMX_8BIT, 0x33D6, 0x09},
115 {IMX_8BIT, 0x33D7, 0xA0},
116
117 {IMX_8BIT, 0x030e, 0x01},
118 {IMX_8BIT, 0x41c0, 0x01},
119 {IMX_TOK_TERM, 0, 0}
120 };
121
122 static struct imx_reg const imx_STILL_3M_30fps[] = {
123 GROUPED_PARAMETER_HOLD_ENABLE,
124 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
125 /* shutter */
126 {IMX_8BIT, 0x0202, 0x0A}, /* coarse _integration_time[15:8] */
127 {IMX_8BIT, 0x0203, 0xEF}, /* coarse _integration_time[7:0] */
128 /* pll */
129 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
130 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
131 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
132 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
133 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
134 {IMX_8BIT, 0x030C, 0x01},
135 {IMX_8BIT, 0x030D, 0x2c},
136 /* image sizing */
137 {IMX_8BIT, 0x0340, 0x09}, /* frame_length_lines[15:8] */
138 {IMX_8BIT, 0x0341, 0xC4}, /* frame_length_lines[7:0] */
139 {IMX_8BIT, 0x0342, 0x0D}, /* line_length_pck[15:8] */
140 {IMX_8BIT, 0x0343, 0x66}, /* line_length_pck[7:0] */
141 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
142 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
143 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
144 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
145 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
146 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
147 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
148 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
149 {IMX_8BIT, 0x034C, 0x08}, /* x_output_size[15:8] */
150 {IMX_8BIT, 0x034D, 0x10}, /* x_output_size[7:0] */
151 {IMX_8BIT, 0x034E, 0x06}, /* y_output_size[15:8] */
152 {IMX_8BIT, 0x034F, 0x10}, /* y_output_size[7:0] */
153 /* binning & scaling */
154 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
155 {IMX_8BIT, 0x0401, 0x02}, /* scaling mode*/
156 {IMX_8BIT, 0x0405, 0x19}, /* scale_m[7:0] */
157 /* timer */
158 {IMX_8BIT, 0x3344, 0x57},
159 {IMX_8BIT, 0x3345, 0x1F},
160 /* timing */
161 {IMX_8BIT, 0x3370, 0x77},
162 {IMX_8BIT, 0x3371, 0x2F},
163 {IMX_8BIT, 0x3372, 0x4F},
164 {IMX_8BIT, 0x3373, 0x2F},
165 {IMX_8BIT, 0x3374, 0x2F},
166 {IMX_8BIT, 0x3375, 0x37},
167 {IMX_8BIT, 0x3376, 0x9F},
168 {IMX_8BIT, 0x3377, 0x37},
169 {IMX_8BIT, 0x33C8, 0x01},
170 {IMX_8BIT, 0x33D4, 0x0C},
171 {IMX_8BIT, 0x33D5, 0xD0},
172 {IMX_8BIT, 0x33D6, 0x09},
173 {IMX_8BIT, 0x33D7, 0xA0},
174
175 {IMX_8BIT, 0x030e, 0x01},
176 {IMX_8BIT, 0x41c0, 0x01},
177 {IMX_TOK_TERM, 0, 0}
178 };
179
180 static struct imx_reg const imx_STILL_3M_15fps[] = {
181 GROUPED_PARAMETER_HOLD_ENABLE,
182 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
183 /* shutter */
184 {IMX_8BIT, 0x0202, 0x0A}, /* coarse _integration_time[15:8] */
185 {IMX_8BIT, 0x0203, 0xEF}, /* coarse _integration_time[7:0] */
186 /* pll */
187 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
188 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
189 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
190 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
191 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
192 {IMX_8BIT, 0x030C, 0x01},
193 {IMX_8BIT, 0x030D, 0x2c},
194 /* image sizing */
195 {IMX_8BIT, 0x0340, 0x0B}, /* frame_length_lines[15:8] */
196 {IMX_8BIT, 0x0341, 0xB8}, /* frame_length_lines[7:0] */
197 {IMX_8BIT, 0x0342, 0x16}, /* line_length_pck[15:8] */
198 {IMX_8BIT, 0x0343, 0x44}, /* line_length_pck[7:0] */
199 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
200 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
201 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
202 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
203 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
204 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
205 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
206 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
207 {IMX_8BIT, 0x034C, 0x08}, /* x_output_size[15:8] */
208 {IMX_8BIT, 0x034D, 0x10}, /* x_output_size[7:0] */
209 {IMX_8BIT, 0x034E, 0x06}, /* y_output_size[15:8] */
210 {IMX_8BIT, 0x034F, 0x10}, /* y_output_size[7:0] */
211 /* binning & scaling */
212 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
213 {IMX_8BIT, 0x0401, 0x02}, /* scaling mode*/
214 {IMX_8BIT, 0x0405, 0x19}, /* scale_m[7:0] */
215 /* timer */
216 {IMX_8BIT, 0x3344, 0x57},
217 {IMX_8BIT, 0x3345, 0x1F},
218 /* timing */
219 {IMX_8BIT, 0x3370, 0x77},
220 {IMX_8BIT, 0x3371, 0x2F},
221 {IMX_8BIT, 0x3372, 0x4F},
222 {IMX_8BIT, 0x3373, 0x2F},
223 {IMX_8BIT, 0x3374, 0x2F},
224 {IMX_8BIT, 0x3375, 0x37},
225 {IMX_8BIT, 0x3376, 0x9F},
226 {IMX_8BIT, 0x3377, 0x37},
227 {IMX_8BIT, 0x33C8, 0x01},
228 {IMX_8BIT, 0x33D4, 0x0C},
229 {IMX_8BIT, 0x33D5, 0xD0},
230 {IMX_8BIT, 0x33D6, 0x09},
231 {IMX_8BIT, 0x33D7, 0xA0},
232
233 {IMX_8BIT, 0x030e, 0x01},
234 {IMX_8BIT, 0x41c0, 0x01},
235 {IMX_TOK_TERM, 0, 0}
236 };
237
238
239 static struct imx_reg const imx_STILL_5M_30fps[] = {
240 GROUPED_PARAMETER_HOLD_ENABLE,
241 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
242 /* shutter */
243 {IMX_8BIT, 0x0202, 0x0A}, /* coarse _integration_time[15:8] */
244 {IMX_8BIT, 0x0203, 0xEF}, /* coarse _integration_time[7:0] */
245 /* pll */
246 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
247 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
248 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
249 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
250 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
251 {IMX_8BIT, 0x030C, 0x01},
252 {IMX_8BIT, 0x030D, 0x2c},
253 /* image sizing */
254 {IMX_8BIT, 0x0340, 0x09}, /* frame_length_lines[15:8] */
255 {IMX_8BIT, 0x0341, 0xC4}, /* frame_length_lines[7:0] */
256 {IMX_8BIT, 0x0342, 0x0D}, /* line_length_pck[15:8] */
257 {IMX_8BIT, 0x0343, 0x66}, /* line_length_pck[7:0] */
258 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
259 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
260 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
261 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
262 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
263 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
264 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
265 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
266 {IMX_8BIT, 0x034C, 0x0A}, /* x_output_size[15:8] */
267 {IMX_8BIT, 0x034D, 0x10}, /* x_output_size[7:0] */
268 {IMX_8BIT, 0x034E, 0x07}, /* y_output_size[15:8] */
269 {IMX_8BIT, 0x034F, 0x90}, /* y_output_size[7:0] */
270 /* binning & scaling */
271 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
272 {IMX_8BIT, 0x0401, 0x02}, /* scaling mode*/
273 {IMX_8BIT, 0x0405, 0x14}, /* scale_m[7:0] */
274 /* timer */
275 {IMX_8BIT, 0x3344, 0x57},
276 {IMX_8BIT, 0x3345, 0x1F},
277 /* timing */
278 {IMX_8BIT, 0x3370, 0x77},
279 {IMX_8BIT, 0x3371, 0x2F},
280 {IMX_8BIT, 0x3372, 0x4F},
281 {IMX_8BIT, 0x3373, 0x2F},
282 {IMX_8BIT, 0x3374, 0x2F},
283 {IMX_8BIT, 0x3375, 0x37},
284 {IMX_8BIT, 0x3376, 0x9F},
285 {IMX_8BIT, 0x3377, 0x37},
286 {IMX_8BIT, 0x33C8, 0x01},
287 {IMX_8BIT, 0x33D4, 0x0C},
288 {IMX_8BIT, 0x33D5, 0xD0},
289 {IMX_8BIT, 0x33D6, 0x09},
290 {IMX_8BIT, 0x33D7, 0xA0},
291
292 {IMX_8BIT, 0x030e, 0x01},
293 {IMX_8BIT, 0x41c0, 0x01},
294 {IMX_TOK_TERM, 0, 0}
295 };
296
297 static struct imx_reg const imx_STILL_5M_15fps[] = {
298 GROUPED_PARAMETER_HOLD_ENABLE,
299 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
300 /* shutter */
301 {IMX_8BIT, 0x0202, 0x0A}, /* coarse _integration_time[15:8] */
302 {IMX_8BIT, 0x0203, 0xEF}, /* coarse _integration_time[7:0] */
303 /* pll */
304 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
305 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
306 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
307 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
308 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
309 {IMX_8BIT, 0x030C, 0x01},
310 {IMX_8BIT, 0x030D, 0x2c},
311 /* image sizing */
312 {IMX_8BIT, 0x0340, 0x0B}, /* frame_length_lines[15:8] */
313 {IMX_8BIT, 0x0341, 0xB8}, /* frame_length_lines[7:0] */
314 {IMX_8BIT, 0x0342, 0x16}, /* line_length_pck[15:8] */
315 {IMX_8BIT, 0x0343, 0x44}, /* line_length_pck[7:0] */
316 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
317 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
318 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
319 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
320 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
321 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
322 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
323 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
324 {IMX_8BIT, 0x034C, 0x0A}, /* x_output_size[15:8] */
325 {IMX_8BIT, 0x034D, 0x10}, /* x_output_size[7:0] */
326 {IMX_8BIT, 0x034E, 0x07}, /* y_output_size[15:8] */
327 {IMX_8BIT, 0x034F, 0x90}, /* y_output_size[7:0] */
328 /* binning & scaling */
329 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
330 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
331 {IMX_8BIT, 0x0405, 0x14}, /* scale_m[7:0] */
332 /* timer */
333 {IMX_8BIT, 0x3344, 0x57},
334 {IMX_8BIT, 0x3345, 0x1F},
335 /* timing */
336 {IMX_8BIT, 0x3370, 0x77},
337 {IMX_8BIT, 0x3371, 0x2F},
338 {IMX_8BIT, 0x3372, 0x4F},
339 {IMX_8BIT, 0x3373, 0x2F},
340 {IMX_8BIT, 0x3374, 0x2F},
341 {IMX_8BIT, 0x3375, 0x37},
342 {IMX_8BIT, 0x3376, 0x9F},
343 {IMX_8BIT, 0x3377, 0x37},
344 {IMX_8BIT, 0x33C8, 0x01},
345 {IMX_8BIT, 0x33D4, 0x0C},
346 {IMX_8BIT, 0x33D5, 0xD0},
347 {IMX_8BIT, 0x33D6, 0x09},
348 {IMX_8BIT, 0x33D7, 0xA0},
349
350 {IMX_8BIT, 0x030e, 0x01},
351 {IMX_8BIT, 0x41c0, 0x01},
352 {IMX_TOK_TERM, 0, 0}
353 };
354
355 static struct imx_reg const imx_STILL_6M_30fps[] = {
356 GROUPED_PARAMETER_HOLD_ENABLE,
357 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
358 /* shutter */
359 {IMX_8BIT, 0x0202, 0x0A}, /* coarse _integration_time[15:8] */
360 {IMX_8BIT, 0x0203, 0xEF}, /* coarse _integration_time[7:0] */
361 /* pll */
362 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
363 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
364 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
365 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
366 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
367 {IMX_8BIT, 0x030C, 0x01},
368 {IMX_8BIT, 0x030D, 0x2c},
369 /* image sizing */
370 {IMX_8BIT, 0x0340, 0x09}, /* frame_length_lines[15:8] */
371 {IMX_8BIT, 0x0341, 0xC4}, /* frame_length_lines[7:0] */
372 {IMX_8BIT, 0x0342, 0x0D}, /* line_length_pck[15:8] */
373 {IMX_8BIT, 0x0343, 0x66}, /* line_length_pck[7:0] */
374 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
375 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
376 {IMX_8BIT, 0x0346, 0x01}, /* y_addr_start[15:8] */
377 {IMX_8BIT, 0x0347, 0x32}, /* y_addr_start[7:0] */
378 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
379 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
380 {IMX_8BIT, 0x034A, 0x08}, /* y_addr_end[15:8] */
381 {IMX_8BIT, 0x034B, 0x6D}, /* y_addr_end[7:0] */
382 {IMX_8BIT, 0x034C, 0x0C}, /* x_output_size[15:8] */
383 {IMX_8BIT, 0x034D, 0xD0}, /* x_output_size[7:0] */
384 {IMX_8BIT, 0x034E, 0x07}, /* y_output_size[15:8] */
385 {IMX_8BIT, 0x034F, 0x3C}, /* y_output_size[7:0] */
386 /* binning & scaling */
387 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
388 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
389 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
390 /* timer */
391 {IMX_8BIT, 0x3344, 0x57},
392 {IMX_8BIT, 0x3345, 0x1F},
393 /* timing */
394 {IMX_8BIT, 0x3370, 0x77},
395 {IMX_8BIT, 0x3371, 0x2F},
396 {IMX_8BIT, 0x3372, 0x4F},
397 {IMX_8BIT, 0x3373, 0x2F},
398 {IMX_8BIT, 0x3374, 0x2F},
399 {IMX_8BIT, 0x3375, 0x37},
400 {IMX_8BIT, 0x3376, 0x9F},
401 {IMX_8BIT, 0x3377, 0x37},
402 {IMX_8BIT, 0x33C8, 0x01},
403 {IMX_8BIT, 0x33D4, 0x0C},
404 {IMX_8BIT, 0x33D5, 0xD0},
405 {IMX_8BIT, 0x33D6, 0x09},
406 {IMX_8BIT, 0x33D7, 0xA0},
407
408 {IMX_8BIT, 0x030e, 0x01},
409 {IMX_8BIT, 0x41c0, 0x01},
410 {IMX_TOK_TERM, 0, 0}
411 };
412
413 static struct imx_reg const imx_STILL_6M_15fps[] = {
414 GROUPED_PARAMETER_HOLD_ENABLE,
415 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
416 /* shutter */
417 {IMX_8BIT, 0x0202, 0x0A}, /* coarse _integration_time[15:8] */
418 {IMX_8BIT, 0x0203, 0xEF}, /* coarse _integration_time[7:0] */
419 /* pll */
420 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
421 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
422 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
423 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
424 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
425 {IMX_8BIT, 0x030C, 0x01},
426 {IMX_8BIT, 0x030D, 0x2c},
427 /* image sizing */
428 {IMX_8BIT, 0x0340, 0x0B}, /* frame_length_lines[15:8] */
429 {IMX_8BIT, 0x0341, 0xB8}, /* frame_length_lines[7:0] */
430 {IMX_8BIT, 0x0342, 0x16}, /* line_length_pck[15:8] */
431 {IMX_8BIT, 0x0343, 0x44}, /* line_length_pck[7:0] */
432 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
433 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
434 {IMX_8BIT, 0x0346, 0x01}, /* y_addr_start[15:8] */
435 {IMX_8BIT, 0x0347, 0x32}, /* y_addr_start[7:0] */
436 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
437 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
438 {IMX_8BIT, 0x034A, 0x08}, /* y_addr_end[15:8] */
439 {IMX_8BIT, 0x034B, 0x6D}, /* y_addr_end[7:0] */
440 {IMX_8BIT, 0x034C, 0x0C}, /* x_output_size[15:8] */
441 {IMX_8BIT, 0x034D, 0xD0}, /* x_output_size[7:0] */
442 {IMX_8BIT, 0x034E, 0x07}, /* y_output_size[15:8] */
443 {IMX_8BIT, 0x034F, 0x3C}, /* y_output_size[7:0] */
444 /* binning & scaling */
445 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
446 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
447 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
448 /* timer */
449 {IMX_8BIT, 0x3344, 0x57},
450 {IMX_8BIT, 0x3345, 0x1F},
451 /* timing */
452 {IMX_8BIT, 0x3370, 0x77},
453 {IMX_8BIT, 0x3371, 0x2F},
454 {IMX_8BIT, 0x3372, 0x4F},
455 {IMX_8BIT, 0x3373, 0x2F},
456 {IMX_8BIT, 0x3374, 0x2F},
457 {IMX_8BIT, 0x3375, 0x37},
458 {IMX_8BIT, 0x3376, 0x9F},
459 {IMX_8BIT, 0x3377, 0x37},
460 {IMX_8BIT, 0x33C8, 0x01},
461 {IMX_8BIT, 0x33D4, 0x0C},
462 {IMX_8BIT, 0x33D5, 0xD0},
463 {IMX_8BIT, 0x33D6, 0x09},
464 {IMX_8BIT, 0x33D7, 0xA0},
465
466 {IMX_8BIT, 0x030e, 0x01},
467 {IMX_8BIT, 0x41c0, 0x01},
468 {IMX_TOK_TERM, 0, 0}
469 };
470
471 static struct imx_reg const imx_STILL_2M_30fps[] = {
472 GROUPED_PARAMETER_HOLD_ENABLE,
473 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
474 /* shutter */
475 {IMX_8BIT, 0x0202, 0x0A}, /* coarse _integration_time[15:8] */
476 {IMX_8BIT, 0x0203, 0x8C}, /* coarse _integration_time[7:0] */
477 /* pll */
478 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
479 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
480 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
481 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
482 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
483 {IMX_8BIT, 0x030C, 0x01},
484 {IMX_8BIT, 0x030D, 0x2c},
485 /* image sizing */
486 {IMX_8BIT, 0x0340, 0x09}, /* frame_length_lines[15:8] */
487 {IMX_8BIT, 0x0341, 0xC4}, /* frame_length_lines[7:0] */
488 {IMX_8BIT, 0x0342, 0x0D}, /* line_length_pck[15:8] */
489 {IMX_8BIT, 0x0343, 0x66}, /* line_length_pck[7:0] */
490 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
491 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
492 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
493 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
494 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
495 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
496 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
497 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
498 {IMX_8BIT, 0x034C, 0x06}, /* x_output_size[15:8] */
499 {IMX_8BIT, 0x034D, 0x68}, /* x_output_size[7:0] */
500 {IMX_8BIT, 0x034E, 0x04}, /* y_output_size[15:8] */
501 {IMX_8BIT, 0x034F, 0xD0}, /* y_output_size[7:0] */
502 /* binning & scaling */
503 {IMX_8BIT, 0x0390, 0x01}, /* binning mode */
504 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
505 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
506 /* timer */
507 {IMX_8BIT, 0x3344, 0x57},
508 {IMX_8BIT, 0x3345, 0x1F},
509 /* timing */
510 {IMX_8BIT, 0x3370, 0x77},
511 {IMX_8BIT, 0x3371, 0x2F},
512 {IMX_8BIT, 0x3372, 0x4F},
513 {IMX_8BIT, 0x3373, 0x2F},
514 {IMX_8BIT, 0x3374, 0x2F},
515 {IMX_8BIT, 0x3375, 0x37},
516 {IMX_8BIT, 0x3376, 0x9F},
517 {IMX_8BIT, 0x3377, 0x37},
518 {IMX_8BIT, 0x33C8, 0x01},
519 {IMX_8BIT, 0x33D4, 0x0C},
520 {IMX_8BIT, 0x33D5, 0xD0},
521 {IMX_8BIT, 0x33D6, 0x09},
522 {IMX_8BIT, 0x33D7, 0xA0},
523
524 {IMX_8BIT, 0x030e, 0x01},
525 {IMX_8BIT, 0x41c0, 0x01},
526 {IMX_TOK_TERM, 0, 0}
527 };
528
529 static struct imx_reg const imx_STILL_2M_15fps[] = {
530 GROUPED_PARAMETER_HOLD_ENABLE,
531 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
532 /* shutter */
533 {IMX_8BIT, 0x0202, 0x0A}, /* coarse _integration_time[15:8] */
534 {IMX_8BIT, 0x0203, 0x8C}, /* coarse _integration_time[7:0] */
535 /* pll */
536 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
537 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
538 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
539 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
540 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
541 {IMX_8BIT, 0x030C, 0x01},
542 {IMX_8BIT, 0x030D, 0x2c},
543 /* image sizing */
544 {IMX_8BIT, 0x0340, 0x0B}, /* frame_length_lines[15:8] */
545 {IMX_8BIT, 0x0341, 0xB8}, /* frame_length_lines[7:0] */
546 {IMX_8BIT, 0x0342, 0x16}, /* line_length_pck[15:8] */
547 {IMX_8BIT, 0x0343, 0x44}, /* line_length_pck[7:0] */
548 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
549 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
550 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
551 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
552 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
553 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
554 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
555 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
556 {IMX_8BIT, 0x034C, 0x06}, /* x_output_size[15:8] */
557 {IMX_8BIT, 0x034D, 0x68}, /* x_output_size[7:0] */
558 {IMX_8BIT, 0x034E, 0x04}, /* y_output_size[15:8] */
559 {IMX_8BIT, 0x034F, 0xD0}, /* y_output_size[7:0] */
560 /* binning & scaling */
561 {IMX_8BIT, 0x0390, 0x01}, /* binning mode */
562 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
563 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
564 /* timer */
565 {IMX_8BIT, 0x3344, 0x57},
566 {IMX_8BIT, 0x3345, 0x1F},
567 /* timing */
568 {IMX_8BIT, 0x3370, 0x77},
569 {IMX_8BIT, 0x3371, 0x2F},
570 {IMX_8BIT, 0x3372, 0x4F},
571 {IMX_8BIT, 0x3373, 0x2F},
572 {IMX_8BIT, 0x3374, 0x2F},
573 {IMX_8BIT, 0x3375, 0x37},
574 {IMX_8BIT, 0x3376, 0x9F},
575 {IMX_8BIT, 0x3377, 0x37},
576 {IMX_8BIT, 0x33C8, 0x01},
577 {IMX_8BIT, 0x33D4, 0x0C},
578 {IMX_8BIT, 0x33D5, 0xD0},
579 {IMX_8BIT, 0x33D6, 0x09},
580 {IMX_8BIT, 0x33D7, 0xA0},
581
582 {IMX_8BIT, 0x030e, 0x01},
583 {IMX_8BIT, 0x41c0, 0x01},
584 {IMX_TOK_TERM, 0, 0}
585 };
586
587 static struct imx_reg const imx_PREVIEW_30fps[] = {
588 GROUPED_PARAMETER_HOLD_ENABLE,
589 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
590 /* shutter */
591 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
592 {IMX_8BIT, 0x0203, 0x44}, /* coarse _integration_time[7:0] */
593 /* pll */
594 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
595 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
596 {IMX_8BIT, 0x0305, 0x06}, /* pre_pll_clk_div[7:0] */
597 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
598 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
599 {IMX_8BIT, 0x030C, 0x00},
600 {IMX_8BIT, 0x030D, 0x6D},
601 /* image sizing */
602 {IMX_8BIT, 0x0340, 0x05}, /* frame_length_lines[15:8] */
603 {IMX_8BIT, 0x0341, 0x48}, /* frame_length_lines[7:0] */
604 {IMX_8BIT, 0x0342, 0x0D}, /* line_length_pck[15:8] */
605 {IMX_8BIT, 0x0343, 0x70}, /* line_length_pck[7:0] */
606 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
607 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
608 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
609 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
610 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
611 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
612 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
613 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
614 {IMX_8BIT, 0x034C, 0x03}, /* x_output_size[15:8] */
615 {IMX_8BIT, 0x034D, 0x34}, /* x_output_size[7:0] */
616 {IMX_8BIT, 0x034E, 0x02}, /* y_output_size[15:8] */
617 {IMX_8BIT, 0x034F, 0x68}, /* y_output_size[7:0] */
618 /* binning & scaling */
619 {IMX_8BIT, 0x0390, 0x02}, /* binning mode */
620 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
621 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
622 /* timer */
623 {IMX_8BIT, 0x3344, 0x37},
624 {IMX_8BIT, 0x3345, 0x1F},
625 /* timing */
626 {IMX_8BIT, 0x3370, 0x5F},
627 {IMX_8BIT, 0x3371, 0x17},
628 {IMX_8BIT, 0x3372, 0x37},
629 {IMX_8BIT, 0x3373, 0x17},
630 {IMX_8BIT, 0x3374, 0x17},
631 {IMX_8BIT, 0x3375, 0x0F},
632 {IMX_8BIT, 0x3376, 0x57},
633 {IMX_8BIT, 0x3377, 0x27},
634 {IMX_8BIT, 0x33C8, 0x01},
635 {IMX_8BIT, 0x33D4, 0x03},
636 {IMX_8BIT, 0x33D5, 0x34},
637 {IMX_8BIT, 0x33D6, 0x02},
638 {IMX_8BIT, 0x33D7, 0x68},
639 {IMX_TOK_TERM, 0, 0}
640 };
641
642 static struct imx_reg const imx_WIDE_PREVIEW_30fps[] = {
643 GROUPED_PARAMETER_HOLD_ENABLE,
644 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
645 /* shutter */
646 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
647 {IMX_8BIT, 0x0203, 0x44}, /* coarse _integration_time[7:0] */
648 /* pll */
649 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
650 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
651 {IMX_8BIT, 0x0305, 0x06}, /* pre_pll_clk_div[7:0] */
652 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
653 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
654 {IMX_8BIT, 0x030C, 0x00},
655 {IMX_8BIT, 0x030D, 0x6D},
656 /* image sizing */
657 {IMX_8BIT, 0x0340, 0x0D}, /* frame_length_lines[15:8] */
658 {IMX_8BIT, 0x0341, 0x70}, /* frame_length_lines[7:0] */
659 {IMX_8BIT, 0x0342, 0x10}, /* line_length_pck[15:8] */
660 {IMX_8BIT, 0x0343, 0x00}, /* line_length_pck[7:0] */
661 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
662 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
663 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
664 {IMX_8BIT, 0x0347, 0x14}, /* y_addr_start[7:0] */
665 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
666 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
667 {IMX_8BIT, 0x034A, 0x08}, /* y_addr_end[15:8] */
668 {IMX_8BIT, 0x034B, 0x8C}, /* y_addr_end[7:0] */
669 {IMX_8BIT, 0x034C, 0x06}, /* x_output_size[15:8] */
670 {IMX_8BIT, 0x034D, 0x68}, /* x_output_size[7:0] */
671 {IMX_8BIT, 0x034E, 0x03}, /* y_output_size[15:8] */
672 {IMX_8BIT, 0x034F, 0xBC}, /* y_output_size[7:0] */
673 /* binning & scaling */
674 {IMX_8BIT, 0x0390, 0x01}, /* binning mode */
675 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
676 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
677 /* timer */
678 {IMX_8BIT, 0x3344, 0x37},
679 {IMX_8BIT, 0x3345, 0x1F},
680 /* timing */
681 {IMX_8BIT, 0x3370, 0x5F},
682 {IMX_8BIT, 0x3371, 0x17},
683 {IMX_8BIT, 0x3372, 0x37},
684 {IMX_8BIT, 0x3373, 0x17},
685 {IMX_8BIT, 0x3374, 0x17},
686 {IMX_8BIT, 0x3375, 0x0F},
687 {IMX_8BIT, 0x3376, 0x57},
688 {IMX_8BIT, 0x3377, 0x27},
689 {IMX_8BIT, 0x33C8, 0x01},
690 {IMX_8BIT, 0x33D4, 0x06},
691 {IMX_8BIT, 0x33D5, 0x68},
692 {IMX_8BIT, 0x33D6, 0x03},
693 {IMX_8BIT, 0x33D7, 0xBC},
694 {IMX_TOK_TERM, 0, 0}
695 };
696
697 /*****************************video************************/
698 static struct imx_reg const imx_1080p_strong_dvs_30fps[] = {
699 GROUPED_PARAMETER_HOLD_ENABLE,
700 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
701 /* shutter */
702 {IMX_8BIT, 0x0202, 0x06}, /* coarse _integration_time[15:8] */
703 {IMX_8BIT, 0x0203, 0x4C}, /* coarse _integration_time[7:0] */
704 /* pll */
705 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
706 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
707 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
708 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
709 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
710 {IMX_8BIT, 0x030C, 0x01},
711 {IMX_8BIT, 0x030D, 0x12},
712 /* image sizing */
713 {IMX_8BIT, 0x0340, 0x06}, /* frame_length_lines[15:8] */
714 {IMX_8BIT, 0x0341, 0xA4}, /* frame_length_lines[7:0] */
715 {IMX_8BIT, 0x0342, 0x11}, /* line_length_pck[15:8] */
716 {IMX_8BIT, 0x0343, 0xC6}, /* line_length_pck[7:0] */
717 {IMX_8BIT, 0x0344, 0x01}, /* x_addr_start[15:8] */
718 {IMX_8BIT, 0x0345, 0xDB}, /* x_addr_start[7:0] */
719 {IMX_8BIT, 0x0346, 0x02}, /* y_addr_start[15:8] */
720 {IMX_8BIT, 0x0347, 0x42}, /* y_addr_start[7:0] */
721 {IMX_8BIT, 0x0348, 0x0A}, /* x_addr_end[15:8] */
722 {IMX_8BIT, 0x0349, 0xEA}, /* x_addr_end[7:0] */
723 {IMX_8BIT, 0x034A, 0x07}, /* y_addr_end[15:8] */
724 {IMX_8BIT, 0x034B, 0x61}, /* y_addr_end[7:0] */
725 {IMX_8BIT, 0x034C, 0x09}, /* x_output_size[15:8] */
726 {IMX_8BIT, 0x034D, 0x10}, /* x_output_size[7:0] */
727 {IMX_8BIT, 0x034E, 0x05}, /* y_output_size[15:8] */
728 {IMX_8BIT, 0x034F, 0x20}, /* y_output_size[7:0] */
729 /* binning & scaling */
730 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
731 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
732 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
733 /* timer */
734 {IMX_8BIT, 0x3344, 0x57},
735 {IMX_8BIT, 0x3345, 0x1F},
736 /* timing */
737 {IMX_8BIT, 0x3370, 0x6F},
738 {IMX_8BIT, 0x3371, 0x27},
739 {IMX_8BIT, 0x3372, 0x4F},
740 {IMX_8BIT, 0x3373, 0x2F},
741 {IMX_8BIT, 0x3374, 0x27},
742 {IMX_8BIT, 0x3375, 0x2F},
743 {IMX_8BIT, 0x3376, 0x97},
744 {IMX_8BIT, 0x3377, 0x37},
745 {IMX_8BIT, 0x33C8, 0x01},
746 {IMX_8BIT, 0x33D4, 0x0C},
747 {IMX_8BIT, 0x33D5, 0xD0},
748 {IMX_8BIT, 0x33D6, 0x07},
749 {IMX_8BIT, 0x33D7, 0x38},
750 {IMX_TOK_TERM, 0, 0}
751 };
752
753 static struct imx_reg const imx_1080p_no_dvs_30fps[] = {
754 GROUPED_PARAMETER_HOLD_ENABLE,
755 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
756 /* shutter */
757 {IMX_8BIT, 0x0202, 0x08}, /* coarse _integration_time[15:8] */
758 {IMX_8BIT, 0x0203, 0xD5}, /* coarse _integration_time[7:0] */
759 /* pll */
760 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
761 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
762 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
763 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
764 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
765 {IMX_8BIT, 0x030C, 0x01},
766 {IMX_8BIT, 0x030D, 0x12},
767 /* image sizing */
768 {IMX_8BIT, 0x0340, 0x07}, /* frame_length_lines[15:8] */
769 {IMX_8BIT, 0x0341, 0xD0}, /* frame_length_lines[7:0] */
770 {IMX_8BIT, 0x0342, 0x0F}, /* line_length_pck[15:8] */
771 {IMX_8BIT, 0x0343, 0x3C}, /* line_length_pck[7:0] */
772 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
773 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
774 {IMX_8BIT, 0x0346, 0x01}, /* y_addr_start[15:8] */
775 {IMX_8BIT, 0x0347, 0x34}, /* y_addr_start[7:0] */
776 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
777 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
778 {IMX_8BIT, 0x034A, 0x08}, /* y_addr_end[15:8] */
779 {IMX_8BIT, 0x034B, 0x6B}, /* y_addr_end[7:0] */
780 {IMX_8BIT, 0x034C, 0x07}, /* x_output_size[15:8] */
781 {IMX_8BIT, 0x034D, 0x94}, /* x_output_size[7:0] */
782 {IMX_8BIT, 0x034E, 0x04}, /* y_output_size[15:8] */
783 {IMX_8BIT, 0x034F, 0x44}, /* y_output_size[7:0] */
784 /* binning & scaling */
785 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
786 {IMX_8BIT, 0x0401, 0x02}, /* scaling mode*/
787 {IMX_8BIT, 0x0405, 0x1B}, /* scale_m[7:0] */
788 /* timer */
789 {IMX_8BIT, 0x3344, 0x57},
790 {IMX_8BIT, 0x3345, 0x1F},
791 /* timing */
792 {IMX_8BIT, 0x3370, 0x6F},
793 {IMX_8BIT, 0x3371, 0x27},
794 {IMX_8BIT, 0x3372, 0x4F},
795 {IMX_8BIT, 0x3373, 0x2F},
796 {IMX_8BIT, 0x3374, 0x27},
797 {IMX_8BIT, 0x3375, 0x2F},
798 {IMX_8BIT, 0x3376, 0x97},
799 {IMX_8BIT, 0x3377, 0x37},
800 {IMX_8BIT, 0x33C8, 0x01},
801 {IMX_8BIT, 0x33D4, 0x0C},
802 {IMX_8BIT, 0x33D5, 0xD0},
803 {IMX_8BIT, 0x33D6, 0x07},
804 {IMX_8BIT, 0x33D7, 0x38},
805 {IMX_TOK_TERM, 0, 0}
806 };
807
808 static struct imx_reg const imx_1080p_no_dvs_15fps[] = {
809 GROUPED_PARAMETER_HOLD_ENABLE,
810 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
811 /* shutter */
812 {IMX_8BIT, 0x0202, 0x08}, /* coarse _integration_time[15:8] */
813 {IMX_8BIT, 0x0203, 0xD5}, /* coarse _integration_time[7:0] */
814 /* pll */
815 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
816 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
817 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
818 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
819 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
820 {IMX_8BIT, 0x030C, 0x01},
821 {IMX_8BIT, 0x030D, 0x12},
822 /* image sizing */
823 {IMX_8BIT, 0x0340, 0x09}, /* frame_length_lines[15:8] */
824 {IMX_8BIT, 0x0341, 0xA6}, /* frame_length_lines[7:0] */
825 {IMX_8BIT, 0x0342, 0x18}, /* line_length_pck[15:8] */
826 {IMX_8BIT, 0x0343, 0x9C}, /* line_length_pck[7:0] */
827 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
828 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
829 {IMX_8BIT, 0x0346, 0x01}, /* y_addr_start[15:8] */
830 {IMX_8BIT, 0x0347, 0x34}, /* y_addr_start[7:0] */
831 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
832 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
833 {IMX_8BIT, 0x034A, 0x08}, /* y_addr_end[15:8] */
834 {IMX_8BIT, 0x034B, 0x6B}, /* y_addr_end[7:0] */
835 {IMX_8BIT, 0x034C, 0x07}, /* x_output_size[15:8] */
836 {IMX_8BIT, 0x034D, 0x94}, /* x_output_size[7:0] */
837 {IMX_8BIT, 0x034E, 0x04}, /* y_output_size[15:8] */
838 {IMX_8BIT, 0x034F, 0x44}, /* y_output_size[7:0] */
839 /* binning & scaling */
840 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
841 {IMX_8BIT, 0x0401, 0x02}, /* scaling mode*/
842 {IMX_8BIT, 0x0405, 0x1B}, /* scale_m[7:0] */
843 /* timer */
844 {IMX_8BIT, 0x3344, 0x57},
845 {IMX_8BIT, 0x3345, 0x1F},
846 /* timing */
847 {IMX_8BIT, 0x3370, 0x6F},
848 {IMX_8BIT, 0x3371, 0x27},
849 {IMX_8BIT, 0x3372, 0x4F},
850 {IMX_8BIT, 0x3373, 0x2F},
851 {IMX_8BIT, 0x3374, 0x27},
852 {IMX_8BIT, 0x3375, 0x2F},
853 {IMX_8BIT, 0x3376, 0x97},
854 {IMX_8BIT, 0x3377, 0x37},
855 {IMX_8BIT, 0x33C8, 0x01},
856 {IMX_8BIT, 0x33D4, 0x0C},
857 {IMX_8BIT, 0x33D5, 0xD0},
858 {IMX_8BIT, 0x33D6, 0x07},
859 {IMX_8BIT, 0x33D7, 0x38},
860 {IMX_TOK_TERM, 0, 0}
861 };
862 /*****************************video************************/
863 static struct imx_reg const imx_720p_strong_dvs_30fps[] = {
864 GROUPED_PARAMETER_HOLD_ENABLE,
865 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
866 /* shutter */
867 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
868 {IMX_8BIT, 0x0203, 0xFC}, /* coarse _integration_time[7:0] */
869 /* pll */
870 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
871 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
872 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
873 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
874 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
875 {IMX_8BIT, 0x030C, 0x01},
876 {IMX_8BIT, 0x030D, 0x12},
877 /* image sizing */
878 {IMX_8BIT, 0x0340, 0x06}, /* frame_length_lines[15:8] */
879 {IMX_8BIT, 0x0341, 0x00}, /* frame_length_lines[7:0] */
880 {IMX_8BIT, 0x0342, 0x13}, /* line_length_pck[15:8] */
881 {IMX_8BIT, 0x0343, 0x9C}, /* line_length_pck[7:0] */
882 {IMX_8BIT, 0x0344, 0x01}, /* x_addr_start[15:8] */
883 {IMX_8BIT, 0x0345, 0xD7}, /* x_addr_start[7:0] */
884 {IMX_8BIT, 0x0346, 0x02}, /* y_addr_start[15:8] */
885 {IMX_8BIT, 0x0347, 0x3E}, /* y_addr_start[7:0] */
886 {IMX_8BIT, 0x0348, 0x0A}, /* x_addr_end[15:8] */
887 {IMX_8BIT, 0x0349, 0xEE}, /* x_addr_end[7:0] */
888 {IMX_8BIT, 0x034A, 0x07}, /* y_addr_end[15:8] */
889 {IMX_8BIT, 0x034B, 0x65}, /* y_addr_end[7:0] */
890 {IMX_8BIT, 0x034C, 0x06}, /* x_output_size[15:8] */
891 {IMX_8BIT, 0x034D, 0x10}, /* x_output_size[7:0] */
892 {IMX_8BIT, 0x034E, 0x03}, /* y_output_size[15:8] */
893 {IMX_8BIT, 0x034F, 0x70}, /* y_output_size[7:0] */
894 /* binning & scaling */
895 {IMX_8BIT, 0x0390, 0x00}, /* binning mode */
896 {IMX_8BIT, 0x0401, 0x02}, /* scaling mode*/
897 {IMX_8BIT, 0x0405, 0x18}, /* scale_m[7:0] */
898 /* timer */
899 {IMX_8BIT, 0x3344, 0x57},
900 {IMX_8BIT, 0x3345, 0x1F},
901 /* timing */
902 {IMX_8BIT, 0x3370, 0x6F},
903 {IMX_8BIT, 0x3371, 0x27},
904 {IMX_8BIT, 0x3372, 0x4F},
905 {IMX_8BIT, 0x3373, 0x2F},
906 {IMX_8BIT, 0x3374, 0x27},
907 {IMX_8BIT, 0x3375, 0x2F},
908 {IMX_8BIT, 0x3376, 0x97},
909 {IMX_8BIT, 0x3377, 0x37},
910 {IMX_8BIT, 0x33C8, 0x01},
911 {IMX_8BIT, 0x33D4, 0x0C},
912 {IMX_8BIT, 0x33D5, 0xD0},
913 {IMX_8BIT, 0x33D6, 0x07},
914 {IMX_8BIT, 0x33D7, 0x38},
915 {IMX_TOK_TERM, 0, 0}
916 };
917
918 static struct imx_reg const imx_480p_strong_dvs_30fps[] = {
919 GROUPED_PARAMETER_HOLD_ENABLE,
920 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
921 /* shutter */
922 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
923 {IMX_8BIT, 0x0203, 0xFC}, /* coarse _integration_time[7:0] */
924 /* pll */
925 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
926 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
927 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
928 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
929 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
930 {IMX_8BIT, 0x030C, 0x01},
931 {IMX_8BIT, 0x030D, 0x12},
932 /* image sizing */
933 {IMX_8BIT, 0x0340, 0x06}, /* frame_length_lines[15:8] */
934 {IMX_8BIT, 0x0341, 0x00}, /* frame_length_lines[7:0] */
935 {IMX_8BIT, 0x0342, 0x13}, /* line_length_pck[15:8] */
936 {IMX_8BIT, 0x0343, 0x9C}, /* line_length_pck[7:0] */
937 {IMX_8BIT, 0x0344, 0x01}, /* x_addr_start[15:8] */
938 {IMX_8BIT, 0x0345, 0xD4}, /* x_addr_start[7:0] */
939 {IMX_8BIT, 0x0346, 0x01}, /* y_addr_start[15:8] */
940 {IMX_8BIT, 0x0347, 0xC8}, /* y_addr_start[7:0] */
941 {IMX_8BIT, 0x0348, 0x0A}, /* x_addr_end[15:8] */
942 {IMX_8BIT, 0x0349, 0xF1}, /* x_addr_end[7:0] */
943 {IMX_8BIT, 0x034A, 0x07}, /* y_addr_end[15:8] */
944 {IMX_8BIT, 0x034B, 0xDB}, /* y_addr_end[7:0] */
945 {IMX_8BIT, 0x034C, 0x03}, /* x_output_size[15:8] */
946 {IMX_8BIT, 0x034D, 0x70}, /* x_output_size[7:0] */
947 {IMX_8BIT, 0x034E, 0x02}, /* y_output_size[15:8] */
948 {IMX_8BIT, 0x034F, 0x50}, /* y_output_size[7:0] */
949 /* binning & scaling */
950 {IMX_8BIT, 0x0390, 0x01}, /* binning mode */
951 {IMX_8BIT, 0x0401, 0x02}, /* scaling mode*/
952 {IMX_8BIT, 0x0405, 0x15}, /* scale_m[7:0] */
953 /* timer */
954 {IMX_8BIT, 0x3344, 0x57},
955 {IMX_8BIT, 0x3345, 0x1F},
956 /* timing */
957 {IMX_8BIT, 0x3370, 0x6F},
958 {IMX_8BIT, 0x3371, 0x27},
959 {IMX_8BIT, 0x3372, 0x4F},
960 {IMX_8BIT, 0x3373, 0x2F},
961 {IMX_8BIT, 0x3374, 0x27},
962 {IMX_8BIT, 0x3375, 0x2F},
963 {IMX_8BIT, 0x3376, 0x97},
964 {IMX_8BIT, 0x3377, 0x37},
965 {IMX_8BIT, 0x33C8, 0x01},
966 {IMX_8BIT, 0x33D4, 0x0C},
967 {IMX_8BIT, 0x33D5, 0xD0},
968 {IMX_8BIT, 0x33D6, 0x07},
969 {IMX_8BIT, 0x33D7, 0x38},
970 {IMX_TOK_TERM, 0, 0}
971 };
972
973 static struct imx_reg const imx_STILL_720p_30fps[] = {
974 GROUPED_PARAMETER_HOLD_ENABLE,
975 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
976 /* shutter */
977 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
978 {IMX_8BIT, 0x0203, 0x44}, /* coarse _integration_time[7:0] */
979 /* pll */
980 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
981 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
982 {IMX_8BIT, 0x0305, 0x04}, /* pre_pll_clk_div[7:0] */
983 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
984 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
985 {IMX_8BIT, 0x030C, 0x00},
986 {IMX_8BIT, 0x030D, 0x6D},
987 /* image sizing */
988 {IMX_8BIT, 0x0340, 0x05}, /* frame_length_lines[15:8] */
989 {IMX_8BIT, 0x0341, 0x48}, /* frame_length_lines[7:0] */
990 {IMX_8BIT, 0x0342, 0x14}, /* line_length_pck[15:8] */
991 {IMX_8BIT, 0x0343, 0x28}, /* line_length_pck[7:0] */
992 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
993 {IMX_8BIT, 0x0345, 0x48}, /* x_addr_start[7:0] */
994 {IMX_8BIT, 0x0346, 0x01}, /* y_addr_start[15:8] */
995 {IMX_8BIT, 0x0347, 0x64}, /* y_addr_start[7:0] */
996 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
997 {IMX_8BIT, 0x0349, 0x87}, /* x_addr_end[7:0] */
998 {IMX_8BIT, 0x034A, 0x08}, /* y_addr_end[15:8] */
999 {IMX_8BIT, 0x034B, 0x3B}, /* y_addr_end[7:0] */
1000 {IMX_8BIT, 0x034C, 0x06}, /* x_output_size[15:8] */
1001 {IMX_8BIT, 0x034D, 0x20}, /* x_output_size[7:0] */
1002 {IMX_8BIT, 0x034E, 0x03}, /* y_output_size[15:8] */
1003 {IMX_8BIT, 0x034F, 0x6C}, /* y_output_size[7:0] */
1004 /* binning & scaling */
1005 {IMX_8BIT, 0x0390, 0x01}, /* binning mode */
1006 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
1007 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
1008 /* timer */
1009 {IMX_8BIT, 0x3344, 0x37},
1010 {IMX_8BIT, 0x3345, 0x1F},
1011 /* timing */
1012 {IMX_8BIT, 0x3370, 0x5F},
1013 {IMX_8BIT, 0x3371, 0x17},
1014 {IMX_8BIT, 0x3372, 0x37},
1015 {IMX_8BIT, 0x3373, 0x17},
1016 {IMX_8BIT, 0x3374, 0x17},
1017 {IMX_8BIT, 0x3375, 0x0F},
1018 {IMX_8BIT, 0x3376, 0x57},
1019 {IMX_8BIT, 0x3377, 0x27},
1020 {IMX_8BIT, 0x33C8, 0x01},
1021 {IMX_8BIT, 0x33D4, 0x06},
1022 {IMX_8BIT, 0x33D5, 0x20},
1023 {IMX_8BIT, 0x33D6, 0x03},
1024 {IMX_8BIT, 0x33D7, 0x6C},
1025 {IMX_TOK_TERM, 0, 0}
1026 };
1027
1028 static struct imx_reg const imx_STILL_720p_15fps[] = {
1029 GROUPED_PARAMETER_HOLD_ENABLE,
1030 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
1031 /* shutter */
1032 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
1033 {IMX_8BIT, 0x0203, 0x44}, /* coarse _integration_time[7:0] */
1034 /* pll */
1035 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
1036 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
1037 {IMX_8BIT, 0x0305, 0x04}, /* pre_pll_clk_div[7:0] */
1038 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
1039 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
1040 {IMX_8BIT, 0x030C, 0x00},
1041 {IMX_8BIT, 0x030D, 0x6D},
1042 /* image sizing */
1043 {IMX_8BIT, 0x0340, 0x08}, /* frame_length_lines[15:8] */
1044 {IMX_8BIT, 0x0341, 0xCA}, /* frame_length_lines[7:0] */
1045 {IMX_8BIT, 0x0342, 0x18}, /* line_length_pck[15:8] */
1046 {IMX_8BIT, 0x0343, 0x38}, /* line_length_pck[7:0] */
1047 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
1048 {IMX_8BIT, 0x0345, 0x48}, /* x_addr_start[7:0] */
1049 {IMX_8BIT, 0x0346, 0x01}, /* y_addr_start[15:8] */
1050 {IMX_8BIT, 0x0347, 0x64}, /* y_addr_start[7:0] */
1051 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
1052 {IMX_8BIT, 0x0349, 0x87}, /* x_addr_end[7:0] */
1053 {IMX_8BIT, 0x034A, 0x08}, /* y_addr_end[15:8] */
1054 {IMX_8BIT, 0x034B, 0x3B}, /* y_addr_end[7:0] */
1055 {IMX_8BIT, 0x034C, 0x06}, /* x_output_size[15:8] */
1056 {IMX_8BIT, 0x034D, 0x20}, /* x_output_size[7:0] */
1057 {IMX_8BIT, 0x034E, 0x03}, /* y_output_size[15:8] */
1058 {IMX_8BIT, 0x034F, 0x6C}, /* y_output_size[7:0] */
1059 /* binning & scaling */
1060 {IMX_8BIT, 0x0390, 0x01}, /* binning mode */
1061 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
1062 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
1063 /* timer */
1064 {IMX_8BIT, 0x3344, 0x37},
1065 {IMX_8BIT, 0x3345, 0x1F},
1066 /* timing */
1067 {IMX_8BIT, 0x3370, 0x5F},
1068 {IMX_8BIT, 0x3371, 0x17},
1069 {IMX_8BIT, 0x3372, 0x37},
1070 {IMX_8BIT, 0x3373, 0x17},
1071 {IMX_8BIT, 0x3374, 0x17},
1072 {IMX_8BIT, 0x3375, 0x0F},
1073 {IMX_8BIT, 0x3376, 0x57},
1074 {IMX_8BIT, 0x3377, 0x27},
1075 {IMX_8BIT, 0x33C8, 0x01},
1076 {IMX_8BIT, 0x33D4, 0x06},
1077 {IMX_8BIT, 0x33D5, 0x20},
1078 {IMX_8BIT, 0x33D6, 0x03},
1079 {IMX_8BIT, 0x33D7, 0x6C},
1080 {IMX_TOK_TERM, 0, 0}
1081 };
1082
1083 static struct imx_reg const imx_WVGA_strong_dvs_30fps[] = {
1084 GROUPED_PARAMETER_HOLD_ENABLE,
1085 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
1086 /* shutter */
1087 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
1088 {IMX_8BIT, 0x0203, 0xEC}, /* coarse _integration_time[7:0] */
1089 /* pll */
1090 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
1091 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
1092 {IMX_8BIT, 0x0305, 0x09}, /* pre_pll_clk_div[7:0] */
1093 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
1094 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
1095 {IMX_8BIT, 0x030C, 0x01},
1096 {IMX_8BIT, 0x030D, 0x12},
1097 /* image sizing */
1098 {IMX_8BIT, 0x0340, 0x06}, /* frame_length_lines[15:8] */
1099 {IMX_8BIT, 0x0341, 0x00}, /* frame_length_lines[7:0] */
1100 {IMX_8BIT, 0x0342, 0x13}, /* line_length_pck[15:8] */
1101 {IMX_8BIT, 0x0343, 0x9C}, /* line_length_pck[7:0] */
1102 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
1103 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
1104 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
1105 {IMX_8BIT, 0x0347, 0xD0}, /* y_addr_start[7:0] */
1106 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
1107 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
1108 {IMX_8BIT, 0x034A, 0x08}, /* y_addr_end[15:8] */
1109 {IMX_8BIT, 0x034B, 0xCF}, /* y_addr_end[7:0] */
1110 {IMX_8BIT, 0x034C, 0x06}, /* x_output_size[15:8] */
1111 {IMX_8BIT, 0x034D, 0x68}, /* x_output_size[7:0] */
1112 {IMX_8BIT, 0x034E, 0x04}, /* y_output_size[15:8] */
1113 {IMX_8BIT, 0x034F, 0x00}, /* y_output_size[7:0] */
1114 /* binning & scaling */
1115 {IMX_8BIT, 0x0390, 0x01}, /* binning mode */
1116 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
1117 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
1118 /* timer */
1119 {IMX_8BIT, 0x3344, 0x57},
1120 {IMX_8BIT, 0x3345, 0x1F},
1121 /* timing */
1122 {IMX_8BIT, 0x3370, 0x6F},
1123 {IMX_8BIT, 0x3371, 0x27},
1124 {IMX_8BIT, 0x3372, 0x4F},
1125 {IMX_8BIT, 0x3373, 0x2F},
1126 {IMX_8BIT, 0x3374, 0x27},
1127 {IMX_8BIT, 0x3375, 0x2F},
1128 {IMX_8BIT, 0x3376, 0x97},
1129 {IMX_8BIT, 0x3377, 0x37},
1130 {IMX_8BIT, 0x33C8, 0x01},
1131 {IMX_8BIT, 0x33D4, 0x0C},
1132 {IMX_8BIT, 0x33D5, 0xD0},
1133 {IMX_8BIT, 0x33D6, 0x07},
1134 {IMX_8BIT, 0x33D7, 0x38},
1135 {IMX_TOK_TERM, 0, 0}
1136 };
1137 static struct imx_reg const imx_CIF_strong_dvs_30fps[] = {
1138 GROUPED_PARAMETER_HOLD_ENABLE,
1139 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
1140 /* shutter */
1141 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
1142 {IMX_8BIT, 0x0203, 0xFC}, /* coarse _integration_time[7:0] */
1143 /* pll */
1144 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
1145 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
1146 {IMX_8BIT, 0x0305, 0x04}, /* pre_pll_clk_div[7:0] */
1147 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
1148 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
1149 {IMX_8BIT, 0x030C, 0x00},
1150 {IMX_8BIT, 0x030D, 0x6D},
1151 /* image sizing */
1152 {IMX_8BIT, 0x0340, 0x06}, /* frame_length_lines[15:8] */
1153 {IMX_8BIT, 0x0341, 0x00}, /* frame_length_lines[7:0] */
1154 {IMX_8BIT, 0x0342, 0x11}, /* line_length_pck[15:8] */
1155 {IMX_8BIT, 0x0343, 0xDB}, /* line_length_pck[7:0] */
1156 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
1157 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
1158 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
1159 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
1160 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
1161 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
1162 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
1163 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
1164 {IMX_8BIT, 0x034C, 0x01}, /* x_output_size[15:8] */
1165 {IMX_8BIT, 0x034D, 0x70}, /* x_output_size[7:0] */
1166 {IMX_8BIT, 0x034E, 0x01}, /* y_output_size[15:8] */
1167 {IMX_8BIT, 0x034F, 0x30}, /* y_output_size[7:0] */
1168 /* binning & scaling */
1169 {IMX_8BIT, 0x0390, 0x02}, /* binning mode */
1170 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
1171 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
1172 /* timer */
1173 {IMX_8BIT, 0x3344, 0x37},
1174 {IMX_8BIT, 0x3345, 0x1F},
1175 /* timing */
1176 {IMX_8BIT, 0x3370, 0x5F},
1177 {IMX_8BIT, 0x3371, 0x17},
1178 {IMX_8BIT, 0x3372, 0x37},
1179 {IMX_8BIT, 0x3373, 0x17},
1180 {IMX_8BIT, 0x3374, 0x17},
1181 {IMX_8BIT, 0x3375, 0x0F},
1182 {IMX_8BIT, 0x3376, 0x57},
1183 {IMX_8BIT, 0x3377, 0x27},
1184 {IMX_8BIT, 0x33C8, 0x01},
1185 {IMX_8BIT, 0x33D4, 0x06},
1186 {IMX_8BIT, 0x33D5, 0x20},
1187 {IMX_8BIT, 0x33D6, 0x03},
1188 {IMX_8BIT, 0x33D7, 0x6C},
1189 {IMX_TOK_TERM, 0, 0}
1190 };
1191
1192 static struct imx_reg const imx_VGA_strong_dvs_30fps[] = {
1193 GROUPED_PARAMETER_HOLD_ENABLE,
1194 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
1195 /* shutter */
1196 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
1197 {IMX_8BIT, 0x0203, 0xFC}, /* coarse _integration_time[7:0] */
1198 /* pll */
1199 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
1200 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
1201 {IMX_8BIT, 0x0305, 0x04}, /* pre_pll_clk_div[7:0] */
1202 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
1203 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
1204 {IMX_8BIT, 0x030C, 0x00},
1205 {IMX_8BIT, 0x030D, 0x6D},
1206 /* image sizing */
1207 {IMX_8BIT, 0x0340, 0x06}, /* frame_length_lines[15:8] */
1208 {IMX_8BIT, 0x0341, 0x00}, /* frame_length_lines[7:0] */
1209 {IMX_8BIT, 0x0342, 0x11}, /* line_length_pck[15:8] */
1210 {IMX_8BIT, 0x0343, 0x94}, /* line_length_pck[7:0] */
1211 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
1212 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
1213 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
1214 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
1215 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
1216 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
1217 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
1218 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
1219 {IMX_8BIT, 0x034C, 0x03}, /* x_output_size[15:8] */
1220 {IMX_8BIT, 0x034D, 0x34}, /* x_output_size[7:0] */
1221 {IMX_8BIT, 0x034E, 0x02}, /* y_output_size[15:8] */
1222 {IMX_8BIT, 0x034F, 0x68}, /* y_output_size[7:0] */
1223 /* binning & scaling */
1224 {IMX_8BIT, 0x0390, 0x02}, /* binning mode */
1225 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
1226 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
1227 /* timer */
1228 {IMX_8BIT, 0x3344, 0x37},
1229 {IMX_8BIT, 0x3345, 0x1F},
1230 /* timing */
1231 {IMX_8BIT, 0x3370, 0x5F},
1232 {IMX_8BIT, 0x3371, 0x17},
1233 {IMX_8BIT, 0x3372, 0x37},
1234 {IMX_8BIT, 0x3373, 0x17},
1235 {IMX_8BIT, 0x3374, 0x17},
1236 {IMX_8BIT, 0x3375, 0x0F},
1237 {IMX_8BIT, 0x3376, 0x57},
1238 {IMX_8BIT, 0x3377, 0x27},
1239 {IMX_8BIT, 0x33C8, 0x01},
1240 {IMX_8BIT, 0x33D4, 0x06},
1241 {IMX_8BIT, 0x33D5, 0x20},
1242 {IMX_8BIT, 0x33D6, 0x03},
1243 {IMX_8BIT, 0x33D7, 0x6C},
1244 {IMX_TOK_TERM, 0, 0}
1245 };
1246
1247 static struct imx_reg const imx_VGA_strong_dvs_15fps[] = {
1248 GROUPED_PARAMETER_HOLD_ENABLE,
1249 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
1250 /* shutter */
1251 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
1252 {IMX_8BIT, 0x0203, 0xFC}, /* coarse _integration_time[7:0] */
1253 /* pll */
1254 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
1255 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
1256 {IMX_8BIT, 0x0305, 0x04}, /* pre_pll_clk_div[7:0] */
1257 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
1258 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
1259 {IMX_8BIT, 0x030C, 0x00},
1260 {IMX_8BIT, 0x030D, 0x6D},
1261 /* image sizing */
1262 {IMX_8BIT, 0x0340, 0x07}, /* frame_length_lines[15:8] */
1263 {IMX_8BIT, 0x0341, 0x9E}, /* frame_length_lines[7:0] */
1264 {IMX_8BIT, 0x0342, 0x1C}, /* line_length_pck[15:8] */
1265 {IMX_8BIT, 0x0343, 0xB6}, /* line_length_pck[7:0] */
1266 {IMX_8BIT, 0x0344, 0x00}, /* x_addr_start[15:8] */
1267 {IMX_8BIT, 0x0345, 0x00}, /* x_addr_start[7:0] */
1268 {IMX_8BIT, 0x0346, 0x00}, /* y_addr_start[15:8] */
1269 {IMX_8BIT, 0x0347, 0x00}, /* y_addr_start[7:0] */
1270 {IMX_8BIT, 0x0348, 0x0C}, /* x_addr_end[15:8] */
1271 {IMX_8BIT, 0x0349, 0xCF}, /* x_addr_end[7:0] */
1272 {IMX_8BIT, 0x034A, 0x09}, /* y_addr_end[15:8] */
1273 {IMX_8BIT, 0x034B, 0x9F}, /* y_addr_end[7:0] */
1274 {IMX_8BIT, 0x034C, 0x03}, /* x_output_size[15:8] */
1275 {IMX_8BIT, 0x034D, 0x34}, /* x_output_size[7:0] */
1276 {IMX_8BIT, 0x034E, 0x02}, /* y_output_size[15:8] */
1277 {IMX_8BIT, 0x034F, 0x68}, /* y_output_size[7:0] */
1278 /* binning & scaling */
1279 {IMX_8BIT, 0x0390, 0x02}, /* binning mode */
1280 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
1281 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
1282 /* timer */
1283 {IMX_8BIT, 0x3344, 0x37},
1284 {IMX_8BIT, 0x3345, 0x1F},
1285 /* timing */
1286 {IMX_8BIT, 0x3370, 0x5F},
1287 {IMX_8BIT, 0x3371, 0x17},
1288 {IMX_8BIT, 0x3372, 0x37},
1289 {IMX_8BIT, 0x3373, 0x17},
1290 {IMX_8BIT, 0x3374, 0x17},
1291 {IMX_8BIT, 0x3375, 0x0F},
1292 {IMX_8BIT, 0x3376, 0x57},
1293 {IMX_8BIT, 0x3377, 0x27},
1294 {IMX_8BIT, 0x33C8, 0x01},
1295 {IMX_8BIT, 0x33D4, 0x06},
1296 {IMX_8BIT, 0x33D5, 0x20},
1297 {IMX_8BIT, 0x33D6, 0x03},
1298 {IMX_8BIT, 0x33D7, 0x6C},
1299 {IMX_TOK_TERM, 0, 0}
1300 };
1301
1302 static struct imx_reg const imx_QVGA_strong_dvs_30fps[] = {
1303 GROUPED_PARAMETER_HOLD_ENABLE,
1304 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
1305 /* shutter */
1306 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
1307 {IMX_8BIT, 0x0203, 0x44}, /* coarse _integration_time[7:0] */
1308 /* pll */
1309 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
1310 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
1311 {IMX_8BIT, 0x0305, 0x06}, /* pre_pll_clk_div[7:0] */
1312 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
1313 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
1314 {IMX_8BIT, 0x030C, 0x00},
1315 {IMX_8BIT, 0x030D, 0x6D},
1316 /* image sizing */
1317 {IMX_8BIT, 0x0340, 0x05}, /* frame_length_lines[15:8] */
1318 {IMX_8BIT, 0x0341, 0x48}, /* frame_length_lines[7:0] */
1319 {IMX_8BIT, 0x0342, 0x0D}, /* line_length_pck[15:8] */
1320 {IMX_8BIT, 0x0343, 0x70}, /* line_length_pck[7:0] */
1321 {IMX_8BIT, 0x0344, 0x03}, /* x_addr_start[15:8] */
1322 {IMX_8BIT, 0x0345, 0x38}, /* x_addr_start[7:0] */
1323 {IMX_8BIT, 0x0346, 0x02}, /* y_addr_start[15:8] */
1324 {IMX_8BIT, 0x0347, 0x68}, /* y_addr_start[7:0] */
1325 {IMX_8BIT, 0x0348, 0x09}, /* x_addr_end[15:8] */
1326 {IMX_8BIT, 0x0349, 0x97}, /* x_addr_end[7:0] */
1327 {IMX_8BIT, 0x034A, 0x07}, /* y_addr_end[15:8] */
1328 {IMX_8BIT, 0x034B, 0x37}, /* y_addr_end[7:0] */
1329 {IMX_8BIT, 0x034C, 0x01}, /* x_output_size[15:8] */
1330 {IMX_8BIT, 0x034D, 0x98}, /* x_output_size[7:0] */
1331 {IMX_8BIT, 0x034E, 0x01}, /* y_output_size[15:8] */
1332 {IMX_8BIT, 0x034F, 0x34}, /* y_output_size[7:0] */
1333 /* binning & scaling */
1334 {IMX_8BIT, 0x0390, 0x02}, /* binning mode */
1335 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
1336 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
1337 /* timer */
1338 {IMX_8BIT, 0x3344, 0x37},
1339 {IMX_8BIT, 0x3345, 0x1F},
1340 /* timing */
1341 {IMX_8BIT, 0x3370, 0x5F},
1342 {IMX_8BIT, 0x3371, 0x17},
1343 {IMX_8BIT, 0x3372, 0x37},
1344 {IMX_8BIT, 0x3373, 0x17},
1345 {IMX_8BIT, 0x3374, 0x17},
1346 {IMX_8BIT, 0x3375, 0x0F},
1347 {IMX_8BIT, 0x3376, 0x57},
1348 {IMX_8BIT, 0x3377, 0x27},
1349 {IMX_8BIT, 0x33C8, 0x01},
1350 {IMX_8BIT, 0x33D4, 0x01},
1351 {IMX_8BIT, 0x33D5, 0x98},
1352 {IMX_8BIT, 0x33D6, 0x01},
1353 {IMX_8BIT, 0x33D7, 0x34},
1354 {IMX_TOK_TERM, 0, 0}
1355 };
1356
1357 static struct imx_reg const imx_QCIF_strong_dvs_30fps[] = {
1358 GROUPED_PARAMETER_HOLD_ENABLE,
1359 {IMX_8BIT, 0x0100, 0x00}, /* mode_select */
1360 /* shutter */
1361 {IMX_8BIT, 0x0202, 0x05}, /* coarse _integration_time[15:8] */
1362 {IMX_8BIT, 0x0203, 0x44}, /* coarse _integration_time[7:0] */
1363 /* pll */
1364 {IMX_8BIT, 0x0301, 0x05}, /* vt_pix_clk_div[7:0] */
1365 {IMX_8BIT, 0x0303, 0x01}, /* vt_sys_clk_div[7:0] */
1366 {IMX_8BIT, 0x0305, 0x06}, /* pre_pll_clk_div[7:0] */
1367 {IMX_8BIT, 0x0309, 0x05}, /* op_pix_clk_div[7:0] */
1368 {IMX_8BIT, 0x030B, 0x01}, /* op_sys_clk_div[7:0] */
1369 {IMX_8BIT, 0x030C, 0x00},
1370 {IMX_8BIT, 0x030D, 0x6D},
1371 /* image sizing */
1372 {IMX_8BIT, 0x0340, 0x05}, /* frame_length_lines[15:8] */
1373 {IMX_8BIT, 0x0341, 0x48}, /* frame_length_lines[7:0] */
1374 {IMX_8BIT, 0x0342, 0x0D}, /* line_length_pck[15:8] */
1375 {IMX_8BIT, 0x0343, 0x70}, /* line_length_pck[7:0] */
1376 {IMX_8BIT, 0x0344, 0x04}, /* x_addr_start[15:8] */
1377 {IMX_8BIT, 0x0345, 0xB8}, /* x_addr_start[7:0] */
1378 {IMX_8BIT, 0x0346, 0x03}, /* y_addr_start[15:8] */
1379 {IMX_8BIT, 0x0347, 0x70}, /* y_addr_start[7:0] */
1380 {IMX_8BIT, 0x0348, 0x08}, /* x_addr_end[15:8] */
1381 {IMX_8BIT, 0x0349, 0x17}, /* x_addr_end[7:0] */
1382 {IMX_8BIT, 0x034A, 0x06}, /* y_addr_end[15:8] */
1383 {IMX_8BIT, 0x034B, 0x2F}, /* y_addr_end[7:0] */
1384 {IMX_8BIT, 0x034C, 0x00}, /* x_output_size[15:8] */
1385 {IMX_8BIT, 0x034D, 0xD8}, /* x_output_size[7:0] */
1386 {IMX_8BIT, 0x034E, 0x00}, /* y_output_size[15:8] */
1387 {IMX_8BIT, 0x034F, 0xB0}, /* y_output_size[7:0] */
1388 /* binning & scaling */
1389 {IMX_8BIT, 0x0390, 0x02}, /* binning mode */
1390 {IMX_8BIT, 0x0401, 0x00}, /* scaling mode*/
1391 {IMX_8BIT, 0x0405, 0x10}, /* scale_m[7:0] */
1392 /* timer */
1393 {IMX_8BIT, 0x3344, 0x37},
1394 {IMX_8BIT, 0x3345, 0x1F},
1395 /* timing */
1396 {IMX_8BIT, 0x3370, 0x5F},
1397 {IMX_8BIT, 0x3371, 0x17},
1398 {IMX_8BIT, 0x3372, 0x37},
1399 {IMX_8BIT, 0x3373, 0x17},
1400 {IMX_8BIT, 0x3374, 0x17},
1401 {IMX_8BIT, 0x3375, 0x0F},
1402 {IMX_8BIT, 0x3376, 0x57},
1403 {IMX_8BIT, 0x3377, 0x27},
1404 {IMX_8BIT, 0x33C8, 0x01},
1405 {IMX_8BIT, 0x33D4, 0x00},
1406 {IMX_8BIT, 0x33D5, 0xD8},
1407 {IMX_8BIT, 0x33D6, 0x00},
1408 {IMX_8BIT, 0x33D7, 0xB0},
1409 {IMX_TOK_TERM, 0, 0}
1410 };
1411
1412 static struct imx_reg const imx175_init_settings[] = {
1413 GROUPED_PARAMETER_HOLD_ENABLE,
1414 {IMX_8BIT, 0x0103, 0x01},
1415 /* misc control */
1416 {IMX_8BIT, 0x3020, 0x10},
1417 {IMX_8BIT, 0x302D, 0x02},
1418 {IMX_8BIT, 0x302F, 0x80},
1419 {IMX_8BIT, 0x3032, 0xA3},
1420 {IMX_8BIT, 0x3033, 0x20},
1421 {IMX_8BIT, 0x3034, 0x24},
1422 {IMX_8BIT, 0x3041, 0x15},
1423 {IMX_8BIT, 0x3042, 0x87},
1424 {IMX_8BIT, 0x3050, 0x35},
1425 {IMX_8BIT, 0x3056, 0x57},
1426 {IMX_8BIT, 0x305D, 0x41},
1427 {IMX_8BIT, 0x3097, 0x69},
1428 {IMX_8BIT, 0x3109, 0x41},
1429 {IMX_8BIT, 0x3148, 0x3F},
1430 {IMX_8BIT, 0x330F, 0x07},
1431 /* csi & inck */
1432 {IMX_8BIT, 0x3364, 0x00},
1433 {IMX_8BIT, 0x3368, 0x13},
1434 {IMX_8BIT, 0x3369, 0x33},
1435 /* znr */
1436 {IMX_8BIT, 0x4100, 0x0E},
1437 {IMX_8BIT, 0x4104, 0x32},
1438 {IMX_8BIT, 0x4105, 0x32},
1439 {IMX_8BIT, 0x4108, 0x01},
1440 {IMX_8BIT, 0x4109, 0x7C},
1441 {IMX_8BIT, 0x410A, 0x00},
1442 {IMX_8BIT, 0x410B, 0x00},
1443 GROUPED_PARAMETER_HOLD_DISABLE,
1444 {IMX_TOK_TERM, 0, 0}
1445 };
1446 /* TODO settings of preview/still/video will be updated with new use case */
1447 struct imx_resolution imx175_res_preview[] = {
1448 {
1449 .desc = "CIF_strong_dvs_30fps",
1450 .regs = imx_CIF_strong_dvs_30fps,
1451 .width = 368,
1452 .height = 304,
1453 .bin_factor_x = 4,
1454 .bin_factor_y = 4,
1455 .used = 0,
1456 .fps_options = {
1457 {
1458 .fps = 30,
1459 .pixels_per_line = 0x11DB,
1460 .lines_per_frame = 0x0600,
1461 },
1462 {
1463 }
1464 },
1465 .mipi_freq = 261500,
1466
1467 },
1468 {
1469 .desc = "VGA_strong_dvs_30fps",
1470 .regs = imx_VGA_strong_dvs_30fps,
1471 .width = 820,
1472 .height = 616,
1473 .bin_factor_x = 4,
1474 .bin_factor_y = 4,
1475 .used = 0,
1476 .fps_options = {
1477 {
1478 .fps = 30,
1479 .pixels_per_line = 0x11DB,
1480 .lines_per_frame = 0x0600,
1481 },
1482 {
1483 }
1484 },
1485 .mipi_freq = 261500,
1486 },
1487 {
1488 .desc = "WIDE_PREVIEW_30fps",
1489 .regs = imx_WIDE_PREVIEW_30fps,
1490 .width = 1640,
1491 .height = 956,
1492 .bin_factor_x = 2,
1493 .bin_factor_y = 2,
1494 .used = 0,
1495 .fps_options = {
1496 {
1497 .fps = 30,
1498 .pixels_per_line = 0x1000,
1499 .lines_per_frame = 0x0D70,
1500 },
1501 {
1502 }
1503 },
1504 .mipi_freq = 174500,
1505 },
1506 {
1507 .desc = "STILL_720p_30fps",
1508 .regs = imx_STILL_720p_30fps,
1509 .width = 1568,
1510 .height = 876,
1511 .bin_factor_x = 2,
1512 .bin_factor_y = 2,
1513 .used = 0,
1514 .fps_options = {
1515 {
1516 .fps = 30,
1517 .pixels_per_line = 0x1428,
1518 .lines_per_frame = 0x0548,
1519 },
1520 {
1521 }
1522 },
1523 .mipi_freq = 261500,
1524 },
1525 {
1526 .desc = "STILL_2M_30fps",
1527 .regs = imx_STILL_2M_30fps,
1528 .width = 1640,
1529 .height = 1232,
1530 .bin_factor_x = 2,
1531 .bin_factor_y = 2,
1532 .used = 0,
1533 .fps_options = {
1534 {
1535 .fps = 30,
1536 .pixels_per_line = 0x0D66,
1537 .lines_per_frame = 0x09C4,
1538 },
1539 {
1540 }
1541 },
1542 .mipi_freq = 320000,
1543 },
1544 {
1545 .desc = "1080p_strong_dvs_30fps",
1546 .regs = imx_1080p_no_dvs_30fps,
1547 .width = 1940,
1548 .height = 1092,
1549 .bin_factor_x = 0,
1550 .bin_factor_y = 0,
1551 .used = 0,
1552 .fps_options = {
1553 {
1554 .fps = 30,
1555 .pixels_per_line = 0x0F3C,
1556 .lines_per_frame = 0x07D0,
1557 },
1558 {
1559 }
1560 },
1561 .mipi_freq = 292500,
1562 },
1563 {
1564 .desc = "STILL_3M_30fps",
1565 .regs = imx_STILL_3M_30fps,
1566 .width = 2064,
1567 .height = 1552,
1568 .bin_factor_x = 0,
1569 .bin_factor_y = 0,
1570 .used = 0,
1571 .fps_options = {
1572 {
1573 .fps = 30,
1574 .pixels_per_line = 0x0D66,
1575 .lines_per_frame = 0x09C4,
1576 },
1577 {
1578 }
1579 },
1580 .mipi_freq = 320000,
1581 },
1582 {
1583 .desc = "STILL_5M_30fps",
1584 .regs = imx_STILL_5M_30fps,
1585 .width = 2576,
1586 .height = 1936,
1587 .bin_factor_x = 0,
1588 .bin_factor_y = 0,
1589 .used = 0,
1590 .fps_options = {
1591 {
1592 .fps = 30,
1593 .pixels_per_line = 0x0D66,
1594 .lines_per_frame = 0x09C4,
1595 },
1596 {
1597 }
1598 },
1599 .mipi_freq = 320000,
1600 },
1601 {
1602 .desc = "STILL_6M_30fps",
1603 .regs = imx_STILL_6M_30fps,
1604 .width = 3280,
1605 .height = 1852,
1606 .bin_factor_x = 0,
1607 .bin_factor_y = 0,
1608 .used = 0,
1609 .fps_options = {
1610 {
1611 .fps = 30,
1612 .pixels_per_line = 0x0D66,
1613 .lines_per_frame = 0x09C4,
1614 },
1615 {
1616 }
1617 },
1618 .mipi_freq = 320000,
1619 },
1620 {
1621 .desc = "STILL_8M_30fps",
1622 .regs = imx_STILL_8M_30fps,
1623 .width = 3280,
1624 .height = 2464,
1625 .bin_factor_x = 0,
1626 .bin_factor_y = 0,
1627 .used = 0,
1628 .fps_options = {
1629 {
1630 .fps = 30,
1631 .pixels_per_line = 0x0D66,
1632 .lines_per_frame = 0x09C4,
1633 },
1634 {
1635 }
1636 },
1637 .mipi_freq = 320000,
1638 },
1639 };
1640
1641 struct imx_resolution imx175_res_still[] = {
1642 {
1643 .desc = "CIF_strong_dvs_30fps",
1644 .regs = imx_CIF_strong_dvs_30fps,
1645 .width = 368,
1646 .height = 304,
1647 .bin_factor_x = 4,
1648 .bin_factor_y = 4,
1649 .used = 0,
1650 .fps_options = {
1651 {
1652 .fps = 15,
1653 .pixels_per_line = 0x11DB,
1654 .lines_per_frame = 0x0600,
1655 },
1656 {
1657 }
1658 },
1659 .mipi_freq = 261000,
1660 },
1661 {
1662 .desc = "VGA_strong_dvs_15fps",
1663 .regs = imx_VGA_strong_dvs_15fps,
1664 .width = 820,
1665 .height = 616,
1666 .bin_factor_x = 4,
1667 .bin_factor_y = 4,
1668 .used = 0,
1669 .fps_options = {
1670 {
1671 .fps = 15,
1672 .pixels_per_line = 0x1C86,
1673 .lines_per_frame = 0x079E,
1674 },
1675 {
1676 }
1677 },
1678 .mipi_freq = 261500,
1679 },
1680 {
1681 .desc = "imx_STILL_720p_15fps",
1682 .regs = imx_STILL_720p_15fps,
1683 .width = 1568,
1684 .height = 876,
1685 .bin_factor_x = 2,
1686 .bin_factor_y = 2,
1687 .used = 0,
1688 .fps_options = {
1689 {
1690 .fps = 15,
1691 .pixels_per_line = 0x1838,
1692 .lines_per_frame = 0x08CA,
1693 },
1694 {
1695 }
1696 },
1697 .mipi_freq = 261500,
1698 },
1699 {
1700 .desc = "STILL_2M_15fps",
1701 .regs = imx_STILL_2M_15fps,
1702 .width = 1640,
1703 .height = 1232,
1704 .bin_factor_x = 2,
1705 .bin_factor_y = 2,
1706 .used = 0,
1707 .fps_options = {
1708 {
1709 .fps = 15,
1710 .pixels_per_line = 0x1646,
1711 .lines_per_frame = 0x0BB8,
1712 },
1713 {
1714 }
1715 },
1716 .mipi_freq = 320000,
1717 },
1718 {
1719 .desc = "1080p_strong_dvs_15fps",
1720 .regs = imx_1080p_no_dvs_15fps,
1721 .width = 1940,
1722 .height = 1092,
1723 .bin_factor_x = 0,
1724 .bin_factor_y = 0,
1725 .used = 0,
1726 .fps_options = {
1727 {
1728 .fps = 15,
1729 .pixels_per_line = 0x189C,
1730 .lines_per_frame = 0x09A6,
1731 },
1732 {
1733 }
1734 },
1735 .mipi_freq = 292500,
1736 },
1737 {
1738 .desc = "STILL_3M_15fps",
1739 .regs = imx_STILL_3M_15fps,
1740 .width = 2064,
1741 .height = 1552,
1742 .bin_factor_x = 0,
1743 .bin_factor_y = 0,
1744 .used = 0,
1745 .fps_options = {
1746 {
1747 .fps = 15,
1748 .pixels_per_line = 0x1646,
1749 .lines_per_frame = 0x0BB8,
1750 },
1751 {
1752 }
1753 },
1754 .mipi_freq = 320000,
1755 },
1756 {
1757 .desc = "STILL_5M_15fps",
1758 .regs = imx_STILL_5M_15fps,
1759 .width = 2576,
1760 .height = 1936,
1761 .fps = 15,
1762 .pixels_per_line = 0x1646, /* consistent with regs arrays */
1763 .lines_per_frame = 0x0BB8, /* consistent with regs arrays */
1764 .bin_factor_x = 0,
1765 .bin_factor_y = 0,
1766 .used = 0,
1767 .fps_options = {
1768 {
1769 .fps = 15,
1770 .pixels_per_line = 0x1646,
1771 .lines_per_frame = 0x0BB8,
1772 },
1773 {
1774 }
1775 },
1776 .mipi_freq = 320000,
1777 },
1778 {
1779 .desc = "STILL_6M_15fps",
1780 .regs = imx_STILL_6M_15fps,
1781 .width = 3280,
1782 .height = 1852,
1783 .bin_factor_x = 0,
1784 .bin_factor_y = 0,
1785 .used = 0,
1786 .fps_options = {
1787 {
1788 .fps = 15,
1789 .pixels_per_line = 0x1646,
1790 .lines_per_frame = 0x0BB8,
1791 },
1792 {
1793 }
1794 },
1795 .mipi_freq = 320000,
1796 },
1797 {
1798 .desc = "STILL_8M_15fps",
1799 .regs = imx_STILL_8M_15fps,
1800 .width = 3280,
1801 .height = 2464,
1802 .bin_factor_x = 0,
1803 .bin_factor_y = 0,
1804 .used = 0,
1805 .fps_options = {
1806 {
1807 .fps = 15,
1808 .pixels_per_line = 0x1646,
1809 .lines_per_frame = 0x0BB8,
1810 },
1811 {
1812 }
1813 },
1814 .mipi_freq = 320000,
1815 },
1816 };
1817
1818 struct imx_resolution imx175_res_video[] = {
1819 {
1820 .desc = "QCIF_strong_dvs_30fps",
1821 .regs = imx_QCIF_strong_dvs_30fps,
1822 .width = 216,
1823 .height = 176,
1824 .bin_factor_x = 4,
1825 .bin_factor_y = 4,
1826 .used = 0,
1827 .fps_options = {
1828 {
1829 .fps = 30,
1830 .pixels_per_line = 0x0D70,
1831 .lines_per_frame = 0x0548,
1832 },
1833 {
1834 }
1835 },
1836 .mipi_freq = 174500,
1837 },
1838 {
1839 .desc = "QVGA_strong_dvs_30fps",
1840 .regs = imx_QVGA_strong_dvs_30fps,
1841 .width = 408,
1842 .height = 308,
1843 .bin_factor_x = 4,
1844 .bin_factor_y = 4,
1845 .used = 0,
1846 .fps_options = {
1847 {
1848 .fps = 30,
1849 .pixels_per_line = 0x0D70,
1850 .lines_per_frame = 0x0548,
1851 },
1852 {
1853 }
1854 },
1855 .mipi_freq = 174500,
1856 },
1857 {
1858 .desc = "VGA_strong_dvs_30fps",
1859 .regs = imx_VGA_strong_dvs_30fps,
1860 .width = 820,
1861 .height = 616,
1862 .bin_factor_x = 4,
1863 .bin_factor_y = 4,
1864 .used = 0,
1865 .fps_options = {
1866 {
1867 .fps = 30,
1868 .pixels_per_line = 0x1194,
1869 .lines_per_frame = 0x0600,
1870 },
1871 {
1872 }
1873 },
1874 .mipi_freq = 261500,
1875 },
1876 {
1877 .desc = "720p_strong_dvs_30fps",
1878 .regs = imx_720p_strong_dvs_30fps,
1879 .width = 1552,
1880 .height = 880,
1881 .bin_factor_x = 0,
1882 .bin_factor_y = 0,
1883 .used = 0,
1884 .fps_options = {
1885 {
1886 .fps = 30,
1887 .pixels_per_line = 0x139C,
1888 .lines_per_frame = 0x0600,
1889 },
1890 {
1891 .fps = 60,
1892 .pixels_per_line = 0xD70,
1893 .lines_per_frame = 0x444,
1894 },
1895 {
1896 }
1897 },
1898 .mipi_freq = 292500,
1899 },
1900 {
1901 .desc = "480p_strong_dvs_30fps",
1902 .regs = imx_480p_strong_dvs_30fps,
1903 .width = 880,
1904 .height = 592,
1905 .bin_factor_x = 2,
1906 .bin_factor_y = 2,
1907 .used = 0,
1908 .fps_options = {
1909 {
1910 .fps = 30,
1911 .pixels_per_line = 0x139C,
1912 .lines_per_frame = 0x0600,
1913 },
1914 {
1915 }
1916 },
1917 .mipi_freq = 292500,
1918 },
1919 {
1920 .desc = "WVGA_strong_dvs_30fps",
1921 .regs = imx_WVGA_strong_dvs_30fps,
1922 .width = 1640,
1923 .height = 1024,
1924 .bin_factor_x = 2,
1925 .bin_factor_y = 2,
1926 .used = 0,
1927 .fps_options = {
1928 {
1929 .fps = 30,
1930 .pixels_per_line = 0x139C,
1931 .lines_per_frame = 0x0600,
1932 },
1933 {
1934 }
1935 },
1936 .mipi_freq = 292500,
1937 },
1938 {
1939 .desc = "1080p_strong_dvs_30fps",
1940 .regs = imx_1080p_strong_dvs_30fps,
1941 .width = 2320,
1942 .height = 1312,
1943 .bin_factor_x = 0,
1944 .bin_factor_y = 0,
1945 .used = 0,
1946 .fps_options = {
1947 {
1948 .fps = 30,
1949 .pixels_per_line = 0x11C6,
1950 .lines_per_frame = 0x06A4,
1951 },
1952 {
1953 }
1954 },
1955 .mipi_freq = 292500,
1956 },
1957 };
1958
1959 #endif