GNU Linux-libre 4.14.266-gnu1
[releases.git] / drivers / staging / media / atomisp / i2c / imx / imx134.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __IMX134_H__
3 #define __IMX134_H__
4
5 /********************** imx134 setting - version 1 *********************/
6 static struct imx_reg const imx134_init_settings[] = {
7         GROUPED_PARAMETER_HOLD_ENABLE,
8         /* Basic settings */
9         { IMX_8BIT, 0x0105, 0x01 },
10         { IMX_8BIT, 0x0220, 0x01 },
11         { IMX_8BIT, 0x3302, 0x11 },
12         { IMX_8BIT, 0x3833, 0x20 },
13         { IMX_8BIT, 0x3893, 0x00 },
14         { IMX_8BIT, 0x3906, 0x08 },
15         { IMX_8BIT, 0x3907, 0x01 },
16         { IMX_8BIT, 0x391B, 0x01 },
17         { IMX_8BIT, 0x3C09, 0x01 },
18         { IMX_8BIT, 0x600A, 0x00 },
19
20         /* Analog settings */
21         { IMX_8BIT, 0x3008, 0xB0 },
22         { IMX_8BIT, 0x320A, 0x01 },
23         { IMX_8BIT, 0x320D, 0x10 },
24         { IMX_8BIT, 0x3216, 0x2E },
25         { IMX_8BIT, 0x322C, 0x02 },
26         { IMX_8BIT, 0x3409, 0x0C },
27         { IMX_8BIT, 0x340C, 0x2D },
28         { IMX_8BIT, 0x3411, 0x39 },
29         { IMX_8BIT, 0x3414, 0x1E },
30         { IMX_8BIT, 0x3427, 0x04 },
31         { IMX_8BIT, 0x3480, 0x1E },
32         { IMX_8BIT, 0x3484, 0x1E },
33         { IMX_8BIT, 0x3488, 0x1E },
34         { IMX_8BIT, 0x348C, 0x1E },
35         { IMX_8BIT, 0x3490, 0x1E },
36         { IMX_8BIT, 0x3494, 0x1E },
37         { IMX_8BIT, 0x3511, 0x8F },
38         { IMX_8BIT, 0x3617, 0x2D },
39
40         GROUPED_PARAMETER_HOLD_DISABLE,
41         { IMX_TOK_TERM, 0, 0 }
42 };
43
44 /* 4 lane 3280x2464 8M 30fps, vendor provide */
45 static struct imx_reg const imx134_8M_30fps[] = {
46         GROUPED_PARAMETER_HOLD_ENABLE,
47         /* mode set clear */
48         { IMX_8BIT, 0x3A43, 0x01 },
49         /* clock setting */
50         { IMX_8BIT, 0x011E, 0x13 },
51         { IMX_8BIT, 0x011F, 0x33 },
52         { IMX_8BIT, 0x0301, 0x05 },
53         { IMX_8BIT, 0x0303, 0x01 },
54         { IMX_8BIT, 0x0305, 0x0C },
55         { IMX_8BIT, 0x0309, 0x05 },
56         { IMX_8BIT, 0x030B, 0x01 },
57         { IMX_8BIT, 0x030C, 0x01 },
58         { IMX_8BIT, 0x030D, 0xA9 },
59         { IMX_8BIT, 0x030E, 0x01 },
60         { IMX_8BIT, 0x3A06, 0x11 },
61
62         /* Mode setting */
63         { IMX_8BIT, 0x0108, 0x03 },
64         { IMX_8BIT, 0x0112, 0x0A },
65         { IMX_8BIT, 0x0113, 0x0A },
66         { IMX_8BIT, 0x0381, 0x01 },
67         { IMX_8BIT, 0x0383, 0x01 },
68         { IMX_8BIT, 0x0385, 0x01 },
69         { IMX_8BIT, 0x0387, 0x01 },
70         { IMX_8BIT, 0x0390, 0x00 },
71         { IMX_8BIT, 0x0391, 0x11 },
72         { IMX_8BIT, 0x0392, 0x00 },
73         { IMX_8BIT, 0x0401, 0x00 },
74         { IMX_8BIT, 0x0404, 0x00 },
75         { IMX_8BIT, 0x0405, 0x10 }, /* down scaling 16/16 = 1 */
76         { IMX_8BIT, 0x4082, 0x01 },
77         { IMX_8BIT, 0x4083, 0x01 },
78         { IMX_8BIT, 0x7006, 0x04 },
79
80         /* optionnal Function setting */
81         { IMX_8BIT, 0x0700, 0x00 },
82         { IMX_8BIT, 0x3A63, 0x00 },
83         { IMX_8BIT, 0x4100, 0xF8 },
84         { IMX_8BIT, 0x4203, 0xFF },
85         { IMX_8BIT, 0x4344, 0x00 },
86         { IMX_8BIT, 0x441C, 0x01 },
87
88         /* Size setting */
89         { IMX_8BIT, 0x0344, 0x00 },      /*     x_addr_start[15:8]:0    */
90         { IMX_8BIT, 0x0345, 0x00 },      /*     x_addr_start[7:0]       */
91         { IMX_8BIT, 0x0346, 0x00 },      /*     y_addr_start[15:8]:0    */
92         { IMX_8BIT, 0x0347, 0x00 },      /*     y_addr_start[7:0]       */
93         { IMX_8BIT, 0x0348, 0x0C },      /*     x_addr_end[15:8]:3279   */
94         { IMX_8BIT, 0x0349, 0xCF },      /*     x_addr_end[7:0]         */
95         { IMX_8BIT, 0x034A, 0x09 },      /*     y_addr_end[15:8]:2463   */
96         { IMX_8BIT, 0x034B, 0x9F },      /*     y_addr_end[7:0]         */
97         { IMX_8BIT, 0x034C, 0x0C },      /*     x_output_size[15:8]: 3280*/
98         { IMX_8BIT, 0x034D, 0xD0 },      /*     x_output_size[7:0]      */
99         { IMX_8BIT, 0x034E, 0x09 },      /*     y_output_size[15:8]:2464 */
100         { IMX_8BIT, 0x034F, 0xA0 },      /*     y_output_size[7:0]      */
101         { IMX_8BIT, 0x0350, 0x00 },
102         { IMX_8BIT, 0x0351, 0x00 },
103         { IMX_8BIT, 0x0352, 0x00 },
104         { IMX_8BIT, 0x0353, 0x00 },
105         { IMX_8BIT, 0x0354, 0x0C },
106         { IMX_8BIT, 0x0355, 0xD0 },
107         { IMX_8BIT, 0x0356, 0x09 },
108         { IMX_8BIT, 0x0357, 0xA0 },
109         { IMX_8BIT, 0x301D, 0x30 },
110         { IMX_8BIT, 0x3310, 0x0C },
111         { IMX_8BIT, 0x3311, 0xD0 },
112         { IMX_8BIT, 0x3312, 0x09 },
113         { IMX_8BIT, 0x3313, 0xA0 },
114         { IMX_8BIT, 0x331C, 0x01 },
115         { IMX_8BIT, 0x331D, 0xAE },
116         { IMX_8BIT, 0x4084, 0x00 },
117         { IMX_8BIT, 0x4085, 0x00 },
118         { IMX_8BIT, 0x4086, 0x00 },
119         { IMX_8BIT, 0x4087, 0x00 },
120         { IMX_8BIT, 0x4400, 0x00 },
121
122         /* Global timing setting */
123         { IMX_8BIT, 0x0830, 0x77 },
124         { IMX_8BIT, 0x0831, 0x2F },
125         { IMX_8BIT, 0x0832, 0x4F },
126         { IMX_8BIT, 0x0833, 0x37 },
127         { IMX_8BIT, 0x0834, 0x2F },
128         { IMX_8BIT, 0x0835, 0x37 },
129         { IMX_8BIT, 0x0836, 0xAF },
130         { IMX_8BIT, 0x0837, 0x37 },
131         { IMX_8BIT, 0x0839, 0x1F },
132         { IMX_8BIT, 0x083A, 0x17 },
133         { IMX_8BIT, 0x083B, 0x02 },
134
135         /* Integration time setting */
136         { IMX_8BIT, 0x0202, 0x09 },
137         { IMX_8BIT, 0x0203, 0xD2 },
138
139         /* HDR setting */
140         { IMX_8BIT, 0x0230, 0x00 },
141         { IMX_8BIT, 0x0231, 0x00 },
142         { IMX_8BIT, 0x0233, 0x00 },
143         { IMX_8BIT, 0x0234, 0x00 },
144         { IMX_8BIT, 0x0235, 0x40 },
145         { IMX_8BIT, 0x0238, 0x00 },
146         { IMX_8BIT, 0x0239, 0x04 },
147         { IMX_8BIT, 0x023B, 0x00 },
148         { IMX_8BIT, 0x023C, 0x01 },
149         { IMX_8BIT, 0x33B0, 0x04 },
150         { IMX_8BIT, 0x33B1, 0x00 },
151         { IMX_8BIT, 0x33B3, 0x00 },
152         { IMX_8BIT, 0x33B4, 0x01 },
153         { IMX_8BIT, 0x3800, 0x00 },
154         { IMX_TOK_TERM, 0, 0 }
155 };
156
157 /* 4 lane, 1/2 binning 30fps 1640x1232, vendor provide */
158 static struct imx_reg const imx134_1640_1232_30fps[] = {
159         GROUPED_PARAMETER_HOLD_ENABLE,
160         /* mode set clear */
161         { IMX_8BIT, 0x3A43, 0x01 },
162         /* Clock Setting */
163         { IMX_8BIT, 0x011E, 0x13 },
164         { IMX_8BIT, 0x011F, 0x33 },
165         { IMX_8BIT, 0x0301, 0x05 },
166         { IMX_8BIT, 0x0303, 0x01 },
167         { IMX_8BIT, 0x0305, 0x0C },
168         { IMX_8BIT, 0x0309, 0x05 },
169         { IMX_8BIT, 0x030B, 0x01 },
170         { IMX_8BIT, 0x030C, 0x01 },
171         { IMX_8BIT, 0x030D, 0xA9 },
172         { IMX_8BIT, 0x030E, 0x01 },
173         { IMX_8BIT, 0x3A06, 0x11 },
174
175         /* Mode setting */
176         { IMX_8BIT, 0x0108, 0x03 },
177         { IMX_8BIT, 0x0112, 0x0A },
178         { IMX_8BIT, 0x0113, 0x0A },
179         { IMX_8BIT, 0x0381, 0x01 },
180         { IMX_8BIT, 0x0383, 0x01 },
181         { IMX_8BIT, 0x0385, 0x01 },
182         { IMX_8BIT, 0x0387, 0x01 },
183         { IMX_8BIT, 0x0390, 0x01 },     /* binning */
184         { IMX_8BIT, 0x0391, 0x22 },     /* 2x2 binning */
185         { IMX_8BIT, 0x0392, 0x00 },
186         { IMX_8BIT, 0x0401, 0x00 },     /* no resize */
187         { IMX_8BIT, 0x0404, 0x00 },
188         { IMX_8BIT, 0x0405, 0x10 },
189         { IMX_8BIT, 0x4082, 0x01 },
190         { IMX_8BIT, 0x4083, 0x01 },
191         { IMX_8BIT, 0x7006, 0x04 },
192
193         /* Optionnal Function setting */
194         { IMX_8BIT, 0x0700, 0x00 },
195         { IMX_8BIT, 0x3A63, 0x00 },
196         { IMX_8BIT, 0x4100, 0xF8 },
197         { IMX_8BIT, 0x4203, 0xFF },
198         { IMX_8BIT, 0x4344, 0x00 },
199         { IMX_8BIT, 0x441C, 0x01 },
200
201         /* Size setting */
202         { IMX_8BIT, 0x0344, 0x00 },      /* x_addr_start[15:8]:0 */
203         { IMX_8BIT, 0x0345, 0x00 },      /* x_addr_start[7:0] */
204         { IMX_8BIT, 0x0346, 0x00 },      /* y_addr_start[15:8]:0 */
205         { IMX_8BIT, 0x0347, 0x00 },      /* y_addr_start[7:0] */
206         { IMX_8BIT, 0x0348, 0x0C },      /* x_addr_end[15:8]:3279 */
207         { IMX_8BIT, 0x0349, 0xCF },      /* x_addr_end[7:0] */
208         { IMX_8BIT, 0x034A, 0x09 },      /* y_addr_end[15:8]:2463 */
209         { IMX_8BIT, 0x034B, 0x9F },      /* y_addr_end[7:0] */
210         { IMX_8BIT, 0x034C, 0x06 },      /* x_output_size[15:8]:1640 */
211         { IMX_8BIT, 0x034D, 0x68 },      /* x_output_size[7:0] */
212         { IMX_8BIT, 0x034E, 0x04 },      /* y_output_size[15:8]:1232 */
213         { IMX_8BIT, 0x034F, 0xD0 },      /* y_output_size[7:0] */
214         { IMX_8BIT, 0x0350, 0x00 },
215         { IMX_8BIT, 0x0351, 0x00 },
216         { IMX_8BIT, 0x0352, 0x00 },
217         { IMX_8BIT, 0x0353, 0x00 },
218         { IMX_8BIT, 0x0354, 0x06 },
219         { IMX_8BIT, 0x0355, 0x68 },
220         { IMX_8BIT, 0x0356, 0x04 },
221         { IMX_8BIT, 0x0357, 0xD0 },
222
223         { IMX_8BIT, 0x301D, 0x30 },
224
225         { IMX_8BIT, 0x3310, 0x06 },
226         { IMX_8BIT, 0x3311, 0x68 },
227         { IMX_8BIT, 0x3312, 0x04 },
228         { IMX_8BIT, 0x3313, 0xD0 },
229
230         { IMX_8BIT, 0x331C, 0x04 },
231         { IMX_8BIT, 0x331D, 0x06 },
232         { IMX_8BIT, 0x4084, 0x00 },
233         { IMX_8BIT, 0x4085, 0x00 },
234         { IMX_8BIT, 0x4086, 0x00 },
235         { IMX_8BIT, 0x4087, 0x00 },
236         { IMX_8BIT, 0x4400, 0x00 },
237
238         /* Global Timing Setting */
239         { IMX_8BIT, 0x0830, 0x77 },
240         { IMX_8BIT, 0x0831, 0x2F },
241         { IMX_8BIT, 0x0832, 0x4F },
242         { IMX_8BIT, 0x0833, 0x37 },
243         { IMX_8BIT, 0x0834, 0x2F },
244         { IMX_8BIT, 0x0835, 0x37 },
245         { IMX_8BIT, 0x0836, 0xAF },
246         { IMX_8BIT, 0x0837, 0x37 },
247         { IMX_8BIT, 0x0839, 0x1F },
248         { IMX_8BIT, 0x083A, 0x17 },
249         { IMX_8BIT, 0x083B, 0x02 },
250
251         /* Integration Time Setting */
252         { IMX_8BIT, 0x0202, 0x09 },
253         { IMX_8BIT, 0x0203, 0xD2 },
254
255         /* HDR Setting */
256         { IMX_8BIT, 0x0230, 0x00 },
257         { IMX_8BIT, 0x0231, 0x00 },
258         { IMX_8BIT, 0x0233, 0x00 },
259         { IMX_8BIT, 0x0234, 0x00 },
260         { IMX_8BIT, 0x0235, 0x40 },
261         { IMX_8BIT, 0x0238, 0x00 },
262         { IMX_8BIT, 0x0239, 0x04 },
263         { IMX_8BIT, 0x023B, 0x00 },
264         { IMX_8BIT, 0x023C, 0x01 },
265         { IMX_8BIT, 0x33B0, 0x04 },
266         { IMX_8BIT, 0x33B1, 0x00 },
267         { IMX_8BIT, 0x33B3, 0x00 },
268         { IMX_8BIT, 0x33B4, 0x01 },
269         { IMX_8BIT, 0x3800, 0x00 },
270         { IMX_TOK_TERM, 0, 0 }
271 };
272
273 /* 4 lane, 1/4 binning 30fps 820x616, vendor provide */
274 static struct imx_reg const imx134_820_616_30fps[] = {
275         GROUPED_PARAMETER_HOLD_ENABLE,
276         /* mode set clear */
277         { IMX_8BIT, 0x3A43, 0x01 },
278         /* Clock Setting */
279         { IMX_8BIT, 0x011E, 0x13 },
280         { IMX_8BIT, 0x011F, 0x33 },
281         { IMX_8BIT, 0x0301, 0x05 },
282         { IMX_8BIT, 0x0303, 0x01 },
283         { IMX_8BIT, 0x0305, 0x0C },
284         { IMX_8BIT, 0x0309, 0x05 },
285         { IMX_8BIT, 0x030B, 0x01 },
286         { IMX_8BIT, 0x030C, 0x01 },
287         { IMX_8BIT, 0x030D, 0xA9 },
288         { IMX_8BIT, 0x030E, 0x01 },
289         { IMX_8BIT, 0x3A06, 0x11 },
290
291         /* Mode setting */
292         { IMX_8BIT, 0x0108, 0x03 },
293         { IMX_8BIT, 0x0112, 0x0A },
294         { IMX_8BIT, 0x0113, 0x0A },
295         { IMX_8BIT, 0x0381, 0x01 },
296         { IMX_8BIT, 0x0383, 0x01 },
297         { IMX_8BIT, 0x0385, 0x01 },
298         { IMX_8BIT, 0x0387, 0x01 },
299         { IMX_8BIT, 0x0390, 0x01 },     /* binning */
300         { IMX_8BIT, 0x0391, 0x44 },     /* 4x4 binning */
301         { IMX_8BIT, 0x0392, 0x00 },
302         { IMX_8BIT, 0x0401, 0x00 },     /* no resize */
303         { IMX_8BIT, 0x0404, 0x00 },
304         { IMX_8BIT, 0x0405, 0x10 },
305         { IMX_8BIT, 0x4082, 0x01 },
306         { IMX_8BIT, 0x4083, 0x01 },
307         { IMX_8BIT, 0x7006, 0x04 },
308
309         /* Optionnal Function setting */
310         { IMX_8BIT, 0x0700, 0x00 },
311         { IMX_8BIT, 0x3A63, 0x00 },
312         { IMX_8BIT, 0x4100, 0xF8 },
313         { IMX_8BIT, 0x4203, 0xFF },
314         { IMX_8BIT, 0x4344, 0x00 },
315         { IMX_8BIT, 0x441C, 0x01 },
316
317         /* Size setting */
318         { IMX_8BIT, 0x0344, 0x00 },      /* x_addr_start[15:8]:0 */
319         { IMX_8BIT, 0x0345, 0x00 },      /* x_addr_start[7:0] */
320         { IMX_8BIT, 0x0346, 0x00 },      /* y_addr_start[15:8]:0 */
321         { IMX_8BIT, 0x0347, 0x00 },      /* y_addr_start[7:0] */
322         { IMX_8BIT, 0x0348, 0x0C },      /* x_addr_end[15:8]:3279 */
323         { IMX_8BIT, 0x0349, 0xCF },      /* x_addr_end[7:0] */
324         { IMX_8BIT, 0x034A, 0x09 },      /* y_addr_end[15:8]:2463 */
325         { IMX_8BIT, 0x034B, 0x9F },      /* y_addr_end[7:0] */
326         { IMX_8BIT, 0x034C, 0x03 },      /* x_output_size[15:8]:820 */
327         { IMX_8BIT, 0x034D, 0x34 },      /* x_output_size[7:0] */
328         { IMX_8BIT, 0x034E, 0x02 },      /* y_output_size[15:8]:616 */
329         { IMX_8BIT, 0x034F, 0x68 },      /* y_output_size[7:0] */
330         { IMX_8BIT, 0x0350, 0x00 },
331         { IMX_8BIT, 0x0351, 0x00 },
332         { IMX_8BIT, 0x0352, 0x00 },
333         { IMX_8BIT, 0x0353, 0x00 },
334         { IMX_8BIT, 0x0354, 0x03 },
335         { IMX_8BIT, 0x0355, 0x34 },
336         { IMX_8BIT, 0x0356, 0x02 },
337         { IMX_8BIT, 0x0357, 0x68 },
338         { IMX_8BIT, 0x301D, 0x30 },
339         { IMX_8BIT, 0x3310, 0x03 },
340         { IMX_8BIT, 0x3311, 0x34 },
341         { IMX_8BIT, 0x3312, 0x02 },
342         { IMX_8BIT, 0x3313, 0x68 },
343         { IMX_8BIT, 0x331C, 0x02 },
344         { IMX_8BIT, 0x331D, 0xD0 },
345         { IMX_8BIT, 0x4084, 0x00 },
346         { IMX_8BIT, 0x4085, 0x00 },
347         { IMX_8BIT, 0x4086, 0x00 },
348         { IMX_8BIT, 0x4087, 0x00 },
349         { IMX_8BIT, 0x4400, 0x00 },
350
351         /* Global Timing Setting */
352         { IMX_8BIT, 0x0830, 0x77 },
353         { IMX_8BIT, 0x0831, 0x2F },
354         { IMX_8BIT, 0x0832, 0x4F },
355         { IMX_8BIT, 0x0833, 0x37 },
356         { IMX_8BIT, 0x0834, 0x2F },
357         { IMX_8BIT, 0x0835, 0x37 },
358         { IMX_8BIT, 0x0836, 0xAF },
359         { IMX_8BIT, 0x0837, 0x37 },
360         { IMX_8BIT, 0x0839, 0x1F },
361         { IMX_8BIT, 0x083A, 0x17 },
362         { IMX_8BIT, 0x083B, 0x02 },
363
364         /* Integration Time Setting */
365         { IMX_8BIT, 0x0202, 0x09 },
366         { IMX_8BIT, 0x0203, 0xD2 },
367
368         /* HDR Setting */
369         { IMX_8BIT, 0x0230, 0x00 },
370         { IMX_8BIT, 0x0231, 0x00 },
371         { IMX_8BIT, 0x0233, 0x00 },
372         { IMX_8BIT, 0x0234, 0x00 },
373         { IMX_8BIT, 0x0235, 0x40 },
374         { IMX_8BIT, 0x0238, 0x00 },
375         { IMX_8BIT, 0x0239, 0x04 },
376         { IMX_8BIT, 0x023B, 0x00 },
377         { IMX_8BIT, 0x023C, 0x01 },
378         { IMX_8BIT, 0x33B0, 0x04 },
379         { IMX_8BIT, 0x33B1, 0x00 },
380         { IMX_8BIT, 0x33B3, 0x00 },
381         { IMX_8BIT, 0x33B4, 0x01 },
382         { IMX_8BIT, 0x3800, 0x00 },
383         { IMX_TOK_TERM, 0, 0 }
384 };
385
386 /* 4 lane, 1/4 binning 30fps 820x552 */
387 static struct imx_reg const imx134_820_552_30fps[] = {
388         GROUPED_PARAMETER_HOLD_ENABLE,
389         /* mode set clear */
390         { IMX_8BIT, 0x3A43, 0x01 },
391         /* Clock Setting */
392         { IMX_8BIT, 0x011E, 0x13 },
393         { IMX_8BIT, 0x011F, 0x33 },
394         { IMX_8BIT, 0x0301, 0x05 },
395         { IMX_8BIT, 0x0303, 0x01 },
396         { IMX_8BIT, 0x0305, 0x0C },
397         { IMX_8BIT, 0x0309, 0x05 },
398         { IMX_8BIT, 0x030B, 0x01 },
399         { IMX_8BIT, 0x030C, 0x01 },
400         { IMX_8BIT, 0x030D, 0xA9 },
401         { IMX_8BIT, 0x030E, 0x01 },
402         { IMX_8BIT, 0x3A06, 0x11 },
403
404         /* Mode setting */
405         { IMX_8BIT, 0x0108, 0x03 },
406         { IMX_8BIT, 0x0112, 0x0A },
407         { IMX_8BIT, 0x0113, 0x0A },
408         { IMX_8BIT, 0x0381, 0x01 },
409         { IMX_8BIT, 0x0383, 0x01 },
410         { IMX_8BIT, 0x0385, 0x01 },
411         { IMX_8BIT, 0x0387, 0x01 },
412         { IMX_8BIT, 0x0390, 0x01 },     /* binning */
413         { IMX_8BIT, 0x0391, 0x44 },     /* 4x4 binning */
414         { IMX_8BIT, 0x0392, 0x00 },
415         { IMX_8BIT, 0x0401, 0x00 },     /* no resize */
416         { IMX_8BIT, 0x0404, 0x00 },
417         { IMX_8BIT, 0x0405, 0x10 },
418         { IMX_8BIT, 0x4082, 0x01 },
419         { IMX_8BIT, 0x4083, 0x01 },
420         { IMX_8BIT, 0x7006, 0x04 },
421
422         /* Optionnal Function setting */
423         { IMX_8BIT, 0x0700, 0x00 },
424         { IMX_8BIT, 0x3A63, 0x00 },
425         { IMX_8BIT, 0x4100, 0xF8 },
426         { IMX_8BIT, 0x4203, 0xFF },
427         { IMX_8BIT, 0x4344, 0x00 },
428         { IMX_8BIT, 0x441C, 0x01 },
429
430         /* Size setting */
431         { IMX_8BIT, 0x0344, 0x00 },      /* x_addr_start[15:8]:0 */
432         { IMX_8BIT, 0x0345, 0x00 },      /* x_addr_start[7:0] */
433         { IMX_8BIT, 0x0346, 0x00 },      /* y_addr_start[15:8]:128 */
434         { IMX_8BIT, 0x0347, 0x80 },      /* y_addr_start[7:0] */
435         { IMX_8BIT, 0x0348, 0x0C },      /* x_addr_end[15:8]:3280-1 */
436         { IMX_8BIT, 0x0349, 0xCF },      /* x_addr_end[7:0] */
437         { IMX_8BIT, 0x034A, 0x09 },      /* y_addr_end[15:8]:2208+128-1 */
438         { IMX_8BIT, 0x034B, 0x1F },      /* y_addr_end[7:0] */
439         { IMX_8BIT, 0x034C, 0x03 },      /* x_output_size[15:8]: */
440         { IMX_8BIT, 0x034D, 0x34 },      /* x_output_size[7:0] */
441         { IMX_8BIT, 0x034E, 0x02 },      /* y_output_size[15:8]:616 */
442         { IMX_8BIT, 0x034F, 0x28 },      /* y_output_size[7:0] */
443         { IMX_8BIT, 0x0350, 0x00 },
444         { IMX_8BIT, 0x0351, 0x00 },
445         { IMX_8BIT, 0x0352, 0x00 },
446         { IMX_8BIT, 0x0353, 0x00 },
447         { IMX_8BIT, 0x0354, 0x03 },
448         { IMX_8BIT, 0x0355, 0x34 },
449         { IMX_8BIT, 0x0356, 0x02 },
450         { IMX_8BIT, 0x0357, 0x28 },
451         { IMX_8BIT, 0x301D, 0x30 },
452         { IMX_8BIT, 0x3310, 0x03 },
453         { IMX_8BIT, 0x3311, 0x34 },
454         { IMX_8BIT, 0x3312, 0x02 },
455         { IMX_8BIT, 0x3313, 0x28 },
456         { IMX_8BIT, 0x331C, 0x02 },
457         { IMX_8BIT, 0x331D, 0xD0 },
458         { IMX_8BIT, 0x4084, 0x00 },
459         { IMX_8BIT, 0x4085, 0x00 },
460         { IMX_8BIT, 0x4086, 0x00 },
461         { IMX_8BIT, 0x4087, 0x00 },
462         { IMX_8BIT, 0x4400, 0x00 },
463
464         /* Global Timing Setting */
465         { IMX_8BIT, 0x0830, 0x77 },
466         { IMX_8BIT, 0x0831, 0x2F },
467         { IMX_8BIT, 0x0832, 0x4F },
468         { IMX_8BIT, 0x0833, 0x37 },
469         { IMX_8BIT, 0x0834, 0x2F },
470         { IMX_8BIT, 0x0835, 0x37 },
471         { IMX_8BIT, 0x0836, 0xAF },
472         { IMX_8BIT, 0x0837, 0x37 },
473         { IMX_8BIT, 0x0839, 0x1F },
474         { IMX_8BIT, 0x083A, 0x17 },
475         { IMX_8BIT, 0x083B, 0x02 },
476
477         /* Integration Time Setting */
478         { IMX_8BIT, 0x0202, 0x09 },
479         { IMX_8BIT, 0x0203, 0xD2 },
480
481         /* HDR Setting */
482         { IMX_8BIT, 0x0230, 0x00 },
483         { IMX_8BIT, 0x0231, 0x00 },
484         { IMX_8BIT, 0x0233, 0x00 },
485         { IMX_8BIT, 0x0234, 0x00 },
486         { IMX_8BIT, 0x0235, 0x40 },
487         { IMX_8BIT, 0x0238, 0x00 },
488         { IMX_8BIT, 0x0239, 0x04 },
489         { IMX_8BIT, 0x023B, 0x00 },
490         { IMX_8BIT, 0x023C, 0x01 },
491         { IMX_8BIT, 0x33B0, 0x04 },
492         { IMX_8BIT, 0x33B1, 0x00 },
493         { IMX_8BIT, 0x33B3, 0x00 },
494         { IMX_8BIT, 0x33B4, 0x01 },
495         { IMX_8BIT, 0x3800, 0x00 },
496         { IMX_TOK_TERM, 0, 0 }
497 };
498
499 /* 4 lane, 1/4 binning 30fps 720x592 */
500 static struct imx_reg const imx134_720_592_30fps[] = {
501         GROUPED_PARAMETER_HOLD_ENABLE,
502         /* mode set clear */
503         { IMX_8BIT, 0x3A43, 0x01 },
504         /* Clock Setting */
505         { IMX_8BIT, 0x011E, 0x13 },
506         { IMX_8BIT, 0x011F, 0x33 },
507         { IMX_8BIT, 0x0301, 0x05 },
508         { IMX_8BIT, 0x0303, 0x01 },
509         { IMX_8BIT, 0x0305, 0x0C },
510         { IMX_8BIT, 0x0309, 0x05 },
511         { IMX_8BIT, 0x030B, 0x01 },
512         { IMX_8BIT, 0x030C, 0x01 },
513         { IMX_8BIT, 0x030D, 0xA9 },
514         { IMX_8BIT, 0x030E, 0x01 },
515         { IMX_8BIT, 0x3A06, 0x11 },
516
517         /* Mode setting */
518         { IMX_8BIT, 0x0108, 0x03 },
519         { IMX_8BIT, 0x0112, 0x0A },
520         { IMX_8BIT, 0x0113, 0x0A },
521         { IMX_8BIT, 0x0381, 0x01 },
522         { IMX_8BIT, 0x0383, 0x01 },
523         { IMX_8BIT, 0x0385, 0x01 },
524         { IMX_8BIT, 0x0387, 0x01 },
525         { IMX_8BIT, 0x0390, 0x01 },     /* binning */
526         { IMX_8BIT, 0x0391, 0x44 },     /* 4x4 binning */
527         { IMX_8BIT, 0x0392, 0x00 },
528         { IMX_8BIT, 0x0401, 0x00 },     /* no resize */
529         { IMX_8BIT, 0x0404, 0x00 },
530         { IMX_8BIT, 0x0405, 0x10 },
531         { IMX_8BIT, 0x4082, 0x01 },
532         { IMX_8BIT, 0x4083, 0x01 },
533         { IMX_8BIT, 0x7006, 0x04 },
534
535         /* Optionnal Function setting */
536         { IMX_8BIT, 0x0700, 0x00 },
537         { IMX_8BIT, 0x3A63, 0x00 },
538         { IMX_8BIT, 0x4100, 0xF8 },
539         { IMX_8BIT, 0x4203, 0xFF },
540         { IMX_8BIT, 0x4344, 0x00 },
541         { IMX_8BIT, 0x441C, 0x01 },
542
543         /* Size setting */
544         { IMX_8BIT, 0x0344, 0x00 },      /* x_addr_start[15:8]:200 */
545         { IMX_8BIT, 0x0345, 0xC8 },      /* x_addr_start[7:0] */
546         { IMX_8BIT, 0x0346, 0x00 },      /* y_addr_start[15:8]:40 */
547         { IMX_8BIT, 0x0347, 0x28 },      /* y_addr_start[7:0] */
548         { IMX_8BIT, 0x0348, 0x0C },      /* x_addr_end[15:8]:2880+200-1 */
549         { IMX_8BIT, 0x0349, 0x07 },      /* x_addr_end[7:0] */
550         { IMX_8BIT, 0x034A, 0x09 },      /* y_addr_end[15:8]:2368+40-1 */
551         { IMX_8BIT, 0x034B, 0x67 },      /* y_addr_end[7:0] */
552         { IMX_8BIT, 0x034C, 0x02 },      /* x_output_size[15:8]: */
553         { IMX_8BIT, 0x034D, 0xD0 },      /* x_output_size[7:0] */
554         { IMX_8BIT, 0x034E, 0x02 },      /* y_output_size[15:8]:616 */
555         { IMX_8BIT, 0x034F, 0x50 },      /* y_output_size[7:0] */
556         { IMX_8BIT, 0x0350, 0x00 },
557         { IMX_8BIT, 0x0351, 0x00 },
558         { IMX_8BIT, 0x0352, 0x00 },
559         { IMX_8BIT, 0x0353, 0x00 },
560         { IMX_8BIT, 0x0354, 0x02 },
561         { IMX_8BIT, 0x0355, 0xD0 },
562         { IMX_8BIT, 0x0356, 0x02 },
563         { IMX_8BIT, 0x0357, 0x50 },
564         { IMX_8BIT, 0x301D, 0x30 },
565         { IMX_8BIT, 0x3310, 0x02 },
566         { IMX_8BIT, 0x3311, 0xD0 },
567         { IMX_8BIT, 0x3312, 0x02 },
568         { IMX_8BIT, 0x3313, 0x50 },
569         { IMX_8BIT, 0x331C, 0x02 },
570         { IMX_8BIT, 0x331D, 0xD0 },
571         { IMX_8BIT, 0x4084, 0x00 },
572         { IMX_8BIT, 0x4085, 0x00 },
573         { IMX_8BIT, 0x4086, 0x00 },
574         { IMX_8BIT, 0x4087, 0x00 },
575         { IMX_8BIT, 0x4400, 0x00 },
576
577         /* Global Timing Setting */
578         { IMX_8BIT, 0x0830, 0x77 },
579         { IMX_8BIT, 0x0831, 0x2F },
580         { IMX_8BIT, 0x0832, 0x4F },
581         { IMX_8BIT, 0x0833, 0x37 },
582         { IMX_8BIT, 0x0834, 0x2F },
583         { IMX_8BIT, 0x0835, 0x37 },
584         { IMX_8BIT, 0x0836, 0xAF },
585         { IMX_8BIT, 0x0837, 0x37 },
586         { IMX_8BIT, 0x0839, 0x1F },
587         { IMX_8BIT, 0x083A, 0x17 },
588         { IMX_8BIT, 0x083B, 0x02 },
589
590         /* Integration Time Setting */
591         { IMX_8BIT, 0x0202, 0x09 },
592         { IMX_8BIT, 0x0203, 0xD2 },
593
594         /* HDR Setting */
595         { IMX_8BIT, 0x0230, 0x00 },
596         { IMX_8BIT, 0x0231, 0x00 },
597         { IMX_8BIT, 0x0233, 0x00 },
598         { IMX_8BIT, 0x0234, 0x00 },
599         { IMX_8BIT, 0x0235, 0x40 },
600         { IMX_8BIT, 0x0238, 0x00 },
601         { IMX_8BIT, 0x0239, 0x04 },
602         { IMX_8BIT, 0x023B, 0x00 },
603         { IMX_8BIT, 0x023C, 0x01 },
604         { IMX_8BIT, 0x33B0, 0x04 },
605         { IMX_8BIT, 0x33B1, 0x00 },
606         { IMX_8BIT, 0x33B3, 0x00 },
607         { IMX_8BIT, 0x33B4, 0x01 },
608         { IMX_8BIT, 0x3800, 0x00 },
609         { IMX_TOK_TERM, 0, 0 }
610 };
611
612 static struct imx_reg const imx134_752_616_30fps[] = {
613         GROUPED_PARAMETER_HOLD_ENABLE,
614         /* mode set clear */
615         { IMX_8BIT, 0x3A43, 0x01 },
616         /* Clock Setting */
617         { IMX_8BIT, 0x011E, 0x13 },
618         { IMX_8BIT, 0x011F, 0x33 },
619         { IMX_8BIT, 0x0301, 0x05 },
620         { IMX_8BIT, 0x0303, 0x01 },
621         { IMX_8BIT, 0x0305, 0x0C },
622         { IMX_8BIT, 0x0309, 0x05 },
623         { IMX_8BIT, 0x030B, 0x01 },
624         { IMX_8BIT, 0x030C, 0x01 },
625         { IMX_8BIT, 0x030D, 0xA9 },
626         { IMX_8BIT, 0x030E, 0x01 },
627         { IMX_8BIT, 0x3A06, 0x11 },
628
629         /* Mode setting */
630         { IMX_8BIT, 0x0108, 0x03 },
631         { IMX_8BIT, 0x0112, 0x0A },
632         { IMX_8BIT, 0x0113, 0x0A },
633         { IMX_8BIT, 0x0381, 0x01 },
634         { IMX_8BIT, 0x0383, 0x01 },
635         { IMX_8BIT, 0x0385, 0x01 },
636         { IMX_8BIT, 0x0387, 0x01 },
637         { IMX_8BIT, 0x0390, 0x01 },     /* binning */
638         { IMX_8BIT, 0x0391, 0x44 },     /* 4x4 binning */
639         { IMX_8BIT, 0x0392, 0x00 },
640         { IMX_8BIT, 0x0401, 0x00 },     /* no resize */
641         { IMX_8BIT, 0x0404, 0x00 },
642         { IMX_8BIT, 0x0405, 0x10 },
643         { IMX_8BIT, 0x4082, 0x01 },
644         { IMX_8BIT, 0x4083, 0x01 },
645         { IMX_8BIT, 0x7006, 0x04 },
646
647         /* Optionnal Function setting */
648         { IMX_8BIT, 0x0700, 0x00 },
649         { IMX_8BIT, 0x3A63, 0x00 },
650         { IMX_8BIT, 0x4100, 0xF8 },
651         { IMX_8BIT, 0x4203, 0xFF },
652         { IMX_8BIT, 0x4344, 0x00 },
653         { IMX_8BIT, 0x441C, 0x01 },
654
655         /* Size setting */
656         { IMX_8BIT, 0x0344, 0x00 },      /* x_addr_start[15:8]:136 */
657         { IMX_8BIT, 0x0345, 0x88 },      /* x_addr_start[7:0] */
658         { IMX_8BIT, 0x0346, 0x00 },      /* y_addr_start[15:8]:0 */
659         { IMX_8BIT, 0x0347, 0x00 },      /* y_addr_start[7:0] */
660         { IMX_8BIT, 0x0348, 0x0C },      /* x_addr_end[15:8]:3145+134-1 */
661         { IMX_8BIT, 0x0349, 0x47 },      /* x_addr_end[7:0] */
662         { IMX_8BIT, 0x034A, 0x09 },      /* y_addr_end[15:8]:2463 */
663         { IMX_8BIT, 0x034B, 0x9F },      /* y_addr_end[7:0] */
664         { IMX_8BIT, 0x034C, 0x02 },      /* x_output_size[15:8]: 752*/
665         { IMX_8BIT, 0x034D, 0xF0 },      /* x_output_size[7:0] */
666         { IMX_8BIT, 0x034E, 0x02 },      /* y_output_size[15:8]:616 */
667         { IMX_8BIT, 0x034F, 0x68 },      /* y_output_size[7:0] */
668         { IMX_8BIT, 0x0350, 0x00 },
669         { IMX_8BIT, 0x0351, 0x00 },
670         { IMX_8BIT, 0x0352, 0x00 },
671         { IMX_8BIT, 0x0353, 0x00 },
672
673         { IMX_8BIT, 0x0354, 0x02 },
674         { IMX_8BIT, 0x0355, 0xF0 },
675         { IMX_8BIT, 0x0356, 0x02 },
676         { IMX_8BIT, 0x0357, 0x68 },
677
678         { IMX_8BIT, 0x301D, 0x30 },
679
680         { IMX_8BIT, 0x3310, 0x02 },
681         { IMX_8BIT, 0x3311, 0xF0 },
682         { IMX_8BIT, 0x3312, 0x02 },
683         { IMX_8BIT, 0x3313, 0x68 },
684
685         { IMX_8BIT, 0x331C, 0x02 },
686         { IMX_8BIT, 0x331D, 0xD0 },
687         { IMX_8BIT, 0x4084, 0x00 },
688         { IMX_8BIT, 0x4085, 0x00 },
689         { IMX_8BIT, 0x4086, 0x00 },
690         { IMX_8BIT, 0x4087, 0x00 },
691         { IMX_8BIT, 0x4400, 0x00 },
692
693         /* Global Timing Setting */
694         { IMX_8BIT, 0x0830, 0x77 },
695         { IMX_8BIT, 0x0831, 0x2F },
696         { IMX_8BIT, 0x0832, 0x4F },
697         { IMX_8BIT, 0x0833, 0x37 },
698         { IMX_8BIT, 0x0834, 0x2F },
699         { IMX_8BIT, 0x0835, 0x37 },
700         { IMX_8BIT, 0x0836, 0xAF },
701         { IMX_8BIT, 0x0837, 0x37 },
702         { IMX_8BIT, 0x0839, 0x1F },
703         { IMX_8BIT, 0x083A, 0x17 },
704         { IMX_8BIT, 0x083B, 0x02 },
705
706         /* Integration Time Setting */
707         { IMX_8BIT, 0x0202, 0x09 },
708         { IMX_8BIT, 0x0203, 0xD2 },
709
710         /* HDR Setting */
711         { IMX_8BIT, 0x0230, 0x00 },
712         { IMX_8BIT, 0x0231, 0x00 },
713         { IMX_8BIT, 0x0233, 0x00 },
714         { IMX_8BIT, 0x0234, 0x00 },
715         { IMX_8BIT, 0x0235, 0x40 },
716         { IMX_8BIT, 0x0238, 0x00 },
717         { IMX_8BIT, 0x0239, 0x04 },
718         { IMX_8BIT, 0x023B, 0x00 },
719         { IMX_8BIT, 0x023C, 0x01 },
720         { IMX_8BIT, 0x33B0, 0x04 },
721         { IMX_8BIT, 0x33B1, 0x00 },
722         { IMX_8BIT, 0x33B3, 0x00 },
723         { IMX_8BIT, 0x33B4, 0x01 },
724         { IMX_8BIT, 0x3800, 0x00 },
725         { IMX_TOK_TERM, 0, 0 }
726 };
727
728 /* 1424x1168  */
729 static struct imx_reg const imx134_1424_1168_30fps[] = {
730         GROUPED_PARAMETER_HOLD_ENABLE,
731         /* mode set clear */
732         { IMX_8BIT, 0x3A43, 0x01 },
733         /* Clock Setting */
734         { IMX_8BIT, 0x011E, 0x13 },
735         { IMX_8BIT, 0x011F, 0x33 },
736         { IMX_8BIT, 0x0301, 0x05 },
737         { IMX_8BIT, 0x0303, 0x01 },
738         { IMX_8BIT, 0x0305, 0x0C },
739         { IMX_8BIT, 0x0309, 0x05 },
740         { IMX_8BIT, 0x030B, 0x01 },
741         { IMX_8BIT, 0x030C, 0x01 },
742         { IMX_8BIT, 0x030D, 0xA9 },
743         { IMX_8BIT, 0x030E, 0x01 },
744         { IMX_8BIT, 0x3A06, 0x11 },
745
746         /* Mode setting */
747         { IMX_8BIT, 0x0108, 0x03 },
748         { IMX_8BIT, 0x0112, 0x0A },
749         { IMX_8BIT, 0x0113, 0x0A },
750         { IMX_8BIT, 0x0381, 0x01 },
751         { IMX_8BIT, 0x0383, 0x01 },
752         { IMX_8BIT, 0x0385, 0x01 },
753         { IMX_8BIT, 0x0387, 0x01 },
754         { IMX_8BIT, 0x0390, 0x00 },     /* binning */
755         { IMX_8BIT, 0x0391, 0x11 },     /* no binning */
756         { IMX_8BIT, 0x0392, 0x00 },
757         { IMX_8BIT, 0x0401, 0x02 },     /* resize */
758         { IMX_8BIT, 0x0404, 0x00 },
759         { IMX_8BIT, 0x0405, 0x22 },     /* 34/16=2.125 */
760         { IMX_8BIT, 0x4082, 0x00 },     /* ?? */
761         { IMX_8BIT, 0x4083, 0x00 },     /* ?? */
762         { IMX_8BIT, 0x7006, 0x04 },
763
764         /* Optionnal Function setting */
765         { IMX_8BIT, 0x0700, 0x00 },
766         { IMX_8BIT, 0x3A63, 0x00 },
767         { IMX_8BIT, 0x4100, 0xF8 },
768         { IMX_8BIT, 0x4203, 0xFF },
769         { IMX_8BIT, 0x4344, 0x00 },
770         { IMX_8BIT, 0x441C, 0x01 },
771
772         /* Size setting */
773         { IMX_8BIT, 0x0344, 0x00 },      /* x_addr_start[15:8]:136 */
774         { IMX_8BIT, 0x0345, 0x80 },      /* x_addr_start[7:0] */
775         { IMX_8BIT, 0x0346, 0x00 },      /* y_addr_start[15:8]:0 */
776         { IMX_8BIT, 0x0347, 0x00 },      /* y_addr_start[7:0] */
777         { IMX_8BIT, 0x0348, 0x0C },      /* x_addr_end[15:8]:3145+134-1 */
778         { IMX_8BIT, 0x0349, 0x51 },      /* x_addr_end[7:0] */
779         { IMX_8BIT, 0x034A, 0x09 },      /* y_addr_end[15:8]:2463 */
780         { IMX_8BIT, 0x034B, 0xB1 },      /* y_addr_end[7:0] */
781         { IMX_8BIT, 0x034C, 0x05 },      /* x_output_size[15:8]: 1424*/
782         { IMX_8BIT, 0x034D, 0x90 },      /* x_output_size[7:0] */
783         { IMX_8BIT, 0x034E, 0x04 },      /* y_output_size[15:8]:1168 */
784         { IMX_8BIT, 0x034F, 0x90 },      /* y_output_size[7:0] */
785         { IMX_8BIT, 0x0350, 0x00 },
786         { IMX_8BIT, 0x0351, 0x00 },
787         { IMX_8BIT, 0x0352, 0x00 },
788         { IMX_8BIT, 0x0353, 0x00 },
789
790         { IMX_8BIT, 0x0354, 0x0B },
791         { IMX_8BIT, 0x0355, 0xD2 },
792         { IMX_8BIT, 0x0356, 0x09 },
793         { IMX_8BIT, 0x0357, 0xB2 },
794
795         { IMX_8BIT, 0x301D, 0x30 },
796
797         { IMX_8BIT, 0x3310, 0x05 },
798         { IMX_8BIT, 0x3311, 0x90 },
799         { IMX_8BIT, 0x3312, 0x04 },
800         { IMX_8BIT, 0x3313, 0x90 },
801
802         { IMX_8BIT, 0x331C, 0x02 },
803         { IMX_8BIT, 0x331D, 0xD0 },
804         { IMX_8BIT, 0x4084, 0x05 },
805         { IMX_8BIT, 0x4085, 0x90 },
806         { IMX_8BIT, 0x4086, 0x04 },
807         { IMX_8BIT, 0x4087, 0x90 },
808         { IMX_8BIT, 0x4400, 0x00 },
809
810         /* Global Timing Setting */
811         { IMX_8BIT, 0x0830, 0x77 },
812         { IMX_8BIT, 0x0831, 0x2F },
813         { IMX_8BIT, 0x0832, 0x4F },
814         { IMX_8BIT, 0x0833, 0x37 },
815         { IMX_8BIT, 0x0834, 0x2F },
816         { IMX_8BIT, 0x0835, 0x37 },
817         { IMX_8BIT, 0x0836, 0xAF },
818         { IMX_8BIT, 0x0837, 0x37 },
819         { IMX_8BIT, 0x0839, 0x1F },
820         { IMX_8BIT, 0x083A, 0x17 },
821         { IMX_8BIT, 0x083B, 0x02 },
822
823         /* Integration Time Setting */
824         { IMX_8BIT, 0x0202, 0x09 },
825         { IMX_8BIT, 0x0203, 0xD2 },
826
827         /* HDR Setting */
828         { IMX_8BIT, 0x0230, 0x00 },
829         { IMX_8BIT, 0x0231, 0x00 },
830         { IMX_8BIT, 0x0233, 0x00 },
831         { IMX_8BIT, 0x0234, 0x00 },
832         { IMX_8BIT, 0x0235, 0x40 },
833         { IMX_8BIT, 0x0238, 0x00 },
834         { IMX_8BIT, 0x0239, 0x04 },
835         { IMX_8BIT, 0x023B, 0x00 },
836         { IMX_8BIT, 0x023C, 0x01 },
837         { IMX_8BIT, 0x33B0, 0x04 },
838         { IMX_8BIT, 0x33B1, 0x00 },
839         { IMX_8BIT, 0x33B3, 0x00 },
840         { IMX_8BIT, 0x33B4, 0x01 },
841         { IMX_8BIT, 0x3800, 0x00 },
842         { IMX_TOK_TERM, 0, 0 }
843 };
844
845 /* 4 lane, 1/4 binning, 16/35 down scaling, 30fps, dvs */
846 static struct imx_reg const imx134_240_196_30fps[] = {
847         GROUPED_PARAMETER_HOLD_ENABLE,
848         /* mode set clear */
849         { IMX_8BIT, 0x3A43, 0x01 },
850         /* Clock Setting */
851         { IMX_8BIT, 0x011E, 0x13 },
852         { IMX_8BIT, 0x011F, 0x33 },
853         { IMX_8BIT, 0x0301, 0x05 },
854         { IMX_8BIT, 0x0303, 0x01 },
855         { IMX_8BIT, 0x0305, 0x0C },
856         { IMX_8BIT, 0x0309, 0x05 },
857         { IMX_8BIT, 0x030B, 0x01 },
858         { IMX_8BIT, 0x030C, 0x01 },
859         { IMX_8BIT, 0x030D, 0xA9 },
860         { IMX_8BIT, 0x030E, 0x01 },
861         { IMX_8BIT, 0x3A06, 0x11 },
862
863         /* Mode setting */
864         { IMX_8BIT, 0x0108, 0x03 },
865         { IMX_8BIT, 0x0112, 0x0A },
866         { IMX_8BIT, 0x0113, 0x0A },
867         { IMX_8BIT, 0x0381, 0x01 },
868         { IMX_8BIT, 0x0383, 0x01 },
869         { IMX_8BIT, 0x0385, 0x01 },
870         { IMX_8BIT, 0x0387, 0x01 },
871         { IMX_8BIT, 0x0390, 0x01 },     /*4x4 binning */
872         { IMX_8BIT, 0x0391, 0x44 },
873         { IMX_8BIT, 0x0392, 0x00 },
874         { IMX_8BIT, 0x0401, 0x02 },     /* resize */
875         { IMX_8BIT, 0x0404, 0x00 },
876         { IMX_8BIT, 0x0405, 0x23 },     /* down scaling = 16/35 */
877         { IMX_8BIT, 0x4082, 0x00 },
878         { IMX_8BIT, 0x4083, 0x00 },
879         { IMX_8BIT, 0x7006, 0x04 },
880
881         /* Optionnal Function setting */
882         { IMX_8BIT, 0x0700, 0x00 },
883         { IMX_8BIT, 0x3A63, 0x00 },
884         { IMX_8BIT, 0x4100, 0xF8 },
885         { IMX_8BIT, 0x4203, 0xFF },
886         { IMX_8BIT, 0x4344, 0x00 },
887         { IMX_8BIT, 0x441C, 0x01 },
888
889         /* Size setting */
890         { IMX_8BIT, 0x0344, 0x02 },      /* x_addr_start[15:8]:590 */
891         { IMX_8BIT, 0x0345, 0x4E },      /* x_addr_start[7:0] */
892         { IMX_8BIT, 0x0346, 0x01 },      /* y_addr_start[15:8]:366 */
893         { IMX_8BIT, 0x0347, 0x6E },      /* y_addr_start[7:0] */
894         { IMX_8BIT, 0x0348, 0x0A },      /* x_addr_end[15:8]:2104+590-1 */
895         { IMX_8BIT, 0x0349, 0x85 },      /* x_addr_end[7:0] */
896         { IMX_8BIT, 0x034A, 0x08 },      /* y_addr_end[15:8]:1720+366-1 */
897         { IMX_8BIT, 0x034B, 0x25 },      /* y_addr_end[7:0] */
898         { IMX_8BIT, 0x034C, 0x00 },      /* x_output_size[15:8]: 240*/
899         { IMX_8BIT, 0x034D, 0xF0 },      /* x_output_size[7:0] */
900         { IMX_8BIT, 0x034E, 0x00 },      /* y_output_size[15:8]:196 */
901         { IMX_8BIT, 0x034F, 0xC4 },      /* y_output_size[7:0] */
902         { IMX_8BIT, 0x0350, 0x00 },
903         { IMX_8BIT, 0x0351, 0x00 },
904         { IMX_8BIT, 0x0352, 0x00 },
905         { IMX_8BIT, 0x0353, 0x00 },
906         { IMX_8BIT, 0x0354, 0x02 },     /* crop_x: 526 */
907         { IMX_8BIT, 0x0355, 0x0E },
908         { IMX_8BIT, 0x0356, 0x01 },     /* crop_y: 430 */
909         { IMX_8BIT, 0x0357, 0xAE },
910
911         { IMX_8BIT, 0x301D, 0x30 },
912
913         { IMX_8BIT, 0x3310, 0x00 },
914         { IMX_8BIT, 0x3311, 0xF0 },
915         { IMX_8BIT, 0x3312, 0x00 },
916         { IMX_8BIT, 0x3313, 0xC4 },
917
918         { IMX_8BIT, 0x331C, 0x04 },
919         { IMX_8BIT, 0x331D, 0x4C },
920
921         { IMX_8BIT, 0x4084, 0x00 },
922         { IMX_8BIT, 0x4085, 0xF0 },
923         { IMX_8BIT, 0x4086, 0x00 },
924         { IMX_8BIT, 0x4087, 0xC4 },
925
926         { IMX_8BIT, 0x4400, 0x00 },
927
928         /* Global Timing Setting */
929         { IMX_8BIT, 0x0830, 0x77 },
930         { IMX_8BIT, 0x0831, 0x2F },
931         { IMX_8BIT, 0x0832, 0x4F },
932         { IMX_8BIT, 0x0833, 0x37 },
933         { IMX_8BIT, 0x0834, 0x2F },
934         { IMX_8BIT, 0x0835, 0x37 },
935         { IMX_8BIT, 0x0836, 0xAF },
936         { IMX_8BIT, 0x0837, 0x37 },
937         { IMX_8BIT, 0x0839, 0x1F },
938         { IMX_8BIT, 0x083A, 0x17 },
939         { IMX_8BIT, 0x083B, 0x02 },
940
941         /* Integration Time Setting */
942         { IMX_8BIT, 0x0202, 0x0A },
943         { IMX_8BIT, 0x0203, 0x88 },
944
945         /* HDR Setting */
946         { IMX_8BIT, 0x0230, 0x00 },
947         { IMX_8BIT, 0x0231, 0x00 },
948         { IMX_8BIT, 0x0233, 0x00 },
949         { IMX_8BIT, 0x0234, 0x00 },
950         { IMX_8BIT, 0x0235, 0x40 },
951         { IMX_8BIT, 0x0238, 0x00 },
952         { IMX_8BIT, 0x0239, 0x04 },
953         { IMX_8BIT, 0x023B, 0x00 },
954         { IMX_8BIT, 0x023C, 0x01 },
955         { IMX_8BIT, 0x33B0, 0x04 },
956         { IMX_8BIT, 0x33B1, 0x00 },
957         { IMX_8BIT, 0x33B3, 0x00 },
958         { IMX_8BIT, 0x33B4, 0x01 },
959         { IMX_8BIT, 0x3800, 0x00 },
960         { IMX_TOK_TERM, 0, 0 }
961 };
962
963 /* 4 lane, 1/2 binning, 16/38 downscaling, 30fps, dvs */
964 static struct imx_reg const imx134_448_366_30fps[] = {
965         GROUPED_PARAMETER_HOLD_ENABLE,
966         /* mode set clear */
967         { IMX_8BIT, 0x3A43, 0x01 },
968         /* Clock Setting */
969         { IMX_8BIT, 0x011E, 0x13 },
970         { IMX_8BIT, 0x011F, 0x33 },
971         { IMX_8BIT, 0x0301, 0x05 },
972         { IMX_8BIT, 0x0303, 0x01 },
973         { IMX_8BIT, 0x0305, 0x0C },
974         { IMX_8BIT, 0x0309, 0x05 },
975         { IMX_8BIT, 0x030B, 0x01 },
976         { IMX_8BIT, 0x030C, 0x01 },
977         { IMX_8BIT, 0x030D, 0xA9 },
978         { IMX_8BIT, 0x030E, 0x01 },
979         { IMX_8BIT, 0x3A06, 0x11 },
980
981         /* Mode setting */
982         { IMX_8BIT, 0x0108, 0x03 },
983         { IMX_8BIT, 0x0112, 0x0A },
984         { IMX_8BIT, 0x0113, 0x0A },
985         { IMX_8BIT, 0x0381, 0x01 },
986         { IMX_8BIT, 0x0383, 0x01 },
987         { IMX_8BIT, 0x0385, 0x01 },
988         { IMX_8BIT, 0x0387, 0x01 },
989         { IMX_8BIT, 0x0390, 0x01 },     /* 2x2 binning */
990         { IMX_8BIT, 0x0391, 0x22 },
991         { IMX_8BIT, 0x0392, 0x00 },
992         { IMX_8BIT, 0x0401, 0x02 },     /* resize */
993         { IMX_8BIT, 0x0404, 0x00 },
994         { IMX_8BIT, 0x0405, 0x26 },     /* down scaling = 16/38 */
995         { IMX_8BIT, 0x4082, 0x00 },
996         { IMX_8BIT, 0x4083, 0x00 },
997         { IMX_8BIT, 0x7006, 0x04 },
998
999         /* Optionnal Function setting */
1000         { IMX_8BIT, 0x0700, 0x00 },
1001         { IMX_8BIT, 0x3A63, 0x00 },
1002         { IMX_8BIT, 0x4100, 0xF8 },
1003         { IMX_8BIT, 0x4203, 0xFF },
1004         { IMX_8BIT, 0x4344, 0x00 },
1005         { IMX_8BIT, 0x441C, 0x01 },
1006
1007         /* Size setting */
1008         { IMX_8BIT, 0x0344, 0x02 },      /* x_addr_start[15:8]:590 */
1009         { IMX_8BIT, 0x0345, 0x4E },      /* x_addr_start[7:0] */
1010         { IMX_8BIT, 0x0346, 0x01 },      /* y_addr_start[15:8]:366 */
1011         { IMX_8BIT, 0x0347, 0x6E },      /* y_addr_start[7:0] */
1012         { IMX_8BIT, 0x0348, 0x0A },      /* x_addr_end[15:8]:2128+590-1 */
1013         { IMX_8BIT, 0x0349, 0x9D },      /* x_addr_end[7:0] */
1014         { IMX_8BIT, 0x034A, 0x08 },      /* y_addr_end[15:8]:1740+366-1 */
1015         { IMX_8BIT, 0x034B, 0x39 },      /* y_addr_end[7:0] */
1016         { IMX_8BIT, 0x034C, 0x01 },      /* x_output_size[15:8]: 448*/
1017         { IMX_8BIT, 0x034D, 0xC0 },      /* x_output_size[7:0] */
1018         { IMX_8BIT, 0x034E, 0x01 },      /* y_output_size[15:8]:366 */
1019         { IMX_8BIT, 0x034F, 0x6E },      /* y_output_size[7:0] */
1020         { IMX_8BIT, 0x0350, 0x00 },
1021         { IMX_8BIT, 0x0351, 0x00 },
1022         { IMX_8BIT, 0x0352, 0x00 },
1023         { IMX_8BIT, 0x0353, 0x00 },
1024         { IMX_8BIT, 0x0354, 0x04 },     /* crop_x: 1064 */
1025         { IMX_8BIT, 0x0355, 0x28 },
1026         { IMX_8BIT, 0x0356, 0x03 },     /* crop_y: 870 */
1027         { IMX_8BIT, 0x0357, 0x66 },
1028
1029         { IMX_8BIT, 0x301D, 0x30 },
1030
1031         { IMX_8BIT, 0x3310, 0x01 },
1032         { IMX_8BIT, 0x3311, 0xC0 },
1033         { IMX_8BIT, 0x3312, 0x01 },
1034         { IMX_8BIT, 0x3313, 0x6E },
1035
1036         { IMX_8BIT, 0x331C, 0x02 },
1037         { IMX_8BIT, 0x331D, 0xD0 },
1038
1039         { IMX_8BIT, 0x4084, 0x01 },
1040         { IMX_8BIT, 0x4085, 0xC0 },
1041         { IMX_8BIT, 0x4086, 0x01 },
1042         { IMX_8BIT, 0x4087, 0x6E },
1043         { IMX_8BIT, 0x4400, 0x00 },
1044
1045         /* Global Timing Setting */
1046         { IMX_8BIT, 0x0830, 0x77 },
1047         { IMX_8BIT, 0x0831, 0x2F },
1048         { IMX_8BIT, 0x0832, 0x4F },
1049         { IMX_8BIT, 0x0833, 0x37 },
1050         { IMX_8BIT, 0x0834, 0x2F },
1051         { IMX_8BIT, 0x0835, 0x37 },
1052         { IMX_8BIT, 0x0836, 0xAF },
1053         { IMX_8BIT, 0x0837, 0x37 },
1054         { IMX_8BIT, 0x0839, 0x1F },
1055         { IMX_8BIT, 0x083A, 0x17 },
1056         { IMX_8BIT, 0x083B, 0x02 },
1057
1058         /* Integration Time Setting */
1059         { IMX_8BIT, 0x0202, 0x09 },
1060         { IMX_8BIT, 0x0203, 0xD2 },
1061
1062         /* HDR Setting */
1063         { IMX_8BIT, 0x0230, 0x00 },
1064         { IMX_8BIT, 0x0231, 0x00 },
1065         { IMX_8BIT, 0x0233, 0x00 },
1066         { IMX_8BIT, 0x0234, 0x00 },
1067         { IMX_8BIT, 0x0235, 0x40 },
1068         { IMX_8BIT, 0x0238, 0x00 },
1069         { IMX_8BIT, 0x0239, 0x04 },
1070         { IMX_8BIT, 0x023B, 0x00 },
1071         { IMX_8BIT, 0x023C, 0x01 },
1072         { IMX_8BIT, 0x33B0, 0x04 },
1073         { IMX_8BIT, 0x33B1, 0x00 },
1074         { IMX_8BIT, 0x33B3, 0x00 },
1075         { IMX_8BIT, 0x33B4, 0x01 },
1076         { IMX_8BIT, 0x3800, 0x00 },
1077         { IMX_TOK_TERM, 0, 0 }
1078 };
1079
1080 /* 4 lane 2336x1312, 30fps, for 1080p dvs,  vendor provide */
1081 static struct imx_reg const imx134_2336_1312_30fps[] = {
1082         GROUPED_PARAMETER_HOLD_ENABLE,
1083         /* mode set clear */
1084         { IMX_8BIT, 0x3A43, 0x01 },
1085         /* Clock Setting */
1086         { IMX_8BIT, 0x011E, 0x13 },
1087         { IMX_8BIT, 0x011F, 0x33 },
1088         { IMX_8BIT, 0x0301, 0x05 },
1089         { IMX_8BIT, 0x0303, 0x01 },
1090         { IMX_8BIT, 0x0305, 0x0C },
1091         { IMX_8BIT, 0x0309, 0x05 },
1092         { IMX_8BIT, 0x030B, 0x01 },
1093         { IMX_8BIT, 0x030C, 0x01 },
1094         { IMX_8BIT, 0x030D, 0xA9 },
1095         { IMX_8BIT, 0x030E, 0x01 },
1096         { IMX_8BIT, 0x3A06, 0x11 },
1097
1098         /* Mode setting */
1099         { IMX_8BIT, 0x0108, 0x03 },
1100         { IMX_8BIT, 0x0112, 0x0A },
1101         { IMX_8BIT, 0x0113, 0x0A },
1102         { IMX_8BIT, 0x0381, 0x01 },
1103         { IMX_8BIT, 0x0383, 0x01 },
1104         { IMX_8BIT, 0x0385, 0x01 },
1105         { IMX_8BIT, 0x0387, 0x01 },
1106         { IMX_8BIT, 0x0390, 0x00 },     /* disable binning */
1107         { IMX_8BIT, 0x0391, 0x11 },
1108         { IMX_8BIT, 0x0392, 0x00 },
1109         { IMX_8BIT, 0x0401, 0x02 },     /* H/V resize */
1110         { IMX_8BIT, 0x0404, 0x00 },
1111         { IMX_8BIT, 0x0405, 0x16 },     /* down scaling = 16/22 = 8/11 */
1112         { IMX_8BIT, 0x4082, 0x00 },
1113         { IMX_8BIT, 0x4083, 0x00 },
1114         { IMX_8BIT, 0x7006, 0x04 },
1115
1116         /* Optionnal Function setting */
1117         { IMX_8BIT, 0x0700, 0x00 },
1118         { IMX_8BIT, 0x3A63, 0x00 },
1119         { IMX_8BIT, 0x4100, 0xF8 },
1120         { IMX_8BIT, 0x4203, 0xFF },
1121         { IMX_8BIT, 0x4344, 0x00 },
1122         { IMX_8BIT, 0x441C, 0x01 },
1123
1124         /* Size setting */
1125         { IMX_8BIT, 0x0344, 0x00 },  /* x_addr_start[15:8]:34   */
1126         { IMX_8BIT, 0x0345, 0x22 },  /* x_addr_start[7:0]       */
1127         { IMX_8BIT, 0x0346, 0x01 },  /* y_addr_start[15:8]:332  */
1128         { IMX_8BIT, 0x0347, 0x4C },  /* y_addr_start[7:0]       */
1129         { IMX_8BIT, 0x0348, 0x0C },  /* x_addr_end[15:8]:3245   */
1130         { IMX_8BIT, 0x0349, 0xAD },  /* x_addr_end[7:0]         */
1131         { IMX_8BIT, 0x034A, 0x08 },  /* y_addr_end[15:8]:2135   */
1132         { IMX_8BIT, 0x034B, 0x57 },  /* y_addr_end[7:0]         */
1133         { IMX_8BIT, 0x034C, 0x09 },  /* x_output_size[15:8]:2336 */
1134         { IMX_8BIT, 0x034D, 0x20 },  /* x_output_size[7:0]      */
1135         { IMX_8BIT, 0x034E, 0x05 },  /* y_output_size[15:8]:1312 */
1136         { IMX_8BIT, 0x034F, 0x20 },  /* y_output_size[7:0]      */
1137         { IMX_8BIT, 0x0350, 0x00 },
1138         { IMX_8BIT, 0x0351, 0x00 },
1139         { IMX_8BIT, 0x0352, 0x00 },
1140         { IMX_8BIT, 0x0353, 0x00 },
1141         { IMX_8BIT, 0x0354, 0x0C },
1142         { IMX_8BIT, 0x0355, 0x8C },
1143         { IMX_8BIT, 0x0356, 0x07 },
1144         { IMX_8BIT, 0x0357, 0x0C },
1145         { IMX_8BIT, 0x301D, 0x30 },
1146         { IMX_8BIT, 0x3310, 0x09 },
1147         { IMX_8BIT, 0x3311, 0x20 },
1148         { IMX_8BIT, 0x3312, 0x05 },
1149         { IMX_8BIT, 0x3313, 0x20 },
1150         { IMX_8BIT, 0x331C, 0x03 },
1151         { IMX_8BIT, 0x331D, 0xEB },
1152         { IMX_8BIT, 0x4084, 0x09 },
1153         { IMX_8BIT, 0x4085, 0x20 },
1154         { IMX_8BIT, 0x4086, 0x05 },
1155         { IMX_8BIT, 0x4087, 0x20 },
1156         { IMX_8BIT, 0x4400, 0x00 },
1157
1158         /* Global Timing Setting */
1159         { IMX_8BIT, 0x0830, 0x77 },
1160         { IMX_8BIT, 0x0831, 0x2F },
1161         { IMX_8BIT, 0x0832, 0x4F },
1162         { IMX_8BIT, 0x0833, 0x37 },
1163         { IMX_8BIT, 0x0834, 0x2F },
1164         { IMX_8BIT, 0x0835, 0x37 },
1165         { IMX_8BIT, 0x0836, 0xAF },
1166         { IMX_8BIT, 0x0837, 0x37 },
1167         { IMX_8BIT, 0x0839, 0x1F },
1168         { IMX_8BIT, 0x083A, 0x17 },
1169         { IMX_8BIT, 0x083B, 0x02 },
1170
1171         /* Integration Time Setting */
1172         { IMX_8BIT, 0x0202, 0x09 },
1173         { IMX_8BIT, 0x0203, 0xD2 },
1174
1175         /* HDR Setting */
1176         { IMX_8BIT, 0x0230, 0x00 },
1177         { IMX_8BIT, 0x0231, 0x00 },
1178         { IMX_8BIT, 0x0233, 0x00 },
1179         { IMX_8BIT, 0x0234, 0x00 },
1180         { IMX_8BIT, 0x0235, 0x40 },
1181         { IMX_8BIT, 0x0238, 0x00 },
1182         { IMX_8BIT, 0x0239, 0x04 },
1183         { IMX_8BIT, 0x023B, 0x00 },
1184         { IMX_8BIT, 0x023C, 0x01 },
1185         { IMX_8BIT, 0x33B0, 0x04 },
1186         { IMX_8BIT, 0x33B1, 0x00 },
1187         { IMX_8BIT, 0x33B3, 0x00 },
1188         { IMX_8BIT, 0x33B4, 0x01 },
1189         { IMX_8BIT, 0x3800, 0x00 },
1190         { IMX_TOK_TERM, 0, 0 }
1191 };
1192
1193 /* 4 lane 1920x1080, 30fps, for 720p still capture */
1194 static struct imx_reg const imx134_1936_1096_30fps_v1[] = {
1195         GROUPED_PARAMETER_HOLD_ENABLE,
1196         /* mode set clear */
1197         { IMX_8BIT, 0x3A43, 0x01 },
1198         /* Clock Setting */
1199         { IMX_8BIT, 0x011E, 0x13 },
1200         { IMX_8BIT, 0x011F, 0x33 },
1201         { IMX_8BIT, 0x0301, 0x05 },
1202         { IMX_8BIT, 0x0303, 0x01 },
1203         { IMX_8BIT, 0x0305, 0x0C },
1204         { IMX_8BIT, 0x0309, 0x05 },
1205         { IMX_8BIT, 0x030B, 0x01 },
1206         { IMX_8BIT, 0x030C, 0x01 },
1207         { IMX_8BIT, 0x030D, 0xA9 },
1208         { IMX_8BIT, 0x030E, 0x01 },
1209         { IMX_8BIT, 0x3A06, 0x11 },
1210
1211         /* Mode setting */
1212         { IMX_8BIT, 0x0108, 0x03 },
1213         { IMX_8BIT, 0x0112, 0x0A },
1214         { IMX_8BIT, 0x0113, 0x0A },
1215         { IMX_8BIT, 0x0381, 0x01 },
1216         { IMX_8BIT, 0x0383, 0x01 },
1217         { IMX_8BIT, 0x0385, 0x01 },
1218         { IMX_8BIT, 0x0387, 0x01 },
1219         { IMX_8BIT, 0x0390, 0x00 },     /* disable binning */
1220         { IMX_8BIT, 0x0391, 0x11 },     /* 2x2 binning */
1221         { IMX_8BIT, 0x0392, 0x00 },
1222         { IMX_8BIT, 0x0401, 0x02 },     /* H/V resize */
1223         { IMX_8BIT, 0x0404, 0x00 },
1224         { IMX_8BIT, 0x0405, 0x1A },     /* downscaling 16/26*/
1225         { IMX_8BIT, 0x4082, 0x00 },
1226         { IMX_8BIT, 0x4083, 0x00 },
1227         { IMX_8BIT, 0x7006, 0x04 },
1228
1229         /* Optionnal Function setting */
1230         { IMX_8BIT, 0x0700, 0x00 },
1231         { IMX_8BIT, 0x3A63, 0x00 },
1232         { IMX_8BIT, 0x4100, 0xF8 },
1233         { IMX_8BIT, 0x4203, 0xFF },
1234         { IMX_8BIT, 0x4344, 0x00 },
1235         { IMX_8BIT, 0x441C, 0x01 },
1236
1237         /* Size setting */
1238         { IMX_8BIT, 0x0344, 0x00 },  /* x_addr_start[15:8]:64   */
1239         { IMX_8BIT, 0x0345, 0x40 },  /* x_addr_start[7:0]       */
1240         { IMX_8BIT, 0x0346, 0x01 },  /* y_addr_start[15:8]:340  */
1241         { IMX_8BIT, 0x0347, 0x54 },  /* y_addr_start[7:0]       */
1242         { IMX_8BIT, 0x0348, 0x0C },  /* x_addr_end[15:8]:3209   */
1243         { IMX_8BIT, 0x0349, 0x89 },  /* x_addr_end[7:0]         */
1244         { IMX_8BIT, 0x034A, 0x08 },  /* y_addr_end[15:8]:2121   */
1245         { IMX_8BIT, 0x034B, 0x49 },  /* y_addr_end[7:0]         */
1246         { IMX_8BIT, 0x034C, 0x07 },  /* x_output_size[15:8]:1936 */
1247         { IMX_8BIT, 0x034D, 0x90 },  /* x_output_size[7:0]      */
1248         { IMX_8BIT, 0x034E, 0x04 },  /* y_output_size[15:8]:1096 */
1249         { IMX_8BIT, 0x034F, 0x48 },  /* y_output_size[7:0]      */
1250         { IMX_8BIT, 0x0350, 0x00 },
1251         { IMX_8BIT, 0x0351, 0x00 },
1252         { IMX_8BIT, 0x0352, 0x00 },
1253         { IMX_8BIT, 0x0353, 0x00 },
1254         { IMX_8BIT, 0x0354, 0x0C }, /* crop x:3146 */
1255         { IMX_8BIT, 0x0355, 0x4A },
1256         { IMX_8BIT, 0x0356, 0x06 }, /* xrop y:1782 */
1257         { IMX_8BIT, 0x0357, 0xF6 },
1258         { IMX_8BIT, 0x301D, 0x30 },
1259         { IMX_8BIT, 0x3310, 0x07 },
1260         { IMX_8BIT, 0x3311, 0x80 },
1261         { IMX_8BIT, 0x3312, 0x04 },
1262         { IMX_8BIT, 0x3313, 0x38 },
1263         { IMX_8BIT, 0x331C, 0x04 },
1264         { IMX_8BIT, 0x331D, 0x1E },
1265         { IMX_8BIT, 0x4084, 0x07 },
1266         { IMX_8BIT, 0x4085, 0x80 },
1267         { IMX_8BIT, 0x4086, 0x04 },
1268         { IMX_8BIT, 0x4087, 0x38 },
1269         { IMX_8BIT, 0x4400, 0x00 },
1270
1271         /* Global Timing Setting */
1272         { IMX_8BIT, 0x0830, 0x77 },
1273         { IMX_8BIT, 0x0831, 0x2F },
1274         { IMX_8BIT, 0x0832, 0x4F },
1275         { IMX_8BIT, 0x0833, 0x37 },
1276         { IMX_8BIT, 0x0834, 0x2F },
1277         { IMX_8BIT, 0x0835, 0x37 },
1278         { IMX_8BIT, 0x0836, 0xAF },
1279         { IMX_8BIT, 0x0837, 0x37 },
1280         { IMX_8BIT, 0x0839, 0x1F },
1281         { IMX_8BIT, 0x083A, 0x17 },
1282         { IMX_8BIT, 0x083B, 0x02 },
1283
1284         /* Integration Time Setting */
1285         { IMX_8BIT, 0x0202, 0x09 },
1286         { IMX_8BIT, 0x0203, 0xD2 },
1287
1288         /* HDR Setting */
1289         { IMX_8BIT, 0x0230, 0x00 },
1290         { IMX_8BIT, 0x0231, 0x00 },
1291         { IMX_8BIT, 0x0233, 0x00 },
1292         { IMX_8BIT, 0x0234, 0x00 },
1293         { IMX_8BIT, 0x0235, 0x40 },
1294         { IMX_8BIT, 0x0238, 0x00 },
1295         { IMX_8BIT, 0x0239, 0x04 },
1296         { IMX_8BIT, 0x023B, 0x00 },
1297         { IMX_8BIT, 0x023C, 0x01 },
1298         { IMX_8BIT, 0x33B0, 0x04 },
1299         { IMX_8BIT, 0x33B1, 0x00 },
1300         { IMX_8BIT, 0x33B3, 0x00 },
1301         { IMX_8BIT, 0x33B4, 0x01 },
1302         { IMX_8BIT, 0x3800, 0x00 },
1303         { IMX_TOK_TERM, 0, 0 }
1304 };
1305
1306 /* 4 lane 1920x1080, 30fps, for 720p still capture,  vendor provide */
1307 static struct imx_reg const imx134_1936_1096_30fps_v2[] = {
1308         GROUPED_PARAMETER_HOLD_ENABLE,
1309         /* mode set clear */
1310         { IMX_8BIT, 0x3A43, 0x01 },
1311         /* Clock Setting */
1312         { IMX_8BIT, 0x011E, 0x13 },
1313         { IMX_8BIT, 0x011F, 0x33 },
1314         { IMX_8BIT, 0x0301, 0x05 },
1315         { IMX_8BIT, 0x0303, 0x01 },
1316         { IMX_8BIT, 0x0305, 0x0C },
1317         { IMX_8BIT, 0x0309, 0x05 },
1318         { IMX_8BIT, 0x030B, 0x01 },
1319         { IMX_8BIT, 0x030C, 0x01 },
1320         { IMX_8BIT, 0x030D, 0xA9 },
1321         { IMX_8BIT, 0x030E, 0x01 },
1322         { IMX_8BIT, 0x3A06, 0x11 },
1323
1324         /* Mode setting */
1325         { IMX_8BIT, 0x0108, 0x03 },
1326         { IMX_8BIT, 0x0112, 0x0A },
1327         { IMX_8BIT, 0x0113, 0x0A },
1328         { IMX_8BIT, 0x0381, 0x01 },
1329         { IMX_8BIT, 0x0383, 0x01 },
1330         { IMX_8BIT, 0x0385, 0x01 },
1331         { IMX_8BIT, 0x0387, 0x01 },
1332         { IMX_8BIT, 0x0390, 0x00 }, /* disable binning */
1333         { IMX_8BIT, 0x0391, 0x11 },
1334         { IMX_8BIT, 0x0392, 0x00 },
1335         { IMX_8BIT, 0x0401, 0x02 }, /* H/V resize */
1336         { IMX_8BIT, 0x0404, 0x00 },
1337         { IMX_8BIT, 0x0405, 0x1B }, /* downscaling 16/27*/
1338         { IMX_8BIT, 0x4082, 0x00 },
1339         { IMX_8BIT, 0x4083, 0x00 },
1340         { IMX_8BIT, 0x7006, 0x04 },
1341
1342         /* Optionnal Function setting */
1343         { IMX_8BIT, 0x0700, 0x00 },
1344         { IMX_8BIT, 0x3A63, 0x00 },
1345         { IMX_8BIT, 0x4100, 0xF8 },
1346         { IMX_8BIT, 0x4203, 0xFF },
1347         { IMX_8BIT, 0x4344, 0x00 },
1348         { IMX_8BIT, 0x441C, 0x01 },
1349
1350         /* Size setting */
1351         { IMX_8BIT, 0x0344, 0x00 },  /* x_addr_start[15:8]:64   */
1352         { IMX_8BIT, 0x0345, 0x06 },  /* x_addr_start[7:0]       */
1353         { IMX_8BIT, 0x0346, 0x01 },  /* y_addr_start[15:8]:340  */
1354         { IMX_8BIT, 0x0347, 0x34 },  /* y_addr_start[7:0]       */
1355         { IMX_8BIT, 0x0348, 0x0C },  /* x_addr_end[15:8]:3209   */
1356         { IMX_8BIT, 0x0349, 0xC9 },  /* x_addr_end[7:0]         */
1357         { IMX_8BIT, 0x034A, 0x08 },  /* y_addr_end[15:8]:2121   */
1358         { IMX_8BIT, 0x034B, 0x6F },  /* y_addr_end[7:0]         */
1359         { IMX_8BIT, 0x034C, 0x07 },  /* x_output_size[15:8]:1936 */
1360         { IMX_8BIT, 0x034D, 0x90 },  /* x_output_size[7:0]      */
1361         { IMX_8BIT, 0x034E, 0x04 },  /* y_output_size[15:8]:1096 */
1362         { IMX_8BIT, 0x034F, 0x48 },  /* y_output_size[7:0]      */
1363         { IMX_8BIT, 0x0350, 0x00 },
1364         { IMX_8BIT, 0x0351, 0x00 },
1365         { IMX_8BIT, 0x0352, 0x00 },
1366         { IMX_8BIT, 0x0353, 0x00 },
1367         { IMX_8BIT, 0x0354, 0x0C }, /* crop x:3146 */
1368         { IMX_8BIT, 0x0355, 0xC4 },
1369         { IMX_8BIT, 0x0356, 0x07 }, /* xrop y:1782 */
1370         { IMX_8BIT, 0x0357, 0x3A },
1371         { IMX_8BIT, 0x301D, 0x30 },
1372         { IMX_8BIT, 0x3310, 0x07 }, /* decide by mode and output size */
1373         { IMX_8BIT, 0x3311, 0x90 },
1374         { IMX_8BIT, 0x3312, 0x04 },
1375         { IMX_8BIT, 0x3313, 0x48 },
1376         { IMX_8BIT, 0x331C, 0x04 },
1377         { IMX_8BIT, 0x331D, 0x1E },
1378         { IMX_8BIT, 0x4084, 0x07 },
1379         { IMX_8BIT, 0x4085, 0x90 },
1380         { IMX_8BIT, 0x4086, 0x04 },
1381         { IMX_8BIT, 0x4087, 0x48 },
1382         { IMX_8BIT, 0x4400, 0x00 },
1383
1384         /* Global Timing Setting */
1385         { IMX_8BIT, 0x0830, 0x77 },
1386         { IMX_8BIT, 0x0831, 0x2F },
1387         { IMX_8BIT, 0x0832, 0x4F },
1388         { IMX_8BIT, 0x0833, 0x37 },
1389         { IMX_8BIT, 0x0834, 0x2F },
1390         { IMX_8BIT, 0x0835, 0x37 },
1391         { IMX_8BIT, 0x0836, 0xAF },
1392         { IMX_8BIT, 0x0837, 0x37 },
1393         { IMX_8BIT, 0x0839, 0x1F },
1394         { IMX_8BIT, 0x083A, 0x17 },
1395         { IMX_8BIT, 0x083B, 0x02 },
1396
1397         /* Integration Time Setting */
1398         { IMX_8BIT, 0x0202, 0x09 },
1399         { IMX_8BIT, 0x0203, 0xD2 },
1400
1401         /* HDR Setting */
1402         { IMX_8BIT, 0x0230, 0x00 },
1403         { IMX_8BIT, 0x0231, 0x00 },
1404         { IMX_8BIT, 0x0233, 0x00 },
1405         { IMX_8BIT, 0x0234, 0x00 },
1406         { IMX_8BIT, 0x0235, 0x40 },
1407         { IMX_8BIT, 0x0238, 0x00 },
1408         { IMX_8BIT, 0x0239, 0x04 },
1409         { IMX_8BIT, 0x023B, 0x00 },
1410         { IMX_8BIT, 0x023C, 0x01 },
1411         { IMX_8BIT, 0x33B0, 0x04 },
1412         { IMX_8BIT, 0x33B1, 0x00 },
1413         { IMX_8BIT, 0x33B3, 0x00 },
1414         { IMX_8BIT, 0x33B4, 0x01 },
1415         { IMX_8BIT, 0x3800, 0x00 },
1416         { IMX_TOK_TERM, 0, 0 }
1417 };
1418
1419 /* 4 lane 1296x736, 30fps, for 720p still capture,  vendor provide */
1420 static struct imx_reg const imx134_1296_736_30fps_v2[] = {
1421         GROUPED_PARAMETER_HOLD_ENABLE,
1422         /* mode set clear */
1423         { IMX_8BIT, 0x3A43, 0x01 },
1424         /* Clock Setting */
1425         { IMX_8BIT, 0x011E, 0x13 },
1426         { IMX_8BIT, 0x011F, 0x33 },
1427         { IMX_8BIT, 0x0301, 0x05 },
1428         { IMX_8BIT, 0x0303, 0x01 },
1429         { IMX_8BIT, 0x0305, 0x0C },
1430         { IMX_8BIT, 0x0309, 0x05 },
1431         { IMX_8BIT, 0x030B, 0x01 },
1432         { IMX_8BIT, 0x030C, 0x01 },
1433         { IMX_8BIT, 0x030D, 0xA9 },
1434         { IMX_8BIT, 0x030E, 0x01 },
1435         { IMX_8BIT, 0x3A06, 0x11 },
1436
1437         /* Mode setting */
1438         { IMX_8BIT, 0x0108, 0x03 },
1439         { IMX_8BIT, 0x0112, 0x0A },
1440         { IMX_8BIT, 0x0113, 0x0A },
1441         { IMX_8BIT, 0x0381, 0x01 },
1442         { IMX_8BIT, 0x0383, 0x01 },
1443         { IMX_8BIT, 0x0385, 0x01 },
1444         { IMX_8BIT, 0x0387, 0x01 },
1445         { IMX_8BIT, 0x0390, 0x01 },     /* binning */
1446         { IMX_8BIT, 0x0391, 0x22 },     /* 2x2 binning */
1447         { IMX_8BIT, 0x0392, 0x00 },
1448         { IMX_8BIT, 0x0401, 0x02 },     /* H/V resize */
1449         { IMX_8BIT, 0x0404, 0x00 },
1450         { IMX_8BIT, 0x0405, 0x14 },
1451         { IMX_8BIT, 0x4082, 0x00 },
1452         { IMX_8BIT, 0x4083, 0x00 },
1453         { IMX_8BIT, 0x7006, 0x04 },
1454
1455         /* OptionnalFunction settig */
1456         { IMX_8BIT, 0x0700, 0x00 },
1457         { IMX_8BIT, 0x3A63, 0x00 },
1458         { IMX_8BIT, 0x4100, 0xF8 },
1459         { IMX_8BIT, 0x4203, 0xFF },
1460         { IMX_8BIT, 0x4344, 0x00 },
1461         { IMX_8BIT, 0x441C, 0x01 },
1462
1463         /* Size setting */
1464         { IMX_8BIT, 0x0344, 0x00 },      /*     x_addr_start[15:8]:40   */
1465         { IMX_8BIT, 0x0345, 0x14 },      /*     x_addr_start[7:0]       */
1466         { IMX_8BIT, 0x0346, 0x01 },      /*     y_addr_start[15:8]:332  */
1467         { IMX_8BIT, 0x0347, 0x38 },      /*     y_addr_start[7:0]       */
1468         { IMX_8BIT, 0x0348, 0x0C },      /*     x_addr_end[15:8]:3239   */
1469         { IMX_8BIT, 0x0349, 0xBB },      /*     x_addr_end[7:0]         */
1470         { IMX_8BIT, 0x034A, 0x08 },      /*     y_addr_end[15:8]:2131   */
1471         { IMX_8BIT, 0x034B, 0x67 },      /*     y_addr_end[7:0]         */
1472         { IMX_8BIT, 0x034C, 0x05 },      /*     x_output_size[15:8]:1280 */
1473         { IMX_8BIT, 0x034D, 0x10 },      /*     x_output_size[7:0]      */
1474         { IMX_8BIT, 0x034E, 0x02 },      /*     y_output_size[15:8]:720 */
1475         { IMX_8BIT, 0x034F, 0xE0 },      /*     y_output_size[7:0]      */
1476         { IMX_8BIT, 0x0350, 0x00 },
1477         { IMX_8BIT, 0x0351, 0x00 },
1478         { IMX_8BIT, 0x0352, 0x00 },
1479         { IMX_8BIT, 0x0353, 0x00 },
1480         { IMX_8BIT, 0x0354, 0x06 },
1481         { IMX_8BIT, 0x0355, 0x54 },
1482         { IMX_8BIT, 0x0356, 0x03 },
1483         { IMX_8BIT, 0x0357, 0x98 },
1484         { IMX_8BIT, 0x301D, 0x30 },
1485         { IMX_8BIT, 0x3310, 0x05 },
1486         { IMX_8BIT, 0x3311, 0x10 },
1487         { IMX_8BIT, 0x3312, 0x02 },
1488         { IMX_8BIT, 0x3313, 0xE0 },
1489         { IMX_8BIT, 0x331C, 0x01 },
1490         { IMX_8BIT, 0x331D, 0x10 },
1491         { IMX_8BIT, 0x4084, 0x05 },
1492         { IMX_8BIT, 0x4085, 0x10 },
1493         { IMX_8BIT, 0x4086, 0x02 },
1494         { IMX_8BIT, 0x4087, 0xE0 },
1495         { IMX_8BIT, 0x4400, 0x00 },
1496
1497         /* Global Timing Setting */
1498         { IMX_8BIT, 0x0830, 0x77 },
1499         { IMX_8BIT, 0x0831, 0x2F },
1500         { IMX_8BIT, 0x0832, 0x4F },
1501         { IMX_8BIT, 0x0833, 0x37 },
1502         { IMX_8BIT, 0x0834, 0x2F },
1503         { IMX_8BIT, 0x0835, 0x37 },
1504         { IMX_8BIT, 0x0836, 0xAF },
1505         { IMX_8BIT, 0x0837, 0x37 },
1506         { IMX_8BIT, 0x0839, 0x1F },
1507         { IMX_8BIT, 0x083A, 0x17 },
1508         { IMX_8BIT, 0x083B, 0x02 },
1509
1510         /* Integration Time Settin */
1511         { IMX_8BIT, 0x0202, 0x09 },
1512         { IMX_8BIT, 0x0203, 0xD2 },
1513
1514         /* HDR Setting */
1515         { IMX_8BIT, 0x0230, 0x00 },
1516         { IMX_8BIT, 0x0231, 0x00 },
1517         { IMX_8BIT, 0x0233, 0x00 },
1518         { IMX_8BIT, 0x0234, 0x00 },
1519         { IMX_8BIT, 0x0235, 0x40 },
1520         { IMX_8BIT, 0x0238, 0x00 },
1521         { IMX_8BIT, 0x0239, 0x04 },
1522         { IMX_8BIT, 0x023B, 0x00 },
1523         { IMX_8BIT, 0x023C, 0x01 },
1524         { IMX_8BIT, 0x33B0, 0x04 },
1525         { IMX_8BIT, 0x33B1, 0x00 },
1526         { IMX_8BIT, 0x33B3, 0x00 },
1527         { IMX_8BIT, 0x33B4, 0x01 },
1528         { IMX_8BIT, 0x3800, 0x00 },
1529         { IMX_TOK_TERM, 0, 0 }
1530 };
1531
1532 /* 4 lane 1280x720, 30fps, for 720p dvs,  vendor provide */
1533 static struct imx_reg const imx134_1568_880_30fps[] = {
1534         GROUPED_PARAMETER_HOLD_ENABLE,
1535         /* mode set clear */
1536         { IMX_8BIT, 0x3A43, 0x01 },
1537         /* Clock Setting */
1538         { IMX_8BIT, 0x011E, 0x13 },
1539         { IMX_8BIT, 0x011F, 0x33 },
1540         { IMX_8BIT, 0x0301, 0x05 },
1541         { IMX_8BIT, 0x0303, 0x01 },
1542         { IMX_8BIT, 0x0305, 0x0C },
1543         { IMX_8BIT, 0x0309, 0x05 },
1544         { IMX_8BIT, 0x030B, 0x01 },
1545         { IMX_8BIT, 0x030C, 0x01 },
1546         { IMX_8BIT, 0x030D, 0xA9 },
1547         { IMX_8BIT, 0x030E, 0x01 },
1548         { IMX_8BIT, 0x3A06, 0x11 },
1549
1550         /* Mode setting */
1551         { IMX_8BIT, 0x0108, 0x03 },
1552         { IMX_8BIT, 0x0112, 0x0A },
1553         { IMX_8BIT, 0x0113, 0x0A },
1554         { IMX_8BIT, 0x0381, 0x01 },
1555         { IMX_8BIT, 0x0383, 0x01 },
1556         { IMX_8BIT, 0x0385, 0x01 },
1557         { IMX_8BIT, 0x0387, 0x01 },
1558         { IMX_8BIT, 0x0390, 0x01 },     /* binning*/
1559         { IMX_8BIT, 0x0391, 0x22 },     /* 2x2 binning */
1560         { IMX_8BIT, 0x0392, 0x00 },
1561         { IMX_8BIT, 0x0401, 0x02 },     /* H/V resize */
1562         { IMX_8BIT, 0x0404, 0x00 },
1563         { IMX_8BIT, 0x0405, 0x10 },     /* down scaling 16/16 = 1 */
1564         { IMX_8BIT, 0x4082, 0x01 },
1565         { IMX_8BIT, 0x4083, 0x01 },
1566         { IMX_8BIT, 0x7006, 0x04 },
1567
1568         /* OptionnalFunction settig */
1569         { IMX_8BIT, 0x0700, 0x00 },
1570         { IMX_8BIT, 0x3A63, 0x00 },
1571         { IMX_8BIT, 0x4100, 0xF8 },
1572         { IMX_8BIT, 0x4203, 0xFF },
1573         { IMX_8BIT, 0x4344, 0x00 },
1574         { IMX_8BIT, 0x441C, 0x01 },
1575
1576         /* Size setting */
1577         { IMX_8BIT, 0x0344, 0x00 },      /*     x_addr_start[15:8]:72   */
1578         { IMX_8BIT, 0x0345, 0x48 },      /*     x_addr_start[7:0]       */
1579         { IMX_8BIT, 0x0346, 0x01 },      /*     y_addr_start[15:8]:356  */
1580         { IMX_8BIT, 0x0347, 0x64 },      /*     y_addr_start[7:0]       */
1581         { IMX_8BIT, 0x0348, 0x0C },      /*     x_addr_end[15:8]:3207   */
1582         { IMX_8BIT, 0x0349, 0x87 },      /*     x_addr_end[7:0]         */
1583         { IMX_8BIT, 0x034A, 0x08 },      /*     y_addr_end[15:8]:2115   */
1584         { IMX_8BIT, 0x034B, 0x43 },      /*     y_addr_end[7:0]         */
1585         { IMX_8BIT, 0x034C, 0x06 },      /*     x_output_size[15:8]:1568 */
1586         { IMX_8BIT, 0x034D, 0x20 },      /*     x_output_size[7:0]      */
1587         { IMX_8BIT, 0x034E, 0x03 },      /*     y_output_size[15:8]:880 */
1588         { IMX_8BIT, 0x034F, 0x70 },      /*     y_output_size[7:0]      */
1589         { IMX_8BIT, 0x0350, 0x00 },
1590         { IMX_8BIT, 0x0351, 0x00 },
1591         { IMX_8BIT, 0x0352, 0x00 },
1592         { IMX_8BIT, 0x0353, 0x00 },
1593         { IMX_8BIT, 0x0354, 0x06 },
1594         { IMX_8BIT, 0x0355, 0x20 },
1595         { IMX_8BIT, 0x0356, 0x03 },
1596         { IMX_8BIT, 0x0357, 0x70 },
1597         { IMX_8BIT, 0x301D, 0x30 },
1598         { IMX_8BIT, 0x3310, 0x06 },
1599         { IMX_8BIT, 0x3311, 0x20 },
1600         { IMX_8BIT, 0x3312, 0x03 },
1601         { IMX_8BIT, 0x3313, 0x70 },
1602         { IMX_8BIT, 0x331C, 0x03 },
1603         { IMX_8BIT, 0x331D, 0xF2 },
1604         { IMX_8BIT, 0x4084, 0x00 },
1605         { IMX_8BIT, 0x4085, 0x00 },
1606         { IMX_8BIT, 0x4086, 0x00 },
1607         { IMX_8BIT, 0x4087, 0x00 },
1608         { IMX_8BIT, 0x4400, 0x00 },
1609
1610         /* Global Timing Setting */
1611         { IMX_8BIT, 0x0830, 0x77 },
1612         { IMX_8BIT, 0x0831, 0x2F },
1613         { IMX_8BIT, 0x0832, 0x4F },
1614         { IMX_8BIT, 0x0833, 0x37 },
1615         { IMX_8BIT, 0x0834, 0x2F },
1616         { IMX_8BIT, 0x0835, 0x37 },
1617         { IMX_8BIT, 0x0836, 0xAF },
1618         { IMX_8BIT, 0x0837, 0x37 },
1619         { IMX_8BIT, 0x0839, 0x1F },
1620         { IMX_8BIT, 0x083A, 0x17 },
1621         { IMX_8BIT, 0x083B, 0x02 },
1622
1623         /* Integration Time Settin */
1624         { IMX_8BIT, 0x0202, 0x09 },
1625         { IMX_8BIT, 0x0203, 0xD2 },
1626
1627         /* HDR Setting */
1628         { IMX_8BIT, 0x0230, 0x00 },
1629         { IMX_8BIT, 0x0231, 0x00 },
1630         { IMX_8BIT, 0x0233, 0x00 },
1631         { IMX_8BIT, 0x0234, 0x00 },
1632         { IMX_8BIT, 0x0235, 0x40 },
1633         { IMX_8BIT, 0x0238, 0x00 },
1634         { IMX_8BIT, 0x0239, 0x04 },
1635         { IMX_8BIT, 0x023B, 0x00 },
1636         { IMX_8BIT, 0x023C, 0x01 },
1637         { IMX_8BIT, 0x33B0, 0x04 },
1638         { IMX_8BIT, 0x33B1, 0x00 },
1639         { IMX_8BIT, 0x33B3, 0x00 },
1640         { IMX_8BIT, 0x33B4, 0x01 },
1641         { IMX_8BIT, 0x3800, 0x00 },
1642         { IMX_TOK_TERM, 0, 0 }
1643 };
1644
1645 static struct imx_reg const imx134_1568_876_60fps_0625[] = {
1646         GROUPED_PARAMETER_HOLD_ENABLE,
1647         /* mode set clear */
1648         { IMX_8BIT, 0x3A43, 0x01 },
1649         /* Clock Setting */
1650         { IMX_8BIT, 0x011E, 0x13 },
1651         { IMX_8BIT, 0x011F, 0x33 },
1652         { IMX_8BIT, 0x0301, 0x05 },
1653         { IMX_8BIT, 0x0303, 0x01 },
1654         { IMX_8BIT, 0x0305, 0x0C },
1655         { IMX_8BIT, 0x0309, 0x05 },
1656         { IMX_8BIT, 0x030B, 0x01 },
1657         { IMX_8BIT, 0x030C, 0x01 },
1658         { IMX_8BIT, 0x030D, 0x8F },
1659         { IMX_8BIT, 0x030E, 0x01 },
1660         { IMX_8BIT, 0x3A06, 0x11 },
1661
1662         /* Mode setting */
1663         { IMX_8BIT, 0x0108, 0x03 },
1664         { IMX_8BIT, 0x0112, 0x0A },
1665         { IMX_8BIT, 0x0113, 0x0A },
1666         { IMX_8BIT, 0x0381, 0x01 },
1667         { IMX_8BIT, 0x0383, 0x01 },
1668         { IMX_8BIT, 0x0385, 0x01 },
1669         { IMX_8BIT, 0x0387, 0x01 },
1670         { IMX_8BIT, 0x0390, 0x01 },     /* binning*/
1671         { IMX_8BIT, 0x0391, 0x22 },     /* 2x2 binning */
1672         { IMX_8BIT, 0x0392, 0x00 },
1673         { IMX_8BIT, 0x0401, 0x00 },     /* H/V resize */
1674         { IMX_8BIT, 0x0404, 0x00 },
1675         { IMX_8BIT, 0x0405, 0x10 },     /* down scaling 16/16 = 1 */
1676         { IMX_8BIT, 0x4082, 0x01 },
1677         { IMX_8BIT, 0x4083, 0x01 },
1678         { IMX_8BIT, 0x7006, 0x04 },
1679
1680         /* OptionnalFunction settig */
1681         { IMX_8BIT, 0x0700, 0x00 },
1682         { IMX_8BIT, 0x3A63, 0x00 },
1683         { IMX_8BIT, 0x4100, 0xF8 },
1684         { IMX_8BIT, 0x4203, 0xFF },
1685         { IMX_8BIT, 0x4344, 0x00 },
1686         { IMX_8BIT, 0x441C, 0x01 },
1687
1688         /* Size setting */
1689         { IMX_8BIT, 0x0344, 0x00 },      /*     x_addr_start[15:8]:72   */
1690         { IMX_8BIT, 0x0345, 0x48 },      /*     x_addr_start[7:0]       */
1691         { IMX_8BIT, 0x0346, 0x01 },      /*     y_addr_start[15:8]:356  */
1692         { IMX_8BIT, 0x0347, 0x64 },      /*     y_addr_start[7:0]       */
1693         { IMX_8BIT, 0x0348, 0x0C },      /*     x_addr_end[15:8]:3207   */
1694         { IMX_8BIT, 0x0349, 0x87 },      /*     x_addr_end[7:0]         */
1695         { IMX_8BIT, 0x034A, 0x08 },      /*     y_addr_end[15:8]:2115   */
1696         { IMX_8BIT, 0x034B, 0x3B },      /*     y_addr_end[7:0]         */
1697         { IMX_8BIT, 0x034C, 0x06 },      /*     x_output_size[15:8]:1568 */
1698         { IMX_8BIT, 0x034D, 0x20 },      /*     x_output_size[7:0]      */
1699         { IMX_8BIT, 0x034E, 0x03 },      /*     y_output_size[15:8]:880 */
1700         { IMX_8BIT, 0x034F, 0x6C },      /*     y_output_size[7:0]      */
1701         { IMX_8BIT, 0x0350, 0x00 },
1702         { IMX_8BIT, 0x0351, 0x00 },
1703         { IMX_8BIT, 0x0352, 0x00 },
1704         { IMX_8BIT, 0x0353, 0x00 },
1705         { IMX_8BIT, 0x0354, 0x06 },
1706         { IMX_8BIT, 0x0355, 0x20 },
1707         { IMX_8BIT, 0x0356, 0x03 },
1708         { IMX_8BIT, 0x0357, 0x6C },
1709         { IMX_8BIT, 0x301D, 0x30 },
1710         { IMX_8BIT, 0x3310, 0x06 },
1711         { IMX_8BIT, 0x3311, 0x20 },
1712         { IMX_8BIT, 0x3312, 0x03 },
1713         { IMX_8BIT, 0x3313, 0x6C },
1714         { IMX_8BIT, 0x331C, 0x03 },
1715         { IMX_8BIT, 0x331D, 0xF2 },
1716         { IMX_8BIT, 0x4084, 0x00 },
1717         { IMX_8BIT, 0x4085, 0x00 },
1718         { IMX_8BIT, 0x4086, 0x00 },
1719         { IMX_8BIT, 0x4087, 0x00 },
1720         { IMX_8BIT, 0x4400, 0x00 },
1721
1722         /* Global Timing Setting */
1723         { IMX_8BIT, 0x0830, 0x6F },
1724         { IMX_8BIT, 0x0831, 0x27 },
1725         { IMX_8BIT, 0x0832, 0x4F },
1726         { IMX_8BIT, 0x0833, 0x2F },
1727         { IMX_8BIT, 0x0834, 0x2F },
1728         { IMX_8BIT, 0x0835, 0x2F },
1729         { IMX_8BIT, 0x0836, 0x9F },
1730         { IMX_8BIT, 0x0837, 0x37 },
1731         { IMX_8BIT, 0x0839, 0x1F },
1732         { IMX_8BIT, 0x083A, 0x17 },
1733         { IMX_8BIT, 0x083B, 0x02 },
1734
1735         /* Integration Time Settin */
1736         { IMX_8BIT, 0x0202, 0x09 },
1737         { IMX_8BIT, 0x0203, 0xD2 },
1738
1739         /* HDR Setting */
1740         { IMX_8BIT, 0x0230, 0x00 },
1741         { IMX_8BIT, 0x0231, 0x00 },
1742         { IMX_8BIT, 0x0233, 0x00 },
1743         { IMX_8BIT, 0x0234, 0x00 },
1744         { IMX_8BIT, 0x0235, 0x40 },
1745         { IMX_8BIT, 0x0238, 0x00 },
1746         { IMX_8BIT, 0x0239, 0x04 },
1747         { IMX_8BIT, 0x023B, 0x00 },
1748         { IMX_8BIT, 0x023C, 0x01 },
1749         { IMX_8BIT, 0x33B0, 0x04 },
1750         { IMX_8BIT, 0x33B1, 0x00 },
1751         { IMX_8BIT, 0x33B3, 0x00 },
1752         { IMX_8BIT, 0x33B4, 0x01 },
1753         { IMX_8BIT, 0x3800, 0x00 },
1754         { IMX_TOK_TERM, 0, 0 }
1755 };
1756
1757
1758 /* 4 lane for 720p dvs,  vendor provide */
1759 static struct imx_reg const imx134_1568_880[] = {
1760         GROUPED_PARAMETER_HOLD_ENABLE,
1761         /* mode set clear */
1762         { IMX_8BIT, 0x3A43, 0x01 },
1763         /* Clock Setting */
1764         { IMX_8BIT, 0x011E, 0x13 },
1765         { IMX_8BIT, 0x011F, 0x33 },
1766         { IMX_8BIT, 0x0301, 0x05 },
1767         { IMX_8BIT, 0x0303, 0x01 },
1768         { IMX_8BIT, 0x0305, 0x0C },
1769         { IMX_8BIT, 0x0309, 0x05 },
1770         { IMX_8BIT, 0x030B, 0x01 },
1771         { IMX_8BIT, 0x030C, 0x01 },
1772         { IMX_8BIT, 0x030D, 0xC8 },
1773         { IMX_8BIT, 0x030E, 0x01 },
1774         { IMX_8BIT, 0x3A06, 0x11 },
1775
1776         /* Mode setting */
1777         { IMX_8BIT, 0x0108, 0x03 },
1778         { IMX_8BIT, 0x0112, 0x0A },
1779         { IMX_8BIT, 0x0113, 0x0A },
1780         { IMX_8BIT, 0x0381, 0x01 },
1781         { IMX_8BIT, 0x0383, 0x01 },
1782         { IMX_8BIT, 0x0385, 0x01 },
1783         { IMX_8BIT, 0x0387, 0x01 },
1784         { IMX_8BIT, 0x0390, 0x01 },     /* binning*/
1785         { IMX_8BIT, 0x0391, 0x22 },     /* 2x2 binning */
1786         { IMX_8BIT, 0x0392, 0x00 },
1787         { IMX_8BIT, 0x0401, 0x00 },     /* H/V resize */
1788         { IMX_8BIT, 0x0404, 0x00 },
1789         { IMX_8BIT, 0x0405, 0x10 },     /* down scaling 16/16 = 1 */
1790         { IMX_8BIT, 0x4082, 0x01 },
1791         { IMX_8BIT, 0x4083, 0x01 },
1792         { IMX_8BIT, 0x7006, 0x04 },
1793
1794         /* OptionnalFunction settig */
1795         { IMX_8BIT, 0x0700, 0x00 },
1796         { IMX_8BIT, 0x3A63, 0x00 },
1797         { IMX_8BIT, 0x4100, 0xF8 },
1798         { IMX_8BIT, 0x4203, 0xFF },
1799         { IMX_8BIT, 0x4344, 0x00 },
1800         { IMX_8BIT, 0x441C, 0x01 },
1801
1802         /* Size setting */
1803         { IMX_8BIT, 0x0344, 0x00 },      /*     x_addr_start[15:8]:72   */
1804         { IMX_8BIT, 0x0345, 0x48 },      /*     x_addr_start[7:0]       */
1805         { IMX_8BIT, 0x0346, 0x01 },      /*     y_addr_start[15:8]:356  */
1806         { IMX_8BIT, 0x0347, 0x64 },      /*     y_addr_start[7:0]       */
1807         { IMX_8BIT, 0x0348, 0x0C },      /*     x_addr_end[15:8]:3207   */
1808         { IMX_8BIT, 0x0349, 0x87 },      /*     x_addr_end[7:0]         */
1809         { IMX_8BIT, 0x034A, 0x08 },      /*     y_addr_end[15:8]:2115   */
1810         { IMX_8BIT, 0x034B, 0x43 },      /*     y_addr_end[7:0]         */
1811         { IMX_8BIT, 0x034C, 0x06 },      /*     x_output_size[15:8]:1568 */
1812         { IMX_8BIT, 0x034D, 0x20 },      /*     x_output_size[7:0]      */
1813         { IMX_8BIT, 0x034E, 0x03 },      /*     y_output_size[15:8]:880 */
1814         { IMX_8BIT, 0x034F, 0x70 },      /*     y_output_size[7:0]      */
1815         { IMX_8BIT, 0x0350, 0x00 },
1816         { IMX_8BIT, 0x0351, 0x00 },
1817         { IMX_8BIT, 0x0352, 0x00 },
1818         { IMX_8BIT, 0x0353, 0x00 },
1819         { IMX_8BIT, 0x0354, 0x06 },
1820         { IMX_8BIT, 0x0355, 0x20 },
1821         { IMX_8BIT, 0x0356, 0x03 },
1822         { IMX_8BIT, 0x0357, 0x70 },
1823         { IMX_8BIT, 0x301D, 0x30 },
1824         { IMX_8BIT, 0x3310, 0x06 },
1825         { IMX_8BIT, 0x3311, 0x20 },
1826         { IMX_8BIT, 0x3312, 0x03 },
1827         { IMX_8BIT, 0x3313, 0x70 },
1828         { IMX_8BIT, 0x331C, 0x03 },
1829         { IMX_8BIT, 0x331D, 0xF2 },
1830         { IMX_8BIT, 0x4084, 0x00 },
1831         { IMX_8BIT, 0x4085, 0x00 },
1832         { IMX_8BIT, 0x4086, 0x00 },
1833         { IMX_8BIT, 0x4087, 0x00 },
1834         { IMX_8BIT, 0x4400, 0x00 },
1835
1836         /* Global Timing Setting */
1837         { IMX_8BIT, 0x0830, 0x77 },
1838         { IMX_8BIT, 0x0831, 0x2F },
1839         { IMX_8BIT, 0x0832, 0x5F },
1840         { IMX_8BIT, 0x0833, 0x37 },
1841         { IMX_8BIT, 0x0834, 0x37 },
1842         { IMX_8BIT, 0x0835, 0x37 },
1843         { IMX_8BIT, 0x0836, 0xBF },
1844         { IMX_8BIT, 0x0837, 0x3F },
1845         { IMX_8BIT, 0x0839, 0x1F },
1846         { IMX_8BIT, 0x083A, 0x17 },
1847         { IMX_8BIT, 0x083B, 0x02 },
1848
1849
1850         /* Integration Time Settin */
1851         { IMX_8BIT, 0x0202, 0x09 },
1852         { IMX_8BIT, 0x0203, 0xD2 },
1853
1854         /* HDR Setting */
1855         { IMX_8BIT, 0x0230, 0x00 },
1856         { IMX_8BIT, 0x0231, 0x00 },
1857         { IMX_8BIT, 0x0233, 0x00 },
1858         { IMX_8BIT, 0x0234, 0x00 },
1859         { IMX_8BIT, 0x0235, 0x40 },
1860         { IMX_8BIT, 0x0238, 0x00 },
1861         { IMX_8BIT, 0x0239, 0x04 },
1862         { IMX_8BIT, 0x023B, 0x00 },
1863         { IMX_8BIT, 0x023C, 0x01 },
1864         { IMX_8BIT, 0x33B0, 0x04 },
1865         { IMX_8BIT, 0x33B1, 0x00 },
1866         { IMX_8BIT, 0x33B3, 0x00 },
1867         { IMX_8BIT, 0x33B4, 0x01 },
1868         { IMX_8BIT, 0x3800, 0x00 },
1869         { IMX_TOK_TERM, 0, 0 }
1870 };
1871 /* 4 lane for 480p dvs, default 60fps,  vendor provide */
1872 static struct imx_reg const imx134_880_592[] = {
1873         GROUPED_PARAMETER_HOLD_ENABLE,
1874         /* mode set clear */
1875         { IMX_8BIT, 0x3A43, 0x01 },
1876         /* Clock Setting */
1877         { IMX_8BIT, 0x011E, 0x13 },
1878         { IMX_8BIT, 0x011F, 0x33 },
1879         { IMX_8BIT, 0x0301, 0x05 },
1880         { IMX_8BIT, 0x0303, 0x01 },
1881         { IMX_8BIT, 0x0305, 0x0C },
1882         { IMX_8BIT, 0x0309, 0x05 },
1883         { IMX_8BIT, 0x030B, 0x01 },
1884         { IMX_8BIT, 0x030C, 0x01 },
1885         { IMX_8BIT, 0x030D, 0xC8 },
1886         { IMX_8BIT, 0x030E, 0x01 },
1887         { IMX_8BIT, 0x3A06, 0x11 },
1888
1889         /* Mode setting */
1890         { IMX_8BIT, 0x0108, 0x03 },
1891         { IMX_8BIT, 0x0112, 0x0A },
1892         { IMX_8BIT, 0x0113, 0x0A },
1893         { IMX_8BIT, 0x0381, 0x01 },
1894         { IMX_8BIT, 0x0383, 0x01 },
1895         { IMX_8BIT, 0x0385, 0x01 },
1896         { IMX_8BIT, 0x0387, 0x01 },
1897         { IMX_8BIT, 0x0390, 0x01 },     /* binning*/
1898         { IMX_8BIT, 0x0391, 0x22 },     /* 2x2 binning */
1899         { IMX_8BIT, 0x0392, 0x00 },
1900         { IMX_8BIT, 0x0401, 0x02 },     /* H/V resize */
1901         { IMX_8BIT, 0x0404, 0x00 },
1902         { IMX_8BIT, 0x0405, 0x1D },     /* downscaling ratio = 16/29 */
1903         { IMX_8BIT, 0x4082, 0x00 },
1904         { IMX_8BIT, 0x4083, 0x00 },
1905         { IMX_8BIT, 0x7006, 0x04 },
1906
1907         /* OptionnalFunction settig */
1908         { IMX_8BIT, 0x0700, 0x00 },
1909         { IMX_8BIT, 0x3A63, 0x00 },
1910         { IMX_8BIT, 0x4100, 0xF8 },
1911         { IMX_8BIT, 0x4203, 0xFF },
1912         { IMX_8BIT, 0x4344, 0x00 },
1913         { IMX_8BIT, 0x441C, 0x01 },
1914
1915         /* Size setting */
1916         { IMX_8BIT, 0x0344, 0x00 },      /*     x_addr_start[15:8]:44   */
1917         { IMX_8BIT, 0x0345, 0x2C },      /*     x_addr_start[7:0]       */
1918         { IMX_8BIT, 0x0346, 0x00 },      /*     y_addr_start[15:8]:160  */
1919         { IMX_8BIT, 0x0347, 0xA0 },      /*     y_addr_start[7:0]       */
1920         { IMX_8BIT, 0x0348, 0x0C },      /*     x_addr_end[15:8]:3235   */
1921         { IMX_8BIT, 0x0349, 0xA3 },      /*     x_addr_end[7:0]         */
1922         { IMX_8BIT, 0x034A, 0x09 },      /*     y_addr_end[15:8]:2307   */
1923         { IMX_8BIT, 0x034B, 0x03 },      /*     y_addr_end[7:0]         */
1924         { IMX_8BIT, 0x034C, 0x03 },      /*     x_output_size[15:8]:880 */
1925         { IMX_8BIT, 0x034D, 0x70 },      /*     x_output_size[7:0]      */
1926         { IMX_8BIT, 0x034E, 0x02 },      /*     y_output_size[15:8]:592 */
1927         { IMX_8BIT, 0x034F, 0x50 },      /*     y_output_size[7:0]      */
1928         { IMX_8BIT, 0x0350, 0x00 },
1929         { IMX_8BIT, 0x0351, 0x00 },
1930         { IMX_8BIT, 0x0352, 0x00 },
1931         { IMX_8BIT, 0x0353, 0x00 },
1932         { IMX_8BIT, 0x0354, 0x06 },
1933         { IMX_8BIT, 0x0355, 0x3C },
1934         { IMX_8BIT, 0x0356, 0x04 },
1935         { IMX_8BIT, 0x0357, 0x32 },
1936         { IMX_8BIT, 0x301D, 0x30 },
1937         { IMX_8BIT, 0x3310, 0x03 },
1938         { IMX_8BIT, 0x3311, 0x70 },
1939         { IMX_8BIT, 0x3312, 0x02 },
1940         { IMX_8BIT, 0x3313, 0x50 },
1941         { IMX_8BIT, 0x331C, 0x04 },
1942         { IMX_8BIT, 0x331D, 0x4C },
1943         { IMX_8BIT, 0x4084, 0x03 },
1944         { IMX_8BIT, 0x4085, 0x70 },
1945         { IMX_8BIT, 0x4086, 0x02 },
1946         { IMX_8BIT, 0x4087, 0x50 },
1947         { IMX_8BIT, 0x4400, 0x00 },
1948
1949         /* Global Timing Setting */
1950         { IMX_8BIT, 0x0830, 0x77 },
1951         { IMX_8BIT, 0x0831, 0x2F },
1952         { IMX_8BIT, 0x0832, 0x5F },
1953         { IMX_8BIT, 0x0833, 0x37 },
1954         { IMX_8BIT, 0x0834, 0x37 },
1955         { IMX_8BIT, 0x0835, 0x37 },
1956         { IMX_8BIT, 0x0836, 0xBF },
1957         { IMX_8BIT, 0x0837, 0x3F },
1958         { IMX_8BIT, 0x0839, 0x1F },
1959         { IMX_8BIT, 0x083A, 0x17 },
1960         { IMX_8BIT, 0x083B, 0x02 },
1961
1962
1963         /* Integration Time Settin */
1964         { IMX_8BIT, 0x0202, 0x05 },
1965         { IMX_8BIT, 0x0203, 0x42 },
1966
1967         /* HDR Setting */
1968         { IMX_8BIT, 0x0230, 0x00 },
1969         { IMX_8BIT, 0x0231, 0x00 },
1970         { IMX_8BIT, 0x0233, 0x00 },
1971         { IMX_8BIT, 0x0234, 0x00 },
1972         { IMX_8BIT, 0x0235, 0x40 },
1973         { IMX_8BIT, 0x0238, 0x00 },
1974         { IMX_8BIT, 0x0239, 0x04 },
1975         { IMX_8BIT, 0x023B, 0x00 },
1976         { IMX_8BIT, 0x023C, 0x01 },
1977         { IMX_8BIT, 0x33B0, 0x04 },
1978         { IMX_8BIT, 0x33B1, 0x00 },
1979         { IMX_8BIT, 0x33B3, 0x00 },
1980         { IMX_8BIT, 0x33B4, 0x01 },
1981         { IMX_8BIT, 0x3800, 0x00 },
1982         { IMX_TOK_TERM, 0, 0 }
1983 };
1984 static struct imx_reg const imx134_2336_1308_60fps[] = {
1985         GROUPED_PARAMETER_HOLD_ENABLE,
1986         /* mode set clear */
1987         { IMX_8BIT, 0x3A43, 0x01 },
1988         /* Clock Setting */
1989         { IMX_8BIT, 0x011E, 0x13 },
1990         { IMX_8BIT, 0x011F, 0x33 },
1991         { IMX_8BIT, 0x0301, 0x05 },
1992         { IMX_8BIT, 0x0303, 0x01 },
1993         { IMX_8BIT, 0x0305, 0x0C },
1994         { IMX_8BIT, 0x0309, 0x05 },
1995         { IMX_8BIT, 0x030B, 0x01 },
1996         { IMX_8BIT, 0x030C, 0x01 },
1997         { IMX_8BIT, 0x030D, 0xC8 },
1998         { IMX_8BIT, 0x030E, 0x01 },
1999         { IMX_8BIT, 0x3A06, 0x11 },
2000
2001         /* Mode setting */
2002         { IMX_8BIT, 0x0108, 0x03 },
2003         { IMX_8BIT, 0x0112, 0x0A },
2004         { IMX_8BIT, 0x0113, 0x0A },
2005         { IMX_8BIT, 0x0381, 0x01 },
2006         { IMX_8BIT, 0x0383, 0x01 },
2007         { IMX_8BIT, 0x0385, 0x01 },
2008         { IMX_8BIT, 0x0387, 0x01 },
2009         { IMX_8BIT, 0x0390, 0x00 },     /* binning*/
2010         { IMX_8BIT, 0x0391, 0x11 },     /* 2x2 binning */
2011         { IMX_8BIT, 0x0392, 0x00 },
2012         { IMX_8BIT, 0x0401, 0x00 },     /* H/V resize */
2013         { IMX_8BIT, 0x0404, 0x00 },
2014         { IMX_8BIT, 0x0405, 0x10 },     /* down scaling 16/16 = 1 */
2015         { IMX_8BIT, 0x4082, 0x01 },
2016         { IMX_8BIT, 0x4083, 0x01 },
2017         { IMX_8BIT, 0x7006, 0x04 },
2018
2019         /* OptionnalFunction settig */
2020         { IMX_8BIT, 0x0700, 0x00 },
2021         { IMX_8BIT, 0x3A63, 0x00 },
2022         { IMX_8BIT, 0x4100, 0xF8 },
2023         { IMX_8BIT, 0x4203, 0xFF },
2024         { IMX_8BIT, 0x4344, 0x00 },
2025         { IMX_8BIT, 0x441C, 0x01 },
2026
2027         /* Size setting */
2028         { IMX_8BIT, 0x0344, 0x01 },      /*     x_addr_start[15:8]:72   */
2029         { IMX_8BIT, 0x0345, 0xD8 },      /*     x_addr_start[7:0]       */
2030         { IMX_8BIT, 0x0346, 0x02 },      /*     y_addr_start[15:8]:356  */
2031         { IMX_8BIT, 0x0347, 0x44 },      /*     y_addr_start[7:0]       */
2032         { IMX_8BIT, 0x0348, 0x0A },      /*     x_addr_end[15:8]:3207   */
2033         { IMX_8BIT, 0x0349, 0xF7 },      /*     x_addr_end[7:0]         */
2034         { IMX_8BIT, 0x034A, 0x07 },      /*     y_addr_end[15:8]:2107   */
2035         { IMX_8BIT, 0x034B, 0x5F+4 },      /*   y_addr_end[7:0]         */
2036         { IMX_8BIT, 0x034C, 0x09 },      /*     x_output_size[15:8]:1568 */
2037         { IMX_8BIT, 0x034D, 0x20 },      /*     x_output_size[7:0]      */
2038         { IMX_8BIT, 0x034E, 0x05 },      /*     y_output_size[15:8]:876 */
2039         { IMX_8BIT, 0x034F, 0x1C+4 },      /*   y_output_size[7:0]      */
2040         { IMX_8BIT, 0x0350, 0x00 },
2041         { IMX_8BIT, 0x0351, 0x00 },
2042         { IMX_8BIT, 0x0352, 0x00 },
2043         { IMX_8BIT, 0x0353, 0x00 },
2044         { IMX_8BIT, 0x0354, 0x09 },
2045         { IMX_8BIT, 0x0355, 0x20 },
2046         { IMX_8BIT, 0x0356, 0x05 },
2047         { IMX_8BIT, 0x0357, 0x1C+4 },
2048         { IMX_8BIT, 0x301D, 0x30 },
2049         { IMX_8BIT, 0x3310, 0x09 },
2050         { IMX_8BIT, 0x3311, 0x20 },
2051         { IMX_8BIT, 0x3312, 0x05 },
2052         { IMX_8BIT, 0x3313, 0x1C+4 },
2053         { IMX_8BIT, 0x331C, 0x03 },
2054         { IMX_8BIT, 0x331D, 0xE8 },
2055         { IMX_8BIT, 0x4084, 0x00 },
2056         { IMX_8BIT, 0x4085, 0x00 },
2057         { IMX_8BIT, 0x4086, 0x00 },
2058         { IMX_8BIT, 0x4087, 0x00 },
2059         { IMX_8BIT, 0x4400, 0x00 },
2060
2061         /* Global Timing Setting */
2062         { IMX_8BIT, 0x0830, 0x77 },
2063         { IMX_8BIT, 0x0831, 0x2F },
2064         { IMX_8BIT, 0x0832, 0x5F },
2065         { IMX_8BIT, 0x0833, 0x37 },
2066         { IMX_8BIT, 0x0834, 0x37 },
2067         { IMX_8BIT, 0x0835, 0x37 },
2068         { IMX_8BIT, 0x0836, 0xBF },
2069         { IMX_8BIT, 0x0837, 0x3F },
2070         { IMX_8BIT, 0x0839, 0x1F },
2071         { IMX_8BIT, 0x083A, 0x17 },
2072         { IMX_8BIT, 0x083B, 0x02 },
2073
2074         /* Integration Time Settin */
2075         { IMX_8BIT, 0x0202, 0x05 },
2076         { IMX_8BIT, 0x0203, 0x42 },
2077
2078         /* HDR Setting */
2079         { IMX_8BIT, 0x0230, 0x00 },
2080         { IMX_8BIT, 0x0231, 0x00 },
2081         { IMX_8BIT, 0x0233, 0x00 },
2082         { IMX_8BIT, 0x0234, 0x00 },
2083         { IMX_8BIT, 0x0235, 0x40 },
2084         { IMX_8BIT, 0x0238, 0x00 },
2085         { IMX_8BIT, 0x0239, 0x04 },
2086         { IMX_8BIT, 0x023B, 0x00 },
2087         { IMX_8BIT, 0x023C, 0x01 },
2088         { IMX_8BIT, 0x33B0, 0x04 },
2089         { IMX_8BIT, 0x33B1, 0x00 },
2090         { IMX_8BIT, 0x33B3, 0x00 },
2091         { IMX_8BIT, 0x33B4, 0x01 },
2092         { IMX_8BIT, 0x3800, 0x00 },
2093         { IMX_TOK_TERM, 0, 0 }
2094 };
2095
2096 struct imx_resolution imx134_res_preview[] = {
2097         {
2098                 .desc = "imx134_CIF_30fps",
2099                 .regs = imx134_720_592_30fps,
2100                 .width = 720,
2101                 .height = 592,
2102                 .fps_options = {
2103                         {
2104                                  .fps = 30,
2105                                  .pixels_per_line = 3600,
2106                                  .lines_per_frame = 2518,
2107                         },
2108                         {
2109                         }
2110                 },
2111                 .bin_factor_x = 2,
2112                 .bin_factor_y = 2,
2113                 .used = 0,
2114         },
2115         {
2116                 .desc = "imx134_820_552_30fps_preview",
2117                 .regs = imx134_820_552_30fps,
2118                 .width = 820,
2119                 .height = 552,
2120                 .fps_options = {
2121                         {
2122                                  .fps = 30,
2123                                  .pixels_per_line = 3600,
2124                                  .lines_per_frame = 2518,
2125                         },
2126                         {
2127                         }
2128                 },
2129                 .bin_factor_x = 2,
2130                 .bin_factor_y = 2,
2131                 .used = 0,
2132         },
2133         {
2134                 .desc = "imx134_820_616_preview_30fps",
2135                 .regs = imx134_820_616_30fps,
2136                 .width = 820,
2137                 .height = 616,
2138                 .fps_options = {
2139                         {
2140                                  .fps = 30,
2141                                  .pixels_per_line = 3600,
2142                                  .lines_per_frame = 2518,
2143                         },
2144                         {
2145                         }
2146                 },
2147                 .bin_factor_x = 2,
2148                 .bin_factor_y = 2,
2149                 .used = 0,
2150         },
2151         {
2152                 .desc = "imx134_1080p_preview_30fps",
2153                 .regs = imx134_1936_1096_30fps_v2,
2154                 .width = 1936,
2155                 .height = 1096,
2156                 .fps_options = {
2157                         {
2158                                  .fps = 30,
2159                                  .pixels_per_line = 3600,
2160                                  .lines_per_frame = 2518,
2161                         },
2162                         {
2163                         }
2164                 },
2165                 .bin_factor_x = 0,
2166                 .bin_factor_y = 0,
2167                 .used = 0,
2168         },
2169         {
2170                 .desc = "imx134_1640_1232_preview_30fps",
2171                 .regs = imx134_1640_1232_30fps,
2172                 .width = 1640,
2173                 .height = 1232,
2174                 .fps_options = {
2175                         {
2176                                  .fps = 30,
2177                                  .pixels_per_line = 3600,
2178                                  .lines_per_frame = 2518,
2179                         },
2180                         {
2181                         }
2182                 },
2183                 .bin_factor_x = 1,
2184                 .bin_factor_y = 1,
2185                 .used = 0,
2186         },
2187         {
2188                 .desc = "imx134_8M_preview_30fps",
2189                 .regs = imx134_8M_30fps,
2190                 .width = 3280,
2191                 .height = 2464,
2192                 .fps_options = {
2193                         {
2194                                  .fps = 30,
2195                                  .pixels_per_line = 3600,
2196                                  .lines_per_frame = 2518,
2197                         },
2198                         {
2199                         }
2200                 },
2201                 .bin_factor_x = 0,
2202                 .bin_factor_y = 0,
2203                 .used = 0,
2204         },
2205 };
2206
2207 struct imx_resolution imx134_res_still[] = {
2208         {
2209                 .desc = "imx134_CIF_30fps",
2210                 .regs = imx134_1424_1168_30fps,
2211                 .width = 1424,
2212                 .height = 1168,
2213                 .fps_options = {
2214                         {
2215                                  .fps = 30,
2216                                  .pixels_per_line = 3600,
2217                                  .lines_per_frame = 2518,
2218                         },
2219                         {
2220                         }
2221                 },
2222                 .bin_factor_x = 1,
2223                 .bin_factor_y = 1,
2224                 .used = 0,
2225         },
2226         {
2227                 .desc = "imx134_VGA_still_30fps",
2228                 .regs = imx134_1640_1232_30fps,
2229                 .width = 1640,
2230                 .height = 1232,
2231                 .fps_options = {
2232                         {
2233                                  .fps = 30,
2234                                  .pixels_per_line = 3600,
2235                                  .lines_per_frame = 2518,
2236                         },
2237                         {
2238                         }
2239                 },
2240                 .bin_factor_x = 1,
2241                 .bin_factor_y = 1,
2242                 .used = 0,
2243         },
2244         {
2245                 .desc = "imx134_1080p_still_30fps",
2246                 .regs = imx134_1936_1096_30fps_v2,
2247                 .width = 1936,
2248                 .height = 1096,
2249                 .fps_options = {
2250                         {
2251                                  .fps = 30,
2252                                  .pixels_per_line = 3600,
2253                                  .lines_per_frame = 2518,
2254                         },
2255                         {
2256                         }
2257                 },
2258                 .bin_factor_x = 0,
2259                 .bin_factor_y = 0,
2260                 .used = 0,
2261         },
2262         {
2263                 .desc = "imx134_1640_1232_still_30fps",
2264                 .regs = imx134_1640_1232_30fps,
2265                 .width = 1640,
2266                 .height = 1232,
2267                 .fps_options = {
2268                         {
2269                                  .fps = 30,
2270                                  .pixels_per_line = 3600,
2271                                  .lines_per_frame = 2518,
2272                         },
2273                         {
2274                         }
2275                 },
2276                 .bin_factor_x = 1,
2277                 .bin_factor_y = 1,
2278                 .used = 0,
2279         },
2280         {
2281                 .desc = "imx134_8M_still_30fps",
2282                 .regs = imx134_8M_30fps,
2283                 .width = 3280,
2284                 .height = 2464,
2285                 .fps_options = {
2286                         {
2287                                 /* WORKAROUND for FW performance limitation */
2288                                  .fps = 8,
2289                                  .pixels_per_line = 6400,
2290                                  .lines_per_frame = 5312,
2291                         },
2292                         {
2293                                  .fps = 30,
2294                                  .pixels_per_line = 3600,
2295                                  .lines_per_frame = 2518,
2296                         },
2297                         {
2298                         }
2299                 },
2300                 .bin_factor_x = 0,
2301                 .bin_factor_y = 0,
2302                 .used = 0,
2303         },
2304 };
2305
2306 struct imx_resolution imx134_res_video[] = {
2307         {
2308                 .desc = "imx134_QCIF_DVS_30fps",
2309                 .regs = imx134_240_196_30fps,
2310                 .width = 240,
2311                 .height = 196,
2312                 .fps_options = {
2313                         {
2314                                  .fps = 30,
2315                                  .pixels_per_line = 3600,
2316                                  .lines_per_frame = 2518,
2317                         },
2318                         {
2319                         }
2320                 },
2321                 .bin_factor_x = 2,
2322                 .bin_factor_y = 2,
2323                 .used = 0,
2324         },
2325         {
2326                 .desc = "imx134_CIF_DVS_30fps",
2327                 .regs = imx134_448_366_30fps,
2328                 .width = 448,
2329                 .height = 366,
2330                 .fps_options = {
2331                         {
2332                                  .fps = 30,
2333                                  .pixels_per_line = 3600,
2334                                  .lines_per_frame = 2518,
2335                         },
2336                         {
2337                         }
2338                 },
2339                 .bin_factor_x = 1,
2340                 .bin_factor_y = 1,
2341                 .used = 0,
2342         },
2343         {
2344                 .desc = "imx134_VGA_30fps",
2345                 .regs = imx134_820_616_30fps,
2346                 .width = 820,
2347                 .height = 616,
2348                 .fps_options = {
2349                         {
2350                                  .fps = 30,
2351                                  .pixels_per_line = 3600,
2352                                  .lines_per_frame = 2518,
2353                         },
2354                         {
2355                         }
2356                 },
2357                 .bin_factor_x = 2,
2358                 .bin_factor_y = 2,
2359                 .used = 0,
2360         },
2361         {
2362                 .desc = "imx134_480p",
2363                 .regs = imx134_880_592,
2364                 .width = 880,
2365                 .height = 592,
2366                 .fps_options = {
2367                         {
2368                                  .fps = 30,
2369                                  .pixels_per_line = 3600,
2370                                  .lines_per_frame = 2700,
2371                         },
2372                         {
2373                                  .fps = 60,
2374                                  .pixels_per_line = 3600,
2375                                  .lines_per_frame = 1350,
2376                         },
2377                         {
2378                         }
2379                 },
2380                 .bin_factor_x = 1,
2381                 .bin_factor_y = 1,
2382                 .used = 0,
2383         },
2384         {
2385                 .desc = "imx134_1568_880",
2386                 .regs = imx134_1568_880,
2387                 .width = 1568,
2388                 .height = 880,
2389                 .fps_options = {
2390                         {
2391                                  .fps = 30,
2392                                  .pixels_per_line = 3600,
2393                                  .lines_per_frame = 2700,
2394                         },
2395                         {
2396                                  .fps = 60,
2397                                  .pixels_per_line = 3600,
2398                                  .lines_per_frame = 1350,
2399                         },
2400                         {
2401                         }
2402                 },
2403                 .bin_factor_x = 1,
2404                 .bin_factor_y = 1,
2405                 .used = 0,
2406         },
2407         {
2408                 .desc = "imx134_1080p_dvs_30fps",
2409                 .regs = imx134_2336_1312_30fps,
2410                 .width = 2336,
2411                 .height = 1312,
2412                 .fps_options = {
2413                         {
2414                                  .fps = 30,
2415                                  .pixels_per_line = 3600,
2416                                  .lines_per_frame = 2518,
2417                         },
2418                         {
2419                         }
2420                 },
2421                 .bin_factor_x = 0,
2422                 .bin_factor_y = 0,
2423                 .used = 0,
2424         },
2425         {
2426                 .desc = "imx134_1080p_dvs_60fps",
2427                 .regs = imx134_2336_1308_60fps,
2428                 .width = 2336,
2429                 .height = 1312,
2430                 .fps_options = {
2431                         {
2432                                  .fps = 60,
2433                                  .pixels_per_line = 3600,
2434                                  .lines_per_frame = 1350,
2435                         },
2436                         {
2437                         }
2438                 },
2439                 .bin_factor_x = 0,
2440                 .bin_factor_y = 0,
2441                 .used = 0,
2442         },
2443         {
2444                 /*This setting only be used for SDV mode*/
2445                 .desc = "imx134_8M_sdv_30fps",
2446                 .regs = imx134_8M_30fps,
2447                 .width = 3280,
2448                 .height = 2464,
2449                 .fps_options = {
2450                         {
2451                                  .fps = 30,
2452                                  .pixels_per_line = 3600,
2453                                  .lines_per_frame = 2518,
2454                         },
2455                         {
2456                         }
2457                 },
2458                 .bin_factor_x = 0,
2459                 .bin_factor_y = 0,
2460                 .used = 0,
2461         },
2462 };
2463
2464 #endif
2465