GNU Linux-libre 4.14.290-gnu1
[releases.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