rk3026: i2s add several attempts to double confirm i2s frac effect
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-rk3188 / board-rk3188-u30gt2-camera.c
1 #ifdef CONFIG_VIDEO_RK29
2 #include <plat/rk_camera.h>
3 /* Notes:
4
5 Simple camera device registration:
6
7        new_camera_device(sensor_name,\       // sensor name, it is equal to CONFIG_SENSOR_X
8                           face,\              // sensor face information, it can be back or front
9                           pwdn_io,\           // power down gpio configuration, it is equal to CONFIG_SENSOR_POWERDN_PIN_XX
10                           flash_attach,\      // sensor is attach flash or not
11                           mir,\               // sensor image mirror and flip control information
12                           i2c_chl,\           // i2c channel which the sensor attached in hardware, it is equal to CONFIG_SENSOR_IIC_ADAPTER_ID_X
13                           cif_chl)  \         // cif channel which the sensor attached in hardware, it is equal to CONFIG_SENSOR_CIF_INDEX_X
14
15 Comprehensive camera device registration:
16
17       new_camera_device_ex(sensor_name,\
18                              face,\
19                              ori,\            // sensor orientation, it is equal to CONFIG_SENSOR_ORIENTATION_X
20                              pwr_io,\         // sensor power gpio configuration, it is equal to CONFIG_SENSOR_POWER_PIN_XX
21                              pwr_active,\     // sensor power active level, is equal to CONFIG_SENSOR_RESETACTIVE_LEVEL_X
22                              rst_io,\         // sensor reset gpio configuration, it is equal to CONFIG_SENSOR_RESET_PIN_XX
23                              rst_active,\     // sensor reset active level, is equal to CONFIG_SENSOR_RESETACTIVE_LEVEL_X
24                              pwdn_io,\
25                              pwdn_active,\    // sensor power down active level, is equal to CONFIG_SENSOR_POWERDNACTIVE_LEVEL_X
26                              flash_attach,\
27                              res,\            // sensor resolution, this is real resolution or resoltuion after interpolate
28                              mir,\
29                              i2c_chl,\
30                              i2c_spd,\        // i2c speed , 100000 = 100KHz
31                              i2c_addr,\       // the i2c slave device address for sensor
32                              cif_chl,\
33                              mclk)\           // sensor input clock rate, 24 or 48
34                           
35 */
36 static struct rkcamera_platform_data new_camera[] = { 
37     new_camera_device_ex(RK29_CAM_SENSOR_OV5640,
38                         back,
39                         INVALID_VALUE,
40                         INVALID_VALUE,
41                         INVALID_VALUE,
42                         INVALID_VALUE,
43                         INVALID_VALUE,
44                         RK30_PIN3_PB4,
45                         CONS(RK29_CAM_SENSOR_OV5640,_PWRDN_ACTIVE),
46                         1,
47                         CONS(RK29_CAM_SENSOR_OV5640,_FULL_RESOLUTION),
48                         0x00,
49                         3,
50                         100000,
51                         CONS(RK29_CAM_SENSOR_OV5640,_I2C_ADDR),
52                         0,
53                         24),                        
54     new_camera_device(RK29_CAM_SENSOR_OV2659,
55                         front,
56                         RK30_PIN3_PB5,
57                         0,
58                         0,
59                         3,
60                         0),  
61     new_camera_device(RK29_CAM_SENSOR_GC0308,
62                         front,
63                         RK30_PIN3_PB5,
64                         0,
65                         0,
66                         3,
67                         0),                        
68     new_camera_device_end
69 };
70 /*---------------- Camera Sensor Macro Define Begin  ------------------------*/
71 /*---------------- Camera Sensor Configuration Macro Begin ------------------------*/
72 #define CONFIG_SENSOR_0 RK29_CAM_SENSOR_OV5640                                          /* back camera sensor */
73 #define CONFIG_SENSOR_IIC_ADDR_0                0x00
74 #define CONFIG_SENSOR_IIC_ADAPTER_ID_0    3
75 #define CONFIG_SENSOR_ORIENTATION_0       90
76 #define CONFIG_SENSOR_POWER_PIN_0                 INVALID_GPIO
77 #define CONFIG_SENSOR_RESET_PIN_0                 INVALID_GPIO
78 #define CONFIG_SENSOR_POWERDN_PIN_0       RK30_PIN3_PB4//RK30_PIN3_PB5
79 #define CONFIG_SENSOR_FALSH_PIN_0                 RK30_PIN0_PD7
80 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_0 RK29_CAM_POWERACTIVE_L
81 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_0 RK29_CAM_RESETACTIVE_L
82 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0 RK29_CAM_POWERDNACTIVE_H
83 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_0 RK29_CAM_FLASHACTIVE_H
84
85 #define CONFIG_SENSOR_QCIF_FPS_FIXED_0          15000
86 #define CONFIG_SENSOR_240X160_FPS_FIXED_0   15000
87 #define CONFIG_SENSOR_QVGA_FPS_FIXED_0          15000
88 #define CONFIG_SENSOR_CIF_FPS_FIXED_0           15000
89 #define CONFIG_SENSOR_VGA_FPS_FIXED_0           15000
90 #define CONFIG_SENSOR_480P_FPS_FIXED_0          15000
91 #define CONFIG_SENSOR_SVGA_FPS_FIXED_0          15000
92 #define CONFIG_SENSOR_720P_FPS_FIXED_0          30000
93
94 #define CONFIG_SENSOR_01  RK29_CAM_SENSOR_OV5642                   /* back camera sensor 1 */
95 #define CONFIG_SENSOR_IIC_ADDR_01           0x00
96 #define CONFIG_SENSOR_IIC_ADAPTER_ID_01    4
97 #define CONFIG_SENSOR_ORIENTATION_01       90
98 #define CONFIG_SENSOR_POWER_PIN_01         INVALID_GPIO
99 #define CONFIG_SENSOR_RESET_PIN_01         INVALID_GPIO
100 #define CONFIG_SENSOR_POWERDN_PIN_01       RK30_PIN1_PD6
101 #define CONFIG_SENSOR_FALSH_PIN_01         INVALID_GPIO
102 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_01 RK29_CAM_POWERACTIVE_L
103 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_01 RK29_CAM_RESETACTIVE_L
104 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_01 RK29_CAM_POWERDNACTIVE_H
105 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_01 RK29_CAM_FLASHACTIVE_L
106
107 #define CONFIG_SENSOR_QCIF_FPS_FIXED_01      15000
108 #define CONFIG_SENSOR_240X160_FPS_FIXED_01   15000
109 #define CONFIG_SENSOR_QVGA_FPS_FIXED_01      15000
110 #define CONFIG_SENSOR_CIF_FPS_FIXED_01       15000
111 #define CONFIG_SENSOR_VGA_FPS_FIXED_01       15000
112 #define CONFIG_SENSOR_480P_FPS_FIXED_01      15000
113 #define CONFIG_SENSOR_SVGA_FPS_FIXED_01      15000
114 #define CONFIG_SENSOR_720P_FPS_FIXED_01     30000
115
116 #define CONFIG_SENSOR_02 RK29_CAM_SENSOR_OV5640                      /* back camera sensor 2 */
117 #define CONFIG_SENSOR_IIC_ADDR_02           0x00
118 #define CONFIG_SENSOR_CIF_INDEX_02                    0
119 #define CONFIG_SENSOR_IIC_ADAPTER_ID_02    4
120 #define CONFIG_SENSOR_ORIENTATION_02       90
121 #define CONFIG_SENSOR_POWER_PIN_02         INVALID_GPIO
122 #define CONFIG_SENSOR_RESET_PIN_02         INVALID_GPIO
123 #define CONFIG_SENSOR_POWERDN_PIN_02       INVALID_GPIO
124 #define CONFIG_SENSOR_FALSH_PIN_02         INVALID_GPIO
125 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_02 RK29_CAM_POWERACTIVE_L
126 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_02 RK29_CAM_RESETACTIVE_L
127 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_02 RK29_CAM_POWERDNACTIVE_H
128 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_02 RK29_CAM_FLASHACTIVE_L
129
130 #define CONFIG_SENSOR_QCIF_FPS_FIXED_02      15000
131 #define CONFIG_SENSOR_240X160_FPS_FIXED_02   15000
132 #define CONFIG_SENSOR_QVGA_FPS_FIXED_02      15000
133 #define CONFIG_SENSOR_CIF_FPS_FIXED_02       15000
134 #define CONFIG_SENSOR_VGA_FPS_FIXED_02       15000
135 #define CONFIG_SENSOR_480P_FPS_FIXED_02      15000
136 #define CONFIG_SENSOR_SVGA_FPS_FIXED_02      15000
137 #define CONFIG_SENSOR_720P_FPS_FIXED_02      30000
138
139 #define CONFIG_SENSOR_1 RK29_CAM_SENSOR_GC0308                      /* front camera sensor 0 */
140 #define CONFIG_SENSOR_IIC_ADDR_1            0x00
141 #define CONFIG_SENSOR_IIC_ADAPTER_ID_1    3
142 #define CONFIG_SENSOR_ORIENTATION_1       270
143 #define CONFIG_SENSOR_POWER_PIN_1         INVALID_GPIO
144 #define CONFIG_SENSOR_RESET_PIN_1         INVALID_GPIO
145 #define CONFIG_SENSOR_POWERDN_PIN_1       RK30_PIN3_PB5//RK30_PIN3_PB4
146 #define CONFIG_SENSOR_FALSH_PIN_1         INVALID_GPIO
147 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_1 RK29_CAM_POWERACTIVE_L
148 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_1 RK29_CAM_RESETACTIVE_L
149 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1 RK29_CAM_POWERDNACTIVE_H
150 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_1 RK29_CAM_FLASHACTIVE_L
151
152 #define CONFIG_SENSOR_QCIF_FPS_FIXED_1          15000
153 #define CONFIG_SENSOR_240X160_FPS_FIXED_1   15000
154 #define CONFIG_SENSOR_QVGA_FPS_FIXED_1          15000
155 #define CONFIG_SENSOR_CIF_FPS_FIXED_1           15000
156 #define CONFIG_SENSOR_VGA_FPS_FIXED_1           15000
157 #define CONFIG_SENSOR_480P_FPS_FIXED_1          15000
158 #define CONFIG_SENSOR_SVGA_FPS_FIXED_1          15000
159 #define CONFIG_SENSOR_720P_FPS_FIXED_1          30000
160
161 #define CONFIG_SENSOR_11 RK29_CAM_SENSOR_OV2659                      /* front camera sensor 1 */
162 #define CONFIG_SENSOR_IIC_ADDR_11           0x00
163 #define CONFIG_SENSOR_IIC_ADAPTER_ID_11    3
164 #define CONFIG_SENSOR_ORIENTATION_11       270
165 #define CONFIG_SENSOR_POWER_PIN_11         INVALID_GPIO
166 #define CONFIG_SENSOR_RESET_PIN_11         INVALID_GPIO
167 #define CONFIG_SENSOR_POWERDN_PIN_11       RK30_PIN3_PB5//RK30_PIN1_PB7
168 #define CONFIG_SENSOR_FALSH_PIN_11         INVALID_GPIO
169 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_11 RK29_CAM_POWERACTIVE_L
170 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_11 RK29_CAM_RESETACTIVE_L
171 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_11 RK29_CAM_POWERDNACTIVE_H
172 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_11 RK29_CAM_FLASHACTIVE_L
173
174 #define CONFIG_SENSOR_QCIF_FPS_FIXED_11      15000
175 #define CONFIG_SENSOR_240X160_FPS_FIXED_11   15000
176 #define CONFIG_SENSOR_QVGA_FPS_FIXED_11      15000
177 #define CONFIG_SENSOR_CIF_FPS_FIXED_11       15000
178 #define CONFIG_SENSOR_VGA_FPS_FIXED_11       15000
179 #define CONFIG_SENSOR_480P_FPS_FIXED_11      15000
180 #define CONFIG_SENSOR_SVGA_FPS_FIXED_11      15000
181 #define CONFIG_SENSOR_720P_FPS_FIXED_11      30000
182
183 #define CONFIG_SENSOR_12 RK29_CAM_SENSOR_OV2659//RK29_CAM_SENSOR_OV2655                      /* front camera sensor 2 */
184 #define CONFIG_SENSOR_IIC_ADDR_12          0x00
185 #define CONFIG_SENSOR_IIC_ADAPTER_ID_12    3
186 #define CONFIG_SENSOR_ORIENTATION_12       270
187 #define CONFIG_SENSOR_POWER_PIN_12         INVALID_GPIO
188 #define CONFIG_SENSOR_RESET_PIN_12         INVALID_GPIO
189 #define CONFIG_SENSOR_POWERDN_PIN_12       INVALID_GPIO//RK30_PIN1_PB7
190 #define CONFIG_SENSOR_FALSH_PIN_12         INVALID_GPIO
191 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_12 RK29_CAM_POWERACTIVE_L
192 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_12 RK29_CAM_RESETACTIVE_L
193 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_12 RK29_CAM_POWERDNACTIVE_H
194 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_12 RK29_CAM_FLASHACTIVE_L
195
196 #define CONFIG_SENSOR_QCIF_FPS_FIXED_12      15000
197 #define CONFIG_SENSOR_240X160_FPS_FIXED_12   15000
198 #define CONFIG_SENSOR_QVGA_FPS_FIXED_12      15000
199 #define CONFIG_SENSOR_CIF_FPS_FIXED_12       15000
200 #define CONFIG_SENSOR_VGA_FPS_FIXED_12       15000
201 #define CONFIG_SENSOR_480P_FPS_FIXED_12      15000
202 #define CONFIG_SENSOR_SVGA_FPS_FIXED_12      15000
203 #define CONFIG_SENSOR_720P_FPS_FIXED_12      30000
204
205
206 #endif  //#ifdef CONFIG_VIDEO_RK29
207 /*---------------- Camera Sensor Configuration Macro End------------------------*/
208 #include "../../../drivers/media/video/rk30_camera.c"
209 /*---------------- Camera Sensor Macro Define End  ---------*/
210
211 #define PMEM_CAM_SIZE PMEM_CAM_NECESSARY
212 /*****************************************************************************************
213  * camera  devices
214  * author: ddl@rock-chips.com
215  *****************************************************************************************/
216 #ifdef CONFIG_VIDEO_RK29
217 #define CONFIG_SENSOR_POWER_IOCTL_USR      1 //define this refer to your board layout
218 #define CONFIG_SENSOR_RESET_IOCTL_USR      0
219 #define CONFIG_SENSOR_POWERDOWN_IOCTL_USR          0
220 #define CONFIG_SENSOR_FLASH_IOCTL_USR      0
221
222 static void rk_cif_power(struct rk29camera_gpio_res *res,int on)
223 {
224         struct regulator *ldo_18,*ldo_28;
225         int camera_power = res->gpio_power;
226           int camera_ioflag = res->gpio_flag;
227           int camera_io_init = res->gpio_init;
228           
229         ldo_28 = regulator_get(NULL, "act_ldo8");       // vcc28_cif
230         ldo_18 = regulator_get(NULL, "act_ldo3");       // vcc18_cif
231         if (ldo_28 == NULL || IS_ERR(ldo_28) || ldo_18 == NULL || IS_ERR(ldo_18)){
232                 printk("get cif ldo failed!\n");
233                 return;
234                 }
235         if(on == 0){
236                 while(regulator_is_enabled(ldo_28)>0)   
237                         regulator_disable(ldo_28);
238                 regulator_put(ldo_28);
239                 while(regulator_is_enabled(ldo_18)>0)
240                         regulator_disable(ldo_18);
241                 regulator_put(ldo_18);
242                 mdelay(10);
243         if (camera_power != INVALID_GPIO)  {
244                   if (camera_io_init & RK29_CAM_POWERACTIVE_MASK) {
245                           gpio_set_value(camera_power, (((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS));
246                         //      dprintk("%s..%s..PowerPin=%d ..PinLevel = %x     \n",__FUNCTION__,res->dev_name, camera_power, (((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS));
247                         }
248                 }
249                 }
250         else{
251                 regulator_set_voltage(ldo_28, 2800000, 2800000);
252                 regulator_enable(ldo_28);
253    //   printk("%s set ldo7 vcc28_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_28));
254                 regulator_put(ldo_28);
255
256                 regulator_set_voltage(ldo_18, 1500000, 1500000);
257         //      regulator_set_suspend_voltage(ldo, 1800000);
258                 regulator_enable(ldo_18);
259         //      printk("%s set ldo1 vcc18_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_18));
260                 regulator_put(ldo_18);
261         if (camera_power != INVALID_GPIO)  {
262                   if (camera_io_init & RK29_CAM_POWERACTIVE_MASK) {
263                         gpio_set_value(camera_power, ((camera_ioflag&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS));
264                         //dprintk("%s..%s..PowerPin=%d ..PinLevel = %x   \n",__FUNCTION__,res->dev_name, camera_power, ((camera_ioflag&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS));
265                         mdelay(10);
266                         }
267         }
268
269         }
270 }
271
272 #if CONFIG_SENSOR_POWER_IOCTL_USR
273 static int sensor_power_usr_cb (struct rk29camera_gpio_res *res,int on)
274 {
275         //#error "CONFIG_SENSOR_POWER_IOCTL_USR is 1, sensor_power_usr_cb function must be writed!!";
276         rk_cif_power(res,on);
277         return 0;
278 }
279 #endif
280
281 #if CONFIG_SENSOR_FLASH_IOCTL_USR
282 static int sensor_flash_usr_cb (struct rk29camera_gpio_res *res,int on)
283 {
284         #error "CONFIG_SENSOR_FLASH_IOCTL_USR is 1, sensor_flash_usr_cb function must be writed!!";
285 }
286 #endif
287
288 static struct rk29camera_platform_ioctl_cb      sensor_ioctl_cb = {
289         #if CONFIG_SENSOR_POWER_IOCTL_USR
290         .sensor_power_cb = sensor_power_usr_cb,
291         #else
292         .sensor_power_cb = NULL,
293         #endif
294
295         #if CONFIG_SENSOR_RESET_IOCTL_USR
296         .sensor_reset_cb = sensor_reset_usr_cb,
297         #else
298         .sensor_reset_cb = NULL,
299         #endif
300
301         #if CONFIG_SENSOR_POWERDOWN_IOCTL_USR
302         .sensor_powerdown_cb = sensor_powerdown_usr_cb,
303         #else
304         .sensor_powerdown_cb = NULL,
305         #endif
306
307         #if CONFIG_SENSOR_FLASH_IOCTL_USR
308         .sensor_flash_cb = sensor_flash_usr_cb,
309         #else
310         .sensor_flash_cb = NULL,
311         #endif
312 };
313
314 #if CONFIG_SENSOR_IIC_ADDR_0
315 static struct reginfo_t rk_init_data_sensor_reg_0[] =
316 {
317                 {0x0000, 0x00,0,0}
318         };
319 static struct reginfo_t rk_init_data_sensor_winseqreg_0[] ={
320         {0x0000, 0x00,0,0}
321         };
322 #endif
323
324 #if CONFIG_SENSOR_IIC_ADDR_1
325 static struct reginfo_t rk_init_data_sensor_reg_1[] =
326 {
327     {0x0000, 0x00,0,0}
328 };
329 static struct reginfo_t rk_init_data_sensor_winseqreg_1[] =
330 {
331        {0x0000, 0x00,0,0}
332 };
333 #endif
334 #if CONFIG_SENSOR_IIC_ADDR_01
335 static struct reginfo_t rk_init_data_sensor_reg_01[] =
336 {
337     {0x0000, 0x00,0,0}
338 };
339 static struct reginfo_t rk_init_data_sensor_winseqreg_01[] =
340 {
341        {0x0000, 0x00,0,0}
342 };
343 #endif
344 #if CONFIG_SENSOR_IIC_ADDR_02
345 static struct reginfo_t rk_init_data_sensor_reg_02[] =
346 {
347     {0x0000, 0x00,0,0}
348 };
349 static struct reginfo_t rk_init_data_sensor_winseqreg_02[] =
350 {
351        {0x0000, 0x00,0,0}
352 };
353 #endif
354 #if CONFIG_SENSOR_IIC_ADDR_11
355 static struct reginfo_t rk_init_data_sensor_reg_11[] =
356 {
357     {0x0000, 0x00,0,0}
358 };
359 static struct reginfo_t rk_init_data_sensor_winseqreg_11[] =
360 {
361        {0x0000, 0x00,0,0}
362 };
363 #endif
364 #if CONFIG_SENSOR_IIC_ADDR_12
365 static struct reginfo_t rk_init_data_sensor_reg_12[] =
366 {
367     {0x0000, 0x00,0,0}
368 };
369 static struct reginfo_t rk_init_data_sensor_winseqreg_12[] =
370 {
371        {0x0000, 0x00,0,0}
372 };
373 #endif
374 static rk_sensor_user_init_data_s rk_init_data_sensor[RK_CAM_NUM] = 
375 {
376     #if CONFIG_SENSOR_IIC_ADDR_0
377     {
378        .rk_sensor_init_width = INVALID_VALUE,
379        .rk_sensor_init_height = INVALID_VALUE,
380        .rk_sensor_init_bus_param = INVALID_VALUE,
381        .rk_sensor_init_pixelcode = INVALID_VALUE,
382        .rk_sensor_init_data = rk_init_data_sensor_reg_0,
383        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_0,
384        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_0) / sizeof(struct reginfo_t),
385        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_0) / sizeof(struct reginfo_t),
386     },
387     #else
388     {
389        .rk_sensor_init_width = INVALID_VALUE,
390        .rk_sensor_init_height = INVALID_VALUE,
391        .rk_sensor_init_bus_param = INVALID_VALUE,
392        .rk_sensor_init_pixelcode = INVALID_VALUE,
393        .rk_sensor_init_data = NULL,
394        .rk_sensor_init_winseq = NULL,
395        .rk_sensor_winseq_size = 0,
396        .rk_sensor_init_data_size = 0,
397     },
398     #endif
399     #if CONFIG_SENSOR_IIC_ADDR_1
400     {
401        .rk_sensor_init_width = INVALID_VALUE,
402        .rk_sensor_init_height = INVALID_VALUE,
403        .rk_sensor_init_bus_param = INVALID_VALUE,
404        .rk_sensor_init_pixelcode = INVALID_VALUE,
405        .rk_sensor_init_data = rk_init_data_sensor_reg_1,
406        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_1,
407        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_1) / sizeof(struct reginfo_t),
408        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_1) / sizeof(struct reginfo_t),
409     },
410     #else
411     {
412        .rk_sensor_init_width = INVALID_VALUE,
413        .rk_sensor_init_height = INVALID_VALUE,
414        .rk_sensor_init_bus_param = INVALID_VALUE,
415        .rk_sensor_init_pixelcode = INVALID_VALUE,
416        .rk_sensor_init_data = NULL,
417        .rk_sensor_init_winseq = NULL,
418        .rk_sensor_winseq_size = 0,
419        .rk_sensor_init_data_size = 0,
420     },
421     #endif
422     #if CONFIG_SENSOR_IIC_ADDR_01
423     {
424        .rk_sensor_init_width = INVALID_VALUE,
425        .rk_sensor_init_height = INVALID_VALUE,
426        .rk_sensor_init_bus_param = INVALID_VALUE,
427        .rk_sensor_init_pixelcode = INVALID_VALUE,
428        .rk_sensor_init_data = rk_init_data_sensor_reg_01,
429        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_01,
430        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_01) / sizeof(struct reginfo_t),
431        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_01) / sizeof(struct reginfo_t),
432     },
433     #else
434     {
435        .rk_sensor_init_width = INVALID_VALUE,
436        .rk_sensor_init_height = INVALID_VALUE,
437        .rk_sensor_init_bus_param = INVALID_VALUE,
438        .rk_sensor_init_pixelcode = INVALID_VALUE,
439        .rk_sensor_init_data = NULL,
440        .rk_sensor_init_winseq = NULL,
441        .rk_sensor_winseq_size = 0,
442        .rk_sensor_init_data_size = 0,
443     },
444     #endif
445     #if CONFIG_SENSOR_IIC_ADDR_02
446     {
447        .rk_sensor_init_width = INVALID_VALUE,
448        .rk_sensor_init_height = INVALID_VALUE,
449        .rk_sensor_init_bus_param = INVALID_VALUE,
450        .rk_sensor_init_pixelcode = INVALID_VALUE,
451        .rk_sensor_init_data = rk_init_data_sensor_reg_02,
452        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_02,
453        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_02) / sizeof(struct reginfo_t),
454        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_02) / sizeof(struct reginfo_t),
455     },
456     #else
457     {
458        .rk_sensor_init_width = INVALID_VALUE,
459        .rk_sensor_init_height = INVALID_VALUE,
460        .rk_sensor_init_bus_param = INVALID_VALUE,
461        .rk_sensor_init_pixelcode = INVALID_VALUE,
462        .rk_sensor_init_data = NULL,
463        .rk_sensor_init_winseq = NULL,
464        .rk_sensor_winseq_size = 0,
465        .rk_sensor_init_data_size = 0,
466     },
467     #endif
468     #if CONFIG_SENSOR_IIC_ADDR_11
469     {
470        .rk_sensor_init_width = INVALID_VALUE,
471        .rk_sensor_init_height = INVALID_VALUE,
472        .rk_sensor_init_bus_param = INVALID_VALUE,
473        .rk_sensor_init_pixelcode = INVALID_VALUE,
474        .rk_sensor_init_data = rk_init_data_sensor_reg_11,
475        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_11,
476        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_11) / sizeof(struct reginfo_t),
477        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_11) / sizeof(struct reginfo_t),
478     },
479     #else
480     {
481        .rk_sensor_init_width = INVALID_VALUE,
482        .rk_sensor_init_height = INVALID_VALUE,
483        .rk_sensor_init_bus_param = INVALID_VALUE,
484        .rk_sensor_init_pixelcode = INVALID_VALUE,
485        .rk_sensor_init_data = NULL,
486        .rk_sensor_init_winseq = NULL,
487        .rk_sensor_winseq_size = 0,
488        .rk_sensor_init_data_size = 0,
489     },
490     #endif
491     #if CONFIG_SENSOR_IIC_ADDR_12
492     {
493        .rk_sensor_init_width = INVALID_VALUE,
494        .rk_sensor_init_height = INVALID_VALUE,
495        .rk_sensor_init_bus_param = INVALID_VALUE,
496        .rk_sensor_init_pixelcode = INVALID_VALUE,
497        .rk_sensor_init_data = rk_init_data_sensor_reg_12,
498        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_12,
499        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_12) / sizeof(struct reginfo_t),
500        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_12) / sizeof(struct reginfo_t),
501     },
502     #else
503     {
504        .rk_sensor_init_width = INVALID_VALUE,
505        .rk_sensor_init_height = INVALID_VALUE,
506        .rk_sensor_init_bus_param = INVALID_VALUE,
507        .rk_sensor_init_pixelcode = INVALID_VALUE,
508        .rk_sensor_init_data = NULL,
509        .rk_sensor_init_winseq = NULL,
510        .rk_sensor_winseq_size = 0,
511        .rk_sensor_init_data_size = 0,
512     },
513     #endif
514
515  };
516 #include "../../../drivers/media/video/rk30_camera.c"
517
518 #endif /* CONFIG_VIDEO_RK29 */