2 * Support for Sony IMX camera sensor.
4 * Copyright (c) 2013 Intel Corporation. All Rights Reserved.
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License version
8 * 2 as published by the Free Software Foundation.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26 /********************** registers define ********************************/
27 #define IMX132_RGLANESEL 0x3301 /* Number of lanes */
28 #define IMX132_RGLANESEL_1LANE 0x01
29 #define IMX132_RGLANESEL_2LANES 0x00
30 #define IMX132_RGLANESEL_4LANES 0x03
32 #define IMX132_2LANES_GAINFACT 2096 /* 524/256 * 2^10 */
33 #define IMX132_2LANES_GAINFACT_SHIFT 10
35 /********************** settings for imx from vendor*********************/
36 static struct imx_reg imx132_1080p_30fps[] = {
37 GROUPED_PARAMETER_HOLD_ENABLE,
39 {IMX_8BIT, 0x3087, 0x53},
40 {IMX_8BIT, 0x308B, 0x5A},
41 {IMX_8BIT, 0x3094, 0x11},
42 {IMX_8BIT, 0x309D, 0xA4},
43 {IMX_8BIT, 0x30AA, 0x01},
44 {IMX_8BIT, 0x30C6, 0x00},
45 {IMX_8BIT, 0x30C7, 0x00},
46 {IMX_8BIT, 0x3118, 0x2F},
47 {IMX_8BIT, 0x312A, 0x00},
48 {IMX_8BIT, 0x312B, 0x0B},
49 {IMX_8BIT, 0x312C, 0x0B},
50 {IMX_8BIT, 0x312D, 0x13},
52 {IMX_8BIT, 0x0305, 0x02},
53 {IMX_8BIT, 0x0307, 0x50},
54 {IMX_8BIT, 0x30A4, 0x02},
55 {IMX_8BIT, 0x303C, 0x3C},
57 {IMX_8BIT, 0x0344, 0x00},
58 {IMX_8BIT, 0x0345, 0x14},
59 {IMX_8BIT, 0x0346, 0x00},
60 {IMX_8BIT, 0x0347, 0x32},
61 {IMX_8BIT, 0x0348, 0x07},
62 {IMX_8BIT, 0x0349, 0xA3},
63 {IMX_8BIT, 0x034A, 0x04},
64 {IMX_8BIT, 0x034B, 0x79},
65 {IMX_8BIT, 0x034C, 0x07},
66 {IMX_8BIT, 0x034D, 0x90},
67 {IMX_8BIT, 0x034E, 0x04},
68 {IMX_8BIT, 0x034F, 0x48},
69 {IMX_8BIT, 0x0381, 0x01},
70 {IMX_8BIT, 0x0383, 0x01},
71 {IMX_8BIT, 0x0385, 0x01},
72 {IMX_8BIT, 0x0387, 0x01},
73 {IMX_8BIT, 0x303D, 0x10},
74 {IMX_8BIT, 0x303E, 0x5A},
75 {IMX_8BIT, 0x3040, 0x00},
76 {IMX_8BIT, 0x3041, 0x00},
77 {IMX_8BIT, 0x3048, 0x00},
78 {IMX_8BIT, 0x304C, 0x2F},
79 {IMX_8BIT, 0x304D, 0x02},
80 {IMX_8BIT, 0x3064, 0x92},
81 {IMX_8BIT, 0x306A, 0x10},
82 {IMX_8BIT, 0x309B, 0x00},
83 {IMX_8BIT, 0x309E, 0x41},
84 {IMX_8BIT, 0x30A0, 0x10},
85 {IMX_8BIT, 0x30A1, 0x0B},
86 {IMX_8BIT, 0x30B2, 0x00},
87 {IMX_8BIT, 0x30D5, 0x00},
88 {IMX_8BIT, 0x30D6, 0x00},
89 {IMX_8BIT, 0x30D7, 0x00},
90 {IMX_8BIT, 0x30D8, 0x00},
91 {IMX_8BIT, 0x30D9, 0x00},
92 {IMX_8BIT, 0x30DA, 0x00},
93 {IMX_8BIT, 0x30DB, 0x00},
94 {IMX_8BIT, 0x30DC, 0x00},
95 {IMX_8BIT, 0x30DD, 0x00},
96 {IMX_8BIT, 0x30DE, 0x00},
97 {IMX_8BIT, 0x3102, 0x0C},
98 {IMX_8BIT, 0x3103, 0x33},
99 {IMX_8BIT, 0x3104, 0x18},
100 {IMX_8BIT, 0x3105, 0x00},
101 {IMX_8BIT, 0x3106, 0x65},
102 {IMX_8BIT, 0x3107, 0x00},
103 {IMX_8BIT, 0x3108, 0x06},
104 {IMX_8BIT, 0x3109, 0x04},
105 {IMX_8BIT, 0x310A, 0x04},
106 {IMX_8BIT, 0x315C, 0x3D},
107 {IMX_8BIT, 0x315D, 0x3C},
108 {IMX_8BIT, 0x316E, 0x3E},
109 {IMX_8BIT, 0x316F, 0x3D},
111 {IMX_8BIT, 0x3304, 0x07}, /* RGTLPX[5:0] TLPX */
112 {IMX_8BIT, 0x3305, 0x06}, /* RGTCLKPREPARE[3:0] TCLK-PREPARE */
113 {IMX_8BIT, 0x3306, 0x19}, /* RGTCLKZERO[5:0] TCLK-ZERO */
114 {IMX_8BIT, 0x3307, 0x03}, /* RGTCLKPRE[5:0] TCLK-PRE */
115 {IMX_8BIT, 0x3308, 0x0F}, /* RGTCLKPOST[5:0] TCLK-POST */
116 {IMX_8BIT, 0x3309, 0x07}, /* RGTCLKTRAIL[3:0] TCLK-TRAIL */
117 {IMX_8BIT, 0x330A, 0x0C}, /* RGTHSEXIT[5:0] THS-EXIT */
118 {IMX_8BIT, 0x330B, 0x06}, /* RGTHSPREPARE[3:0] THS-PREPARE */
119 {IMX_8BIT, 0x330C, 0x0B}, /* RGTHSZERO[5:0] THS-ZERO */
120 {IMX_8BIT, 0x330D, 0x07}, /* RGTHSTRAIL[3:0] THS-TRAIL */
121 {IMX_8BIT, 0x330E, 0x03},
122 {IMX_8BIT, 0x3318, 0x62},
123 {IMX_8BIT, 0x3322, 0x09},
124 {IMX_8BIT, 0x3342, 0x00},
125 {IMX_8BIT, 0x3348, 0xE0},
127 {IMX_TOK_TERM, 0, 0},
130 static struct imx_reg imx132_1456x1096_30fps[] = {
131 GROUPED_PARAMETER_HOLD_ENABLE,
132 /* Global Settings */
133 {IMX_8BIT, 0x3087, 0x53},
134 {IMX_8BIT, 0x308B, 0x5A},
135 {IMX_8BIT, 0x3094, 0x11},
136 {IMX_8BIT, 0x309D, 0xA4},
137 {IMX_8BIT, 0x30AA, 0x01},
138 {IMX_8BIT, 0x30C6, 0x00},
139 {IMX_8BIT, 0x30C7, 0x00},
140 {IMX_8BIT, 0x3118, 0x2F},
141 {IMX_8BIT, 0x312A, 0x00},
142 {IMX_8BIT, 0x312B, 0x0B},
143 {IMX_8BIT, 0x312C, 0x0B},
144 {IMX_8BIT, 0x312D, 0x13},
146 {IMX_8BIT, 0x0305, 0x02},
147 {IMX_8BIT, 0x0307, 0x50},
148 {IMX_8BIT, 0x30A4, 0x02},
149 {IMX_8BIT, 0x303C, 0x3C},
151 {IMX_8BIT, 0x0344, 0x01},
152 {IMX_8BIT, 0x0345, 0x04},
153 {IMX_8BIT, 0x0346, 0x00},
154 {IMX_8BIT, 0x0347, 0x32},
155 {IMX_8BIT, 0x0348, 0x06},
156 {IMX_8BIT, 0x0349, 0xB3},
157 {IMX_8BIT, 0x034A, 0x04},
158 {IMX_8BIT, 0x034B, 0x79},
159 {IMX_8BIT, 0x034C, 0x05},
160 {IMX_8BIT, 0x034D, 0xB0},
161 {IMX_8BIT, 0x034E, 0x04},
162 {IMX_8BIT, 0x034F, 0x48},
163 {IMX_8BIT, 0x0381, 0x01},
164 {IMX_8BIT, 0x0383, 0x01},
165 {IMX_8BIT, 0x0385, 0x01},
166 {IMX_8BIT, 0x0387, 0x01},
167 {IMX_8BIT, 0x303D, 0x10},
168 {IMX_8BIT, 0x303E, 0x5A},
169 {IMX_8BIT, 0x3040, 0x00},
170 {IMX_8BIT, 0x3041, 0x00},
171 {IMX_8BIT, 0x3048, 0x00},
172 {IMX_8BIT, 0x304C, 0x2F},
173 {IMX_8BIT, 0x304D, 0x02},
174 {IMX_8BIT, 0x3064, 0x92},
175 {IMX_8BIT, 0x306A, 0x10},
176 {IMX_8BIT, 0x309B, 0x00},
177 {IMX_8BIT, 0x309E, 0x41},
178 {IMX_8BIT, 0x30A0, 0x10},
179 {IMX_8BIT, 0x30A1, 0x0B},
180 {IMX_8BIT, 0x30B2, 0x00},
181 {IMX_8BIT, 0x30D5, 0x00},
182 {IMX_8BIT, 0x30D6, 0x00},
183 {IMX_8BIT, 0x30D7, 0x00},
184 {IMX_8BIT, 0x30D8, 0x00},
185 {IMX_8BIT, 0x30D9, 0x00},
186 {IMX_8BIT, 0x30DA, 0x00},
187 {IMX_8BIT, 0x30DB, 0x00},
188 {IMX_8BIT, 0x30DC, 0x00},
189 {IMX_8BIT, 0x30DD, 0x00},
190 {IMX_8BIT, 0x30DE, 0x00},
191 {IMX_8BIT, 0x3102, 0x0C},
192 {IMX_8BIT, 0x3103, 0x33},
193 {IMX_8BIT, 0x3104, 0x18},
194 {IMX_8BIT, 0x3105, 0x00},
195 {IMX_8BIT, 0x3106, 0x65},
196 {IMX_8BIT, 0x3107, 0x00},
197 {IMX_8BIT, 0x3108, 0x06},
198 {IMX_8BIT, 0x3109, 0x04},
199 {IMX_8BIT, 0x310A, 0x04},
200 {IMX_8BIT, 0x315C, 0x3D},
201 {IMX_8BIT, 0x315D, 0x3C},
202 {IMX_8BIT, 0x316E, 0x3E},
203 {IMX_8BIT, 0x316F, 0x3D},
205 {IMX_8BIT, 0x3304, 0x07}, /* RGTLPX[5:0] TLPX */
206 {IMX_8BIT, 0x3305, 0x06}, /* RGTCLKPREPARE[3:0] TCLK-PREPARE */
207 {IMX_8BIT, 0x3306, 0x19}, /* RGTCLKZERO[5:0] TCLK-ZERO */
208 {IMX_8BIT, 0x3307, 0x03}, /* RGTCLKPRE[5:0] TCLK-PRE */
209 {IMX_8BIT, 0x3308, 0x0F}, /* RGTCLKPOST[5:0] TCLK-POST */
210 {IMX_8BIT, 0x3309, 0x07}, /* RGTCLKTRAIL[3:0] TCLK-TRAIL */
211 {IMX_8BIT, 0x330A, 0x0C}, /* RGTHSEXIT[5:0] THS-EXIT */
212 {IMX_8BIT, 0x330B, 0x06}, /* RGTHSPREPARE[3:0] THS-PREPARE */
213 {IMX_8BIT, 0x330C, 0x0B}, /* RGTHSZERO[5:0] THS-ZERO */
214 {IMX_8BIT, 0x330D, 0x07}, /* RGTHSTRAIL[3:0] THS-TRAIL */
215 {IMX_8BIT, 0x330E, 0x03},
216 {IMX_8BIT, 0x3318, 0x62},
217 {IMX_8BIT, 0x3322, 0x09},
218 {IMX_8BIT, 0x3342, 0x00},
219 {IMX_8BIT, 0x3348, 0xE0},
221 {IMX_TOK_TERM, 0, 0},
224 static struct imx_reg imx132_1636x1096_30fps[] = {
225 GROUPED_PARAMETER_HOLD_ENABLE,
226 /* Global Settings */
227 {IMX_8BIT, 0x3087, 0x53},
228 {IMX_8BIT, 0x308B, 0x5A},
229 {IMX_8BIT, 0x3094, 0x11},
230 {IMX_8BIT, 0x309D, 0xA4},
231 {IMX_8BIT, 0x30AA, 0x01},
232 {IMX_8BIT, 0x30C6, 0x00},
233 {IMX_8BIT, 0x30C7, 0x00},
234 {IMX_8BIT, 0x3118, 0x2F},
235 {IMX_8BIT, 0x312A, 0x00},
236 {IMX_8BIT, 0x312B, 0x0B},
237 {IMX_8BIT, 0x312C, 0x0B},
238 {IMX_8BIT, 0x312D, 0x13},
240 {IMX_8BIT, 0x0305, 0x02},
241 {IMX_8BIT, 0x0307, 0x50},
242 {IMX_8BIT, 0x30A4, 0x02},
243 {IMX_8BIT, 0x303C, 0x3C},
245 {IMX_8BIT, 0x0344, 0x00},
246 {IMX_8BIT, 0x0345, 0xAA},
247 {IMX_8BIT, 0x0346, 0x00},
248 {IMX_8BIT, 0x0347, 0x32},
249 {IMX_8BIT, 0x0348, 0x07},
250 {IMX_8BIT, 0x0349, 0x0D},
251 {IMX_8BIT, 0x034A, 0x04},
252 {IMX_8BIT, 0x034B, 0x79},
253 {IMX_8BIT, 0x034C, 0x06},
254 {IMX_8BIT, 0x034D, 0x64},
255 {IMX_8BIT, 0x034E, 0x04},
256 {IMX_8BIT, 0x034F, 0x48},
257 {IMX_8BIT, 0x0381, 0x01},
258 {IMX_8BIT, 0x0383, 0x01},
259 {IMX_8BIT, 0x0385, 0x01},
260 {IMX_8BIT, 0x0387, 0x01},
261 {IMX_8BIT, 0x303D, 0x10},
262 {IMX_8BIT, 0x303E, 0x5A},
263 {IMX_8BIT, 0x3040, 0x00},
264 {IMX_8BIT, 0x3041, 0x00},
265 {IMX_8BIT, 0x3048, 0x00},
266 {IMX_8BIT, 0x304C, 0x2F},
267 {IMX_8BIT, 0x304D, 0x02},
268 {IMX_8BIT, 0x3064, 0x92},
269 {IMX_8BIT, 0x306A, 0x10},
270 {IMX_8BIT, 0x309B, 0x00},
271 {IMX_8BIT, 0x309E, 0x41},
272 {IMX_8BIT, 0x30A0, 0x10},
273 {IMX_8BIT, 0x30A1, 0x0B},
274 {IMX_8BIT, 0x30B2, 0x00},
275 {IMX_8BIT, 0x30D5, 0x00},
276 {IMX_8BIT, 0x30D6, 0x00},
277 {IMX_8BIT, 0x30D7, 0x00},
278 {IMX_8BIT, 0x30D8, 0x00},
279 {IMX_8BIT, 0x30D9, 0x00},
280 {IMX_8BIT, 0x30DA, 0x00},
281 {IMX_8BIT, 0x30DB, 0x00},
282 {IMX_8BIT, 0x30DC, 0x00},
283 {IMX_8BIT, 0x30DD, 0x00},
284 {IMX_8BIT, 0x30DE, 0x00},
285 {IMX_8BIT, 0x3102, 0x0C},
286 {IMX_8BIT, 0x3103, 0x33},
287 {IMX_8BIT, 0x3104, 0x18},
288 {IMX_8BIT, 0x3105, 0x00},
289 {IMX_8BIT, 0x3106, 0x65},
290 {IMX_8BIT, 0x3107, 0x00},
291 {IMX_8BIT, 0x3108, 0x06},
292 {IMX_8BIT, 0x3109, 0x04},
293 {IMX_8BIT, 0x310A, 0x04},
294 {IMX_8BIT, 0x315C, 0x3D},
295 {IMX_8BIT, 0x315D, 0x3C},
296 {IMX_8BIT, 0x316E, 0x3E},
297 {IMX_8BIT, 0x316F, 0x3D},
299 {IMX_8BIT, 0x3304, 0x07}, /* RGTLPX[5:0] TLPX */
300 {IMX_8BIT, 0x3305, 0x06}, /* RGTCLKPREPARE[3:0] TCLK-PREPARE */
301 {IMX_8BIT, 0x3306, 0x19}, /* RGTCLKZERO[5:0] TCLK-ZERO */
302 {IMX_8BIT, 0x3307, 0x03}, /* RGTCLKPRE[5:0] TCLK-PRE */
303 {IMX_8BIT, 0x3308, 0x0F}, /* RGTCLKPOST[5:0] TCLK-POST */
304 {IMX_8BIT, 0x3309, 0x07}, /* RGTCLKTRAIL[3:0] TCLK-TRAIL */
305 {IMX_8BIT, 0x330A, 0x0C}, /* RGTHSEXIT[5:0] THS-EXIT */
306 {IMX_8BIT, 0x330B, 0x06}, /* RGTHSPREPARE[3:0] THS-PREPARE */
307 {IMX_8BIT, 0x330C, 0x0B}, /* RGTHSZERO[5:0] THS-ZERO */
308 {IMX_8BIT, 0x330D, 0x07}, /* RGTHSTRAIL[3:0] THS-TRAIL */
309 {IMX_8BIT, 0x330E, 0x03},
310 {IMX_8BIT, 0x3318, 0x62},
311 {IMX_8BIT, 0x3322, 0x09},
312 {IMX_8BIT, 0x3342, 0x00},
313 {IMX_8BIT, 0x3348, 0xE0},
315 {IMX_TOK_TERM, 0, 0},
318 static struct imx_reg imx132_1336x1096_30fps[] = {
319 GROUPED_PARAMETER_HOLD_ENABLE,
320 /* Global Settings */
321 {IMX_8BIT, 0x3087, 0x53},
322 {IMX_8BIT, 0x308B, 0x5A},
323 {IMX_8BIT, 0x3094, 0x11},
324 {IMX_8BIT, 0x309D, 0xA4},
325 {IMX_8BIT, 0x30AA, 0x01},
326 {IMX_8BIT, 0x30C6, 0x00},
327 {IMX_8BIT, 0x30C7, 0x00},
328 {IMX_8BIT, 0x3118, 0x2F},
329 {IMX_8BIT, 0x312A, 0x00},
330 {IMX_8BIT, 0x312B, 0x0B},
331 {IMX_8BIT, 0x312C, 0x0B},
332 {IMX_8BIT, 0x312D, 0x13},
334 {IMX_8BIT, 0x0305, 0x02},
335 {IMX_8BIT, 0x0307, 0x50},
336 {IMX_8BIT, 0x30A4, 0x02},
337 {IMX_8BIT, 0x303C, 0x3C},
339 {IMX_8BIT, 0x0344, 0x01},
340 {IMX_8BIT, 0x0345, 0x2C},
341 {IMX_8BIT, 0x0346, 0x00},
342 {IMX_8BIT, 0x0347, 0x32},
343 {IMX_8BIT, 0x0348, 0x06},
344 {IMX_8BIT, 0x0349, 0x77},
345 {IMX_8BIT, 0x034A, 0x04},
346 {IMX_8BIT, 0x034B, 0x79},
347 {IMX_8BIT, 0x034C, 0x05},
348 {IMX_8BIT, 0x034D, 0x38},
349 {IMX_8BIT, 0x034E, 0x04},
350 {IMX_8BIT, 0x034F, 0x48},
351 {IMX_8BIT, 0x0381, 0x01},
352 {IMX_8BIT, 0x0383, 0x01},
353 {IMX_8BIT, 0x0385, 0x01},
354 {IMX_8BIT, 0x0387, 0x01},
355 {IMX_8BIT, 0x303D, 0x10},
356 {IMX_8BIT, 0x303E, 0x5A},
357 {IMX_8BIT, 0x3040, 0x00},
358 {IMX_8BIT, 0x3041, 0x00},
359 {IMX_8BIT, 0x3048, 0x00},
360 {IMX_8BIT, 0x304C, 0x2F},
361 {IMX_8BIT, 0x304D, 0x02},
362 {IMX_8BIT, 0x3064, 0x92},
363 {IMX_8BIT, 0x306A, 0x10},
364 {IMX_8BIT, 0x309B, 0x00},
365 {IMX_8BIT, 0x309E, 0x41},
366 {IMX_8BIT, 0x30A0, 0x10},
367 {IMX_8BIT, 0x30A1, 0x0B},
368 {IMX_8BIT, 0x30B2, 0x00},
369 {IMX_8BIT, 0x30D5, 0x00},
370 {IMX_8BIT, 0x30D6, 0x00},
371 {IMX_8BIT, 0x30D7, 0x00},
372 {IMX_8BIT, 0x30D8, 0x00},
373 {IMX_8BIT, 0x30D9, 0x00},
374 {IMX_8BIT, 0x30DA, 0x00},
375 {IMX_8BIT, 0x30DB, 0x00},
376 {IMX_8BIT, 0x30DC, 0x00},
377 {IMX_8BIT, 0x30DD, 0x00},
378 {IMX_8BIT, 0x30DE, 0x00},
379 {IMX_8BIT, 0x3102, 0x0C},
380 {IMX_8BIT, 0x3103, 0x33},
381 {IMX_8BIT, 0x3104, 0x18},
382 {IMX_8BIT, 0x3105, 0x00},
383 {IMX_8BIT, 0x3106, 0x65},
384 {IMX_8BIT, 0x3107, 0x00},
385 {IMX_8BIT, 0x3108, 0x06},
386 {IMX_8BIT, 0x3109, 0x04},
387 {IMX_8BIT, 0x310A, 0x04},
388 {IMX_8BIT, 0x315C, 0x3D},
389 {IMX_8BIT, 0x315D, 0x3C},
390 {IMX_8BIT, 0x316E, 0x3E},
391 {IMX_8BIT, 0x316F, 0x3D},
393 {IMX_8BIT, 0x3304, 0x07}, /* RGTLPX[5:0] TLPX */
394 {IMX_8BIT, 0x3305, 0x06}, /* RGTCLKPREPARE[3:0] TCLK-PREPARE */
395 {IMX_8BIT, 0x3306, 0x19}, /* RGTCLKZERO[5:0] TCLK-ZERO */
396 {IMX_8BIT, 0x3307, 0x03}, /* RGTCLKPRE[5:0] TCLK-PRE */
397 {IMX_8BIT, 0x3308, 0x0F}, /* RGTCLKPOST[5:0] TCLK-POST */
398 {IMX_8BIT, 0x3309, 0x07}, /* RGTCLKTRAIL[3:0] TCLK-TRAIL */
399 {IMX_8BIT, 0x330A, 0x0C}, /* RGTHSEXIT[5:0] THS-EXIT */
400 {IMX_8BIT, 0x330B, 0x06}, /* RGTHSPREPARE[3:0] THS-PREPARE */
401 {IMX_8BIT, 0x330C, 0x0B}, /* RGTHSZERO[5:0] THS-ZERO */
402 {IMX_8BIT, 0x330D, 0x07}, /* RGTHSTRAIL[3:0] THS-TRAIL */
403 {IMX_8BIT, 0x330E, 0x03},
404 {IMX_8BIT, 0x3318, 0x62},
405 {IMX_8BIT, 0x3322, 0x09},
406 {IMX_8BIT, 0x3342, 0x00},
407 {IMX_8BIT, 0x3348, 0xE0},
409 {IMX_TOK_TERM, 0, 0},
412 /********************** settings for imx - reference *********************/
413 static struct imx_reg const imx132_init_settings[] = {
415 { IMX_8BIT, 0x0100, 0x00 },
416 { IMX_8BIT, 0x0103, 0x01 },
417 { IMX_TOK_DELAY, 0, 5},
418 { IMX_8BIT, 0x0103, 0x00 },
419 GROUPED_PARAMETER_HOLD_ENABLE,
420 /* Global Settings */
421 {IMX_8BIT, 0x3087, 0x53},
422 {IMX_8BIT, 0x308B, 0x5A},
423 {IMX_8BIT, 0x3094, 0x11},
424 {IMX_8BIT, 0x309D, 0xA4},
425 {IMX_8BIT, 0x30AA, 0x01},
426 {IMX_8BIT, 0x30C6, 0x00},
427 {IMX_8BIT, 0x30C7, 0x00},
428 {IMX_8BIT, 0x3118, 0x2F},
429 {IMX_8BIT, 0x312A, 0x00},
430 {IMX_8BIT, 0x312B, 0x0B},
431 {IMX_8BIT, 0x312C, 0x0B},
432 {IMX_8BIT, 0x312D, 0x13},
433 GROUPED_PARAMETER_HOLD_DISABLE,
434 { IMX_TOK_TERM, 0, 0}
437 struct imx_resolution imx132_res_preview[] = {
439 .desc = "imx132_1080p_30fps",
440 .regs = imx132_1080p_30fps,
446 .pixels_per_line = 0x08F2,
447 .lines_per_frame = 0x045C,
460 struct imx_resolution imx132_res_still[] = {
462 .desc = "imx132_1080p_30fps",
463 .regs = imx132_1080p_30fps,
469 .pixels_per_line = 0x08F2,
470 .lines_per_frame = 0x045C,
483 struct imx_resolution imx132_res_video[] = {
485 .desc = "imx132_1336x1096_30fps",
486 .regs = imx132_1336x1096_30fps,
492 .pixels_per_line = 0x08F2,
493 .lines_per_frame = 0x045C,
505 .desc = "imx132_1456x1096_30fps",
506 .regs = imx132_1456x1096_30fps,
512 .pixels_per_line = 0x08F2,
513 .lines_per_frame = 0x045C,
525 .desc = "imx132_1636x1096_30fps",
526 .regs = imx132_1636x1096_30fps,
532 .pixels_per_line = 0x08F2,
533 .lines_per_frame = 0x045C,
545 .desc = "imx132_1080p_30fps",
546 .regs = imx132_1080p_30fps,
552 .pixels_per_line = 0x08F2,
553 .lines_per_frame = 0x045C,