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