GNU Linux-libre 4.14.290-gnu1
[releases.git] / drivers / staging / media / atomisp / i2c / imx / imx132.h
1 /*
2  * Support for Sony IMX camera sensor.
3  *
4  * Copyright (c) 2013 Intel Corporation. All Rights Reserved.
5  *
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.
9  *
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.
14  *
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
18  * 02110-1301, USA.
19  *
20  */
21
22 #ifndef __IMX132_H__
23 #define __IMX132_H__
24 #include "common.h"
25
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
31
32 #define IMX132_2LANES_GAINFACT                  2096    /* 524/256 * 2^10 */
33 #define IMX132_2LANES_GAINFACT_SHIFT            10
34
35 /********************** settings for imx from vendor*********************/
36 static struct imx_reg imx132_1080p_30fps[] = {
37         GROUPED_PARAMETER_HOLD_ENABLE,
38         /* Global Settings */
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},
51         /* PLL setting */
52         {IMX_8BIT, 0x0305, 0x02},
53         {IMX_8BIT, 0x0307, 0x50},
54         {IMX_8BIT, 0x30A4, 0x02},
55         {IMX_8BIT, 0x303C, 0x3C},
56         /* Mode setting */
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},
110         /* Global timing */
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},
126
127         {IMX_TOK_TERM, 0, 0},
128 };
129
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},
145         /* PLL setting */
146         {IMX_8BIT, 0x0305, 0x02},
147         {IMX_8BIT, 0x0307, 0x50},
148         {IMX_8BIT, 0x30A4, 0x02},
149         {IMX_8BIT, 0x303C, 0x3C},
150         /* Mode setting */
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},
204         /* Global timing */
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},
220
221         {IMX_TOK_TERM, 0, 0},
222 };
223
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},
239         /* PLL setting */
240         {IMX_8BIT, 0x0305, 0x02},
241         {IMX_8BIT, 0x0307, 0x50},
242         {IMX_8BIT, 0x30A4, 0x02},
243         {IMX_8BIT, 0x303C, 0x3C},
244         /* Mode setting */
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},
298         /* Global timing */
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},
314
315         {IMX_TOK_TERM, 0, 0},
316 };
317
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},
333         /* PLL setting */
334         {IMX_8BIT, 0x0305, 0x02},
335         {IMX_8BIT, 0x0307, 0x50},
336         {IMX_8BIT, 0x30A4, 0x02},
337         {IMX_8BIT, 0x303C, 0x3C},
338         /* Mode setting */
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},
392         /* Global timing */
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},
408
409         {IMX_TOK_TERM, 0, 0},
410 };
411
412 /********************** settings for imx - reference *********************/
413 static struct imx_reg const imx132_init_settings[] = {
414         /* sw reset */
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}
435 };
436
437 struct imx_resolution imx132_res_preview[] = {
438         {
439                 .desc = "imx132_1080p_30fps",
440                 .regs = imx132_1080p_30fps,
441                 .width = 1936,
442                 .height = 1096,
443                 .fps_options = {
444                         {
445                                 .fps = 30,
446                                 .pixels_per_line = 0x08F2,
447                                 .lines_per_frame = 0x045C,
448                         },
449                         {
450                         }
451                 },
452                 .bin_factor_x = 0,
453                 .bin_factor_y = 0,
454                 .used = 0,
455                 .skip_frames = 2,
456                 .mipi_freq = 384000,
457         },
458 };
459
460 struct imx_resolution imx132_res_still[] = {
461         {
462                 .desc = "imx132_1080p_30fps",
463                 .regs = imx132_1080p_30fps,
464                 .width = 1936,
465                 .height = 1096,
466                 .fps_options = {
467                         {
468                                 .fps = 30,
469                                 .pixels_per_line = 0x08F2,
470                                 .lines_per_frame = 0x045C,
471                         },
472                         {
473                         }
474                 },
475                 .bin_factor_x = 0,
476                 .bin_factor_y = 0,
477                 .used = 0,
478                 .skip_frames = 2,
479                 .mipi_freq = 384000,
480         },
481 };
482
483 struct imx_resolution imx132_res_video[] = {
484         {
485                 .desc = "imx132_1336x1096_30fps",
486                 .regs = imx132_1336x1096_30fps,
487                 .width = 1336,
488                 .height = 1096,
489                 .fps_options = {
490                         {
491                                 .fps = 30,
492                                 .pixels_per_line = 0x08F2,
493                                 .lines_per_frame = 0x045C,
494                         },
495                         {
496                         }
497                 },
498                 .bin_factor_x = 0,
499                 .bin_factor_y = 0,
500                 .used = 0,
501                 .skip_frames = 2,
502                 .mipi_freq = 384000,
503         },
504         {
505                 .desc = "imx132_1456x1096_30fps",
506                 .regs = imx132_1456x1096_30fps,
507                 .width = 1456,
508                 .height = 1096,
509                 .fps_options = {
510                         {
511                                 .fps = 30,
512                                 .pixels_per_line = 0x08F2,
513                                 .lines_per_frame = 0x045C,
514                         },
515                         {
516                         }
517                 },
518                 .bin_factor_x = 0,
519                 .bin_factor_y = 0,
520                 .used = 0,
521                 .skip_frames = 2,
522                 .mipi_freq = 384000,
523         },
524         {
525                 .desc = "imx132_1636x1096_30fps",
526                 .regs = imx132_1636x1096_30fps,
527                 .width = 1636,
528                 .height = 1096,
529                 .fps_options = {
530                         {
531                                 .fps = 30,
532                                 .pixels_per_line = 0x08F2,
533                                 .lines_per_frame = 0x045C,
534                         },
535                         {
536                         }
537                 },
538                 .bin_factor_x = 0,
539                 .bin_factor_y = 0,
540                 .used = 0,
541                 .skip_frames = 2,
542                 .mipi_freq = 384000,
543         },
544         {
545                 .desc = "imx132_1080p_30fps",
546                 .regs = imx132_1080p_30fps,
547                 .width = 1936,
548                 .height = 1096,
549                 .fps_options = {
550                         {
551                                 .fps = 30,
552                                 .pixels_per_line = 0x08F2,
553                                 .lines_per_frame = 0x045C,
554                         },
555                         {
556                         }
557                 },
558                 .bin_factor_x = 0,
559                 .bin_factor_y = 0,
560                 .used = 0,
561                 .skip_frames = 2,
562                 .mipi_freq = 384000,
563         },
564 };
565 #endif
566