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