GNU Linux-libre 4.14.332-gnu1
[releases.git] / drivers / staging / media / atomisp / i2c / imx / imx208.h
1 /*
2  * Support for Sony IMX camera sensor.
3  *
4  * Copyright (c) 2014 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 __IMX208_H__
23 #define __IMX208_H__
24 #include "common.h"
25
26 /********************** settings for imx from vendor*********************/
27 static struct imx_reg imx208_1080p_30fps[] = {
28         GROUPED_PARAMETER_HOLD_ENABLE,
29         {IMX_8BIT, 0x0305, 0x02},    /* PREPLLCK DIV */
30         {IMX_8BIT, 0x0307, 0x54},    /* PLL MPY */
31         {IMX_8BIT, 0x303C, 0x3C},    /* PLL oscillation stable wait time */
32         {IMX_8BIT, 0x30A4, 0x02},    /* Default */
33         {IMX_8BIT, 0x0112, 0x0A},    /* CCP_data_format : RAW 10bit */
34         {IMX_8BIT, 0x0113, 0x0A},    /* CCP_data_format :  RAW 10bit */
35         {IMX_8BIT, 0x0340, 0x04},    /* frame length line [15:8] */
36         {IMX_8BIT, 0x0341, 0xAA},    /* frame length line [7:0] */
37         {IMX_8BIT, 0x0342, 0x08},    /* line length pck [15:8] */
38         {IMX_8BIT, 0x0343, 0xC8},    /* line length pck [7:0] */
39         {IMX_8BIT, 0x0344, 0x00},    /* x_addr_start[12:8] */
40         {IMX_8BIT, 0x0345, 0x00},    /* x_addr_start[7:0] */
41         {IMX_8BIT, 0x0346, 0x00},    /* y_addr_start[12:8] */
42         {IMX_8BIT, 0x0347, 0x00},    /* y_addr_start[7:0] */
43         {IMX_8BIT, 0x0348, 0x07},    /* x_addr_end [12:8] */
44         {IMX_8BIT, 0x0349, 0x8F},    /* x_addr_end [7:0] */
45         {IMX_8BIT, 0x034A, 0x04},    /* y_addr_end [12:8] */
46         {IMX_8BIT, 0x034B, 0x47},    /* y_addr_end [7:0] */
47         {IMX_8BIT, 0x034C, 0x07},    /* x_output_size [ 12:8] */
48         {IMX_8BIT, 0x034D, 0x90},    /* x_output_size [7:0] */
49         {IMX_8BIT, 0x034E, 0x04},    /* y_output_size [11:8] */
50         {IMX_8BIT, 0x034F, 0x48},    /* y_output_size [7:0] */
51         {IMX_8BIT, 0x0381, 0x01},    /* x_even_inc */
52         {IMX_8BIT, 0x0383, 0x01},    /* x_odd_inc */
53         {IMX_8BIT, 0x0385, 0x01},    /* y_even_inc */
54         {IMX_8BIT, 0x0387, 0x01},    /* y_odd_inc */
55         {IMX_8BIT, 0x3048, 0x00},    /* VMODEFDS  binning operation */
56         {IMX_8BIT, 0x304E, 0x0A},    /* VTPXCK_DIV */
57         {IMX_8BIT, 0x3050, 0x02},    /* OPSYCK_DIV */
58         {IMX_8BIT, 0x309B, 0x00},    /* RGDAFDSUMEN */
59         {IMX_8BIT, 0x30D5, 0x00},    /* HADDEN ( binning ) */
60         {IMX_8BIT, 0x3301, 0x01},    /* RGLANESEL */
61         {IMX_8BIT, 0x3318, 0x61},    /* MIPI Global Timing */
62         {IMX_8BIT, 0x0202, 0x01},    /* coarse integration time */
63         {IMX_8BIT, 0x0203, 0x90},    /* coarse integration time */
64         {IMX_8BIT, 0x0205, 0x00},    /* ana global gain */
65
66         {IMX_TOK_TERM, 0, 0},
67 };
68
69 static struct imx_reg imx208_1296x736_30fps[] = {
70         GROUPED_PARAMETER_HOLD_ENABLE,
71         {IMX_8BIT, 0x0305, 0x02},    /* PREPLLCK DIV */
72         {IMX_8BIT, 0x0307, 0x54},    /* PLL MPY */
73         {IMX_8BIT, 0x303C, 0x3C},    /* PLL oscillation stable wait time */
74         {IMX_8BIT, 0x30A4, 0x02},    /* Default */
75         {IMX_8BIT, 0x0112, 0x0A},    /* CCP_data_format : RAW 10bit */
76         {IMX_8BIT, 0x0113, 0x0A},    /* CCP_data_format :  RAW 10bit */
77         {IMX_8BIT, 0x0340, 0x04},    /* frame length line [15:8] */
78         {IMX_8BIT, 0x0341, 0xAA},    /* frame length line [7:0] */
79         {IMX_8BIT, 0x0342, 0x08},    /* line length pck [15:8] */
80         {IMX_8BIT, 0x0343, 0xC8},    /* line length pck [7:0] */
81         {IMX_8BIT, 0x0344, 0x01},    /* x_addr_start[12:8] */
82         {IMX_8BIT, 0x0345, 0x40},    /* x_addr_start[7:0] */
83         {IMX_8BIT, 0x0346, 0x00},    /* y_addr_start[12:8] */
84         {IMX_8BIT, 0x0347, 0xB4},    /* y_addr_start[7:0] */
85         {IMX_8BIT, 0x0348, 0x06},    /* x_addr_end [12:8] */
86         {IMX_8BIT, 0x0349, 0x4F},    /* x_addr_end [7:0] */
87         {IMX_8BIT, 0x034A, 0x03},    /* y_addr_end [12:8] */
88         {IMX_8BIT, 0x034B, 0x93},    /* y_addr_end [7:0] */
89         {IMX_8BIT, 0x034C, 0x05},    /* x_output_size [ 12:8] */
90         {IMX_8BIT, 0x034D, 0x10},    /* x_output_size [7:0] */
91         {IMX_8BIT, 0x034E, 0x02},    /* y_output_size [11:8] */
92         {IMX_8BIT, 0x034F, 0xE0},    /* y_output_size [7:0] */
93         {IMX_8BIT, 0x0381, 0x01},    /* x_even_inc */
94         {IMX_8BIT, 0x0383, 0x01},    /* x_odd_inc */
95         {IMX_8BIT, 0x0385, 0x01},    /* y_even_inc */
96         {IMX_8BIT, 0x0387, 0x01},    /* y_odd_inc */
97         {IMX_8BIT, 0x3048, 0x00},    /* VMODEFDS  binning operation */
98         {IMX_8BIT, 0x304E, 0x0A},    /* VTPXCK_DIV */
99         {IMX_8BIT, 0x3050, 0x02},    /* OPSYCK_DIV */
100         {IMX_8BIT, 0x309B, 0x00},    /* RGDAFDSUMEN */
101         {IMX_8BIT, 0x30D5, 0x00},    /* HADDEN ( binning ) */
102         {IMX_8BIT, 0x3301, 0x01},    /* RGLANESEL */
103         {IMX_8BIT, 0x3318, 0x61},    /* MIPI Global Timing */
104         {IMX_8BIT, 0x0202, 0x01},    /* coarse integration time */
105         {IMX_8BIT, 0x0203, 0x90},    /* coarse integration time */
106         {IMX_8BIT, 0x0205, 0x00},    /* ana global gain */
107
108         {IMX_TOK_TERM, 0, 0},
109 };
110
111 static struct imx_reg imx208_1296x976_30fps[] = {
112         GROUPED_PARAMETER_HOLD_ENABLE,
113         {IMX_8BIT, 0x0305, 0x02},    /* PREPLLCK DIV */
114         {IMX_8BIT, 0x0307, 0x54},    /* PLL MPY */
115         {IMX_8BIT, 0x303C, 0x3C},    /* PLL oscillation stable wait time */
116         {IMX_8BIT, 0x30A4, 0x02},    /* Default */
117         {IMX_8BIT, 0x0112, 0x0A},    /* CCP_data_format : RAW 10bit */
118         {IMX_8BIT, 0x0113, 0x0A},    /* CCP_data_format :  RAW 10bit */
119         {IMX_8BIT, 0x0340, 0x04},    /* frame length line [15:8] */
120         {IMX_8BIT, 0x0341, 0xAA},    /* frame length line [7:0] */
121         {IMX_8BIT, 0x0342, 0x08},    /* line length pck [15:8] */
122         {IMX_8BIT, 0x0343, 0xC8},    /* line length pck [7:0] */
123         {IMX_8BIT, 0x0344, 0x01},    /* x_addr_start[12:8] */
124         {IMX_8BIT, 0x0345, 0x40},    /* x_addr_start[7:0] */
125         {IMX_8BIT, 0x0346, 0x00},    /* y_addr_start[12:8] */
126         {IMX_8BIT, 0x0347, 0x3C},    /* y_addr_start[7:0] */
127         {IMX_8BIT, 0x0348, 0x06},    /* x_addr_end [12:8] */
128         {IMX_8BIT, 0x0349, 0x4F},    /* x_addr_end [7:0] */
129         {IMX_8BIT, 0x034A, 0x04},    /* y_addr_end [12:8] */
130         {IMX_8BIT, 0x034B, 0x0B},    /* y_addr_end [7:0] */
131         {IMX_8BIT, 0x034C, 0x05},    /* x_output_size [ 12:8] */
132         {IMX_8BIT, 0x034D, 0x10},    /* x_output_size [7:0] */
133         {IMX_8BIT, 0x034E, 0x03},    /* y_output_size [11:8] */
134         {IMX_8BIT, 0x034F, 0xD0},    /* y_output_size [7:0] */
135         {IMX_8BIT, 0x0381, 0x01},    /* x_even_inc */
136         {IMX_8BIT, 0x0383, 0x01},    /* x_odd_inc */
137         {IMX_8BIT, 0x0385, 0x01},    /* y_even_inc */
138         {IMX_8BIT, 0x0387, 0x01},    /* y_odd_inc */
139         {IMX_8BIT, 0x3048, 0x00},    /* VMODEFDS  binning operation */
140         {IMX_8BIT, 0x304E, 0x0A},    /* VTPXCK_DIV */
141         {IMX_8BIT, 0x3050, 0x02},    /* OPSYCK_DIV */
142         {IMX_8BIT, 0x309B, 0x00},    /* RGDAFDSUMEN */
143         {IMX_8BIT, 0x30D5, 0x00},    /* HADDEN ( binning ) */
144         {IMX_8BIT, 0x3301, 0x01},    /* RGLANESEL */
145         {IMX_8BIT, 0x3318, 0x61},    /* MIPI Global Timing */
146         {IMX_8BIT, 0x0202, 0x01},    /* coarse integration time */
147         {IMX_8BIT, 0x0203, 0x90},    /* coarse integration time */
148         {IMX_8BIT, 0x0205, 0x00},    /* ana global gain */
149
150         {IMX_TOK_TERM, 0, 0},
151 };
152
153 static struct imx_reg imx208_336x256_30fps[] = {
154         GROUPED_PARAMETER_HOLD_ENABLE,
155         {IMX_8BIT, 0x0305, 0x02},    /* PREPLLCK DIV */
156         {IMX_8BIT, 0x0307, 0x54},    /* PLL MPY */
157         {IMX_8BIT, 0x303C, 0x3C},    /* PLL oscillation stable wait time */
158         {IMX_8BIT, 0x30A4, 0x02},    /* Default */
159         {IMX_8BIT, 0x0112, 0x0A},    /* CCP_data_format : RAW 10bit */
160         {IMX_8BIT, 0x0113, 0x0A},    /* CCP_data_format :  RAW 10bit */
161         {IMX_8BIT, 0x0340, 0x04},    /* frame length line [15:8] */
162         {IMX_8BIT, 0x0341, 0xAA},    /* frame length line [7:0] */
163         {IMX_8BIT, 0x0342, 0x08},    /* line length pck [15:8] */
164         {IMX_8BIT, 0x0343, 0xC8},    /* line length pck [7:0] */
165         {IMX_8BIT, 0x0344, 0x02},    /* x_addr_start[12:8] */
166         {IMX_8BIT, 0x0345, 0x78},    /* x_addr_start[7:0] */
167         {IMX_8BIT, 0x0346, 0x01},    /* y_addr_start[12:8] */
168         {IMX_8BIT, 0x0347, 0x24},    /* y_addr_start[7:0] */
169         {IMX_8BIT, 0x0348, 0x05},    /* x_addr_end [12:8] */
170         {IMX_8BIT, 0x0349, 0x17},    /* x_addr_end [7:0] */
171         {IMX_8BIT, 0x034A, 0x03},    /* y_addr_end [12:8] */
172         {IMX_8BIT, 0x034B, 0x23},    /* y_addr_end [7:0] */
173         {IMX_8BIT, 0x034C, 0x01},    /* x_output_size [ 12:8] */
174         {IMX_8BIT, 0x034D, 0x50},    /* x_output_size [7:0] */
175         {IMX_8BIT, 0x034E, 0x01},    /* y_output_size [11:8] */
176         {IMX_8BIT, 0x034F, 0x00},    /* y_output_size [7:0] */
177         {IMX_8BIT, 0x0381, 0x01},    /* x_even_inc */
178         {IMX_8BIT, 0x0383, 0x03},    /* x_odd_inc */
179         {IMX_8BIT, 0x0385, 0x01},    /* y_even_inc */
180         {IMX_8BIT, 0x0387, 0x03},    /* y_odd_inc */
181         {IMX_8BIT, 0x3048, 0x01},    /* VMODEFDS  binning operation */
182         {IMX_8BIT, 0x304E, 0x0A},    /* VTPXCK_DIV */
183         {IMX_8BIT, 0x3050, 0x02},    /* OPSYCK_DIV */
184         {IMX_8BIT, 0x309B, 0x00},    /* RGDAFDSUMEN */
185         {IMX_8BIT, 0x30D5, 0x03},    /* HADDEN ( binning ) */
186         {IMX_8BIT, 0x3301, 0x01},    /* RGLANESEL */
187         {IMX_8BIT, 0x3318, 0x66},    /* MIPI Global Timing */
188         {IMX_8BIT, 0x0202, 0x01},    /* coarse integration time */
189         {IMX_8BIT, 0x0203, 0x90},    /* coarse integration time */
190         {IMX_8BIT, 0x0205, 0x00},    /* ana global gain */
191
192         {IMX_TOK_TERM, 0, 0},
193 };
194
195 static struct imx_reg imx208_192x160_30fps[] = {
196         GROUPED_PARAMETER_HOLD_ENABLE,
197         {IMX_8BIT, 0x0305, 0x02},    /* PREPLLCK DIV */
198         {IMX_8BIT, 0x0307, 0x54},    /* PLL MPY */
199         {IMX_8BIT, 0x303C, 0x3C},    /* PLL oscillation stable wait time */
200         {IMX_8BIT, 0x30A4, 0x02},    /* Default */
201         {IMX_8BIT, 0x0112, 0x0A},    /* CCP_data_format : RAW 10bit */
202         {IMX_8BIT, 0x0113, 0x0A},    /* CCP_data_format :  RAW 10bit */
203         {IMX_8BIT, 0x0340, 0x04},    /* frame length line [15:8] */
204         {IMX_8BIT, 0x0341, 0xAA},    /* frame length line [7:0] */
205         {IMX_8BIT, 0x0342, 0x08},    /* line length pck [15:8] */
206         {IMX_8BIT, 0x0343, 0xC8},    /* line length pck [7:0] */
207         {IMX_8BIT, 0x0344, 0x02},    /* x_addr_start[12:8] */
208         {IMX_8BIT, 0x0345, 0x48},    /* x_addr_start[7:0] */
209         {IMX_8BIT, 0x0346, 0x00},    /* y_addr_start[12:8] */
210         {IMX_8BIT, 0x0347, 0xE4},    /* y_addr_start[7:0] */
211         {IMX_8BIT, 0x0348, 0x05},    /* x_addr_end [12:8] */
212         {IMX_8BIT, 0x0349, 0x47},    /* x_addr_end [7:0] */
213         {IMX_8BIT, 0x034A, 0x03},    /* y_addr_end [12:8] */
214         {IMX_8BIT, 0x034B, 0x63},    /* y_addr_end [7:0] */
215         {IMX_8BIT, 0x034C, 0x00},    /* x_output_size [ 12:8] */
216         {IMX_8BIT, 0x034D, 0xC0},    /* x_output_size [7:0] */
217         {IMX_8BIT, 0x034E, 0x00},    /* y_output_size [11:8] */
218         {IMX_8BIT, 0x034F, 0xA0},    /* y_output_size [7:0] */
219         {IMX_8BIT, 0x0381, 0x03},    /* x_even_inc */
220         {IMX_8BIT, 0x0383, 0x05},    /* x_odd_inc */
221         {IMX_8BIT, 0x0385, 0x03},    /* y_even_inc */
222         {IMX_8BIT, 0x0387, 0x05},    /* y_odd_inc */
223         {IMX_8BIT, 0x3048, 0x01},    /* VMODEFDS  binning operation */
224         {IMX_8BIT, 0x304E, 0x0A},    /* VTPXCK_DIV */
225         {IMX_8BIT, 0x3050, 0x02},    /* OPSYCK_DIV */
226         {IMX_8BIT, 0x309B, 0x00},    /* RGDAFDSUMEN */
227         {IMX_8BIT, 0x30D5, 0x03},    /* HADDEN ( binning ) */
228         {IMX_8BIT, 0x3301, 0x11},    /* RGLANESEL */
229         {IMX_8BIT, 0x3318, 0x74},    /* MIPI Global Timing */
230         {IMX_8BIT, 0x0202, 0x01},    /* coarse integration time */
231         {IMX_8BIT, 0x0203, 0x90},    /* coarse integration time */
232         {IMX_8BIT, 0x0205, 0x00},    /* ana global gain */
233
234         {IMX_TOK_TERM, 0, 0},
235 };
236 /********************** settings for imx - reference *********************/
237 static struct imx_reg const imx208_init_settings[] = {
238         { IMX_TOK_TERM, 0, 0}
239 };
240
241 struct imx_resolution imx208_res_preview[] = {
242         {
243                 .desc = "imx208_1080p_30fps",
244                 .regs = imx208_1080p_30fps,
245                 .width = 1936,
246                 .height = 1096,
247                 .fps_options = {
248                         {
249                                 .fps = 30,
250                                 .pixels_per_line = 0x08C8,
251                                 .lines_per_frame = 0x04AA,
252                         },
253                         {
254                         }
255                 },
256                 .bin_factor_x = 1,
257                 .bin_factor_y = 1,
258                 .used = 0,
259                 .skip_frames = 2,
260                 .mipi_freq = 403200,
261         },
262         {
263                 .desc = "imx208_1296x976_30fps",
264                 .regs = imx208_1296x976_30fps,
265                 .width = 1296,
266                 .height = 976,
267                 .fps_options = {
268                         {
269                                 .fps = 30,
270                                 .pixels_per_line = 0x08C8,
271                                 .lines_per_frame = 0x04AA,
272                         },
273                         {
274                         }
275                 },
276                 .bin_factor_x = 1,
277                 .bin_factor_y = 1,
278                 .used = 0,
279                 .skip_frames = 2,
280                 .mipi_freq = 403200,
281         },
282         {
283                 .desc = "imx208_1296x736_30fps",
284                 .regs = imx208_1296x736_30fps,
285                 .width = 1296,
286                 .height = 736,
287                 .fps_options = {
288                         {
289                                 .fps = 30,
290                                 .pixels_per_line = 0x08C8,
291                                 .lines_per_frame = 0x04AA,
292                         },
293                         {
294                         }
295                 },
296                 .bin_factor_x = 1,
297                 .bin_factor_y = 1,
298                 .used = 0,
299                 .skip_frames = 2,
300                 .mipi_freq = 403200,
301         },
302         {
303                 .desc = "imx208_336x256_30fps",
304                 .regs = imx208_336x256_30fps,
305                 .width = 336,
306                 .height = 256,
307                 .fps_options = {
308                         {
309                                 .fps = 30,
310                                 .pixels_per_line = 0x08C8,
311                                 .lines_per_frame = 0x04AA,
312                         },
313                         {
314                         }
315                 },
316                 .bin_factor_x = 2,
317                 .bin_factor_y = 2,
318                 .used = 0,
319                 .skip_frames = 2,
320                 .mipi_freq = 201600,
321         },
322         {
323                 .desc = "imx208_192x160_30fps",
324                 .regs = imx208_192x160_30fps,
325                 .width = 192,
326                 .height = 160,
327                 .fps_options = {
328                         {
329                                 .fps = 30,
330                                 .pixels_per_line = 0x08C8,
331                                 .lines_per_frame = 0x04AA,
332                         },
333                         {
334                         }
335                 },
336                 .bin_factor_x = 4,
337                 .bin_factor_y = 4,
338                 .used = 0,
339                 .skip_frames = 2,
340                 .mipi_freq = 100800,
341         },
342 };
343
344 struct imx_resolution imx208_res_still[] = {
345         {
346                 .desc = "imx208_1080p_30fps",
347                 .regs = imx208_1080p_30fps,
348                 .width = 1936,
349                 .height = 1096,
350                 .fps_options = {
351                         {
352                                 .fps = 30,
353                                 .pixels_per_line = 0x08C8,
354                                 .lines_per_frame = 0x04AA,
355                         },
356                         {
357                         }
358                 },
359                 .bin_factor_x = 1,
360                 .bin_factor_y = 1,
361                 .used = 0,
362                 .skip_frames = 2,
363                 .mipi_freq = 403200,
364         },
365         {
366                 .desc = "imx208_1296x976_30fps",
367                 .regs = imx208_1296x976_30fps,
368                 .width = 1296,
369                 .height = 976,
370                 .fps_options = {
371                         {
372                                 .fps = 30,
373                                 .pixels_per_line = 0x08C8,
374                                 .lines_per_frame = 0x04AA,
375                         },
376                         {
377                         }
378                 },
379                 .bin_factor_x = 1,
380                 .bin_factor_y = 1,
381                 .used = 0,
382                 .skip_frames = 2,
383                 .mipi_freq = 403200,
384         },
385         {
386                 .desc = "imx208_1296x736_30fps",
387                 .regs = imx208_1296x736_30fps,
388                 .width = 1296,
389                 .height = 736,
390                 .fps_options = {
391                         {
392                                 .fps = 30,
393                                 .pixels_per_line = 0x08C8,
394                                 .lines_per_frame = 0x04AA,
395                         },
396                         {
397                         }
398                 },
399                 .bin_factor_x = 1,
400                 .bin_factor_y = 1,
401                 .used = 0,
402                 .skip_frames = 2,
403                 .mipi_freq = 403200,
404         },
405         {
406                 .desc = "imx208_336x256_30fps",
407                 .regs = imx208_336x256_30fps,
408                 .width = 336,
409                 .height = 256,
410                 .fps_options = {
411                         {
412                                 .fps = 30,
413                                 .pixels_per_line = 0x08C8,
414                                 .lines_per_frame = 0x04AA,
415                         },
416                         {
417                         }
418                 },
419                 .bin_factor_x = 2,
420                 .bin_factor_y = 2,
421                 .used = 0,
422                 .skip_frames = 2,
423                 .mipi_freq = 201600,
424         },
425         {
426                 .desc = "imx208_192x160_30fps",
427                 .regs = imx208_192x160_30fps,
428                 .width = 192,
429                 .height = 160,
430                 .fps_options = {
431                         {
432                                 .fps = 30,
433                                 .pixels_per_line = 0x08C8,
434                                 .lines_per_frame = 0x04AA,
435                         },
436                         {
437                         }
438                 },
439                 .bin_factor_x = 4,
440                 .bin_factor_y = 4,
441                 .used = 0,
442                 .skip_frames = 2,
443                 .mipi_freq = 100800,
444         },
445 };
446
447 struct imx_resolution imx208_res_video[] = {
448         {
449                 .desc = "imx208_1080p_30fps",
450                 .regs = imx208_1080p_30fps,
451                 .width = 1936,
452                 .height = 1096,
453                 .fps_options = {
454                         {
455                                 .fps = 30,
456                                 .pixels_per_line = 0x08C8,
457                                 .lines_per_frame = 0x04AA,
458                         },
459                         {
460                         }
461                 },
462                 .bin_factor_x = 1,
463                 .bin_factor_y = 1,
464                 .used = 0,
465                 .skip_frames = 2,
466                 .mipi_freq = 403200,
467         },
468         {
469                 .desc = "imx208_1296x976_30fps",
470                 .regs = imx208_1296x976_30fps,
471                 .width = 1296,
472                 .height = 976,
473                 .fps_options = {
474                         {
475                                 .fps = 30,
476                                 .pixels_per_line = 0x08C8,
477                                 .lines_per_frame = 0x04AA,
478                         },
479                         {
480                         }
481                 },
482                 .bin_factor_x = 1,
483                 .bin_factor_y = 1,
484                 .used = 0,
485                 .skip_frames = 2,
486                 .mipi_freq = 403200,
487         },
488         {
489                 .desc = "imx208_1296x736_30fps",
490                 .regs = imx208_1296x736_30fps,
491                 .width = 1296,
492                 .height = 736,
493                 .fps_options = {
494                         {
495                                 .fps = 30,
496                                 .pixels_per_line = 0x08C8,
497                                 .lines_per_frame = 0x04AA,
498                         },
499                         {
500                         }
501                 },
502                 .bin_factor_x = 1,
503                 .bin_factor_y = 1,
504                 .used = 0,
505                 .skip_frames = 2,
506                 .mipi_freq = 403200,
507         },
508         {
509                 .desc = "imx208_336x256_30fps",
510                 .regs = imx208_336x256_30fps,
511                 .width = 336,
512                 .height = 256,
513                 .fps_options = {
514                         {
515                                 .fps = 30,
516                                 .pixels_per_line = 0x08C8,
517                                 .lines_per_frame = 0x04AA,
518                         },
519                         {
520                         }
521                 },
522                 .bin_factor_x = 2,
523                 .bin_factor_y = 2,
524                 .used = 0,
525                 .skip_frames = 2,
526                 .mipi_freq = 201600,
527         },
528         {
529                 .desc = "imx208_192x160_30fps",
530                 .regs = imx208_192x160_30fps,
531                 .width = 192,
532                 .height = 160,
533                 .fps_options = {
534                         {
535                                 .fps = 30,
536                                 .pixels_per_line = 0x08C8,
537                                 .lines_per_frame = 0x04AA,
538                         },
539                         {
540                         }
541                 },
542                 .bin_factor_x = 4,
543                 .bin_factor_y = 4,
544                 .used = 0,
545                 .skip_frames = 2,
546                 .mipi_freq = 100800,
547         },
548 };
549 #endif
550