rk3168:add camera support in rk3168 top board
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-rk30 / board-rk3168-tb-camera.c
1 #ifdef CONFIG_VIDEO_RK29
2 /*---------------- Camera Sensor Macro Define Begin  ------------------------*/
3 /*---------------- Camera Sensor Configuration Macro Begin ------------------------*/
4 #define CONFIG_SENSOR_0 RK29_CAM_SENSOR_OV5642                                          /* back camera sensor */
5 #define CONFIG_SENSOR_IIC_ADDR_0                0
6 #define CONFIG_SENSOR_IIC_ADAPTER_ID_0    4
7 #define CONFIG_SENSOR_ORIENTATION_0       90
8 #define CONFIG_SENSOR_POWER_PIN_0                 INVALID_GPIO
9 #define CONFIG_SENSOR_RESET_PIN_0                 INVALID_GPIO
10 #define CONFIG_SENSOR_POWERDN_PIN_0       RK30_PIN3_PB5
11 #define CONFIG_SENSOR_FALSH_PIN_0                 INVALID_GPIO
12 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_0 RK29_CAM_POWERACTIVE_L
13 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_0 RK29_CAM_RESETACTIVE_L
14 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0 RK29_CAM_POWERDNACTIVE_H
15 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_0 RK29_CAM_FLASHACTIVE_L
16
17 #define CONFIG_SENSOR_QCIF_FPS_FIXED_0          15000
18 #define CONFIG_SENSOR_240X160_FPS_FIXED_0   15000
19 #define CONFIG_SENSOR_QVGA_FPS_FIXED_0          15000
20 #define CONFIG_SENSOR_CIF_FPS_FIXED_0           15000
21 #define CONFIG_SENSOR_VGA_FPS_FIXED_0           15000
22 #define CONFIG_SENSOR_480P_FPS_FIXED_0          15000
23 #define CONFIG_SENSOR_SVGA_FPS_FIXED_0          15000
24 #define CONFIG_SENSOR_720P_FPS_FIXED_0          30000
25
26 #define CONFIG_SENSOR_01  RK29_CAM_SENSOR_OV5642                   /* back camera sensor 1 */
27 #define CONFIG_SENSOR_IIC_ADDR_01           0x00
28 #define CONFIG_SENSOR_IIC_ADAPTER_ID_01    4
29 #define CONFIG_SENSOR_ORIENTATION_01       90
30 #define CONFIG_SENSOR_POWER_PIN_01         INVALID_GPIO
31 #define CONFIG_SENSOR_RESET_PIN_01         INVALID_GPIO
32 #define CONFIG_SENSOR_POWERDN_PIN_01       RK30_PIN1_PD6
33 #define CONFIG_SENSOR_FALSH_PIN_01         INVALID_GPIO
34 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_01 RK29_CAM_POWERACTIVE_L
35 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_01 RK29_CAM_RESETACTIVE_L
36 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_01 RK29_CAM_POWERDNACTIVE_H
37 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_01 RK29_CAM_FLASHACTIVE_L
38
39 #define CONFIG_SENSOR_QCIF_FPS_FIXED_01      15000
40 #define CONFIG_SENSOR_240X160_FPS_FIXED_01   15000
41 #define CONFIG_SENSOR_QVGA_FPS_FIXED_01      15000
42 #define CONFIG_SENSOR_CIF_FPS_FIXED_01       15000
43 #define CONFIG_SENSOR_VGA_FPS_FIXED_01       15000
44 #define CONFIG_SENSOR_480P_FPS_FIXED_01      15000
45 #define CONFIG_SENSOR_SVGA_FPS_FIXED_01      15000
46 #define CONFIG_SENSOR_720P_FPS_FIXED_01     30000
47
48 #define CONFIG_SENSOR_02 RK29_CAM_SENSOR_OV5640                      /* back camera sensor 2 */
49 #define CONFIG_SENSOR_IIC_ADDR_02           0x00
50 #define CONFIG_SENSOR_CIF_INDEX_02                    0
51 #define CONFIG_SENSOR_IIC_ADAPTER_ID_02    4
52 #define CONFIG_SENSOR_ORIENTATION_02       90
53 #define CONFIG_SENSOR_POWER_PIN_02         INVALID_GPIO
54 #define CONFIG_SENSOR_RESET_PIN_02         INVALID_GPIO
55 #define CONFIG_SENSOR_POWERDN_PIN_02       INVALID_GPIO
56 #define CONFIG_SENSOR_FALSH_PIN_02         INVALID_GPIO
57 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_02 RK29_CAM_POWERACTIVE_L
58 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_02 RK29_CAM_RESETACTIVE_L
59 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_02 RK29_CAM_POWERDNACTIVE_H
60 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_02 RK29_CAM_FLASHACTIVE_L
61
62 #define CONFIG_SENSOR_QCIF_FPS_FIXED_02      15000
63 #define CONFIG_SENSOR_240X160_FPS_FIXED_02   15000
64 #define CONFIG_SENSOR_QVGA_FPS_FIXED_02      15000
65 #define CONFIG_SENSOR_CIF_FPS_FIXED_02       15000
66 #define CONFIG_SENSOR_VGA_FPS_FIXED_02       15000
67 #define CONFIG_SENSOR_480P_FPS_FIXED_02      15000
68 #define CONFIG_SENSOR_SVGA_FPS_FIXED_02      15000
69 #define CONFIG_SENSOR_720P_FPS_FIXED_02      30000
70
71 #define CONFIG_SENSOR_1 RK29_CAM_SENSOR_OV2659                      /* front camera sensor 0 */
72 #define CONFIG_SENSOR_IIC_ADDR_1            0x60
73 #define CONFIG_SENSOR_IIC_ADAPTER_ID_1    3
74 #define CONFIG_SENSOR_ORIENTATION_1       270
75 #define CONFIG_SENSOR_POWER_PIN_1         INVALID_GPIO
76 #define CONFIG_SENSOR_RESET_PIN_1         INVALID_GPIO
77 #define CONFIG_SENSOR_POWERDN_PIN_1       RK30_PIN3_PB4
78 #define CONFIG_SENSOR_FALSH_PIN_1         INVALID_GPIO
79 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_1 RK29_CAM_POWERACTIVE_L
80 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_1 RK29_CAM_RESETACTIVE_L
81 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1 RK29_CAM_POWERDNACTIVE_H
82 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_1 RK29_CAM_FLASHACTIVE_L
83
84 #define CONFIG_SENSOR_QCIF_FPS_FIXED_1          15000
85 #define CONFIG_SENSOR_240X160_FPS_FIXED_1   15000
86 #define CONFIG_SENSOR_QVGA_FPS_FIXED_1          15000
87 #define CONFIG_SENSOR_CIF_FPS_FIXED_1           15000
88 #define CONFIG_SENSOR_VGA_FPS_FIXED_1           15000
89 #define CONFIG_SENSOR_480P_FPS_FIXED_1          15000
90 #define CONFIG_SENSOR_SVGA_FPS_FIXED_1          15000
91 #define CONFIG_SENSOR_720P_FPS_FIXED_1          30000
92
93 #define CONFIG_SENSOR_11 RK29_CAM_SENSOR_OV2659                      /* front camera sensor 1 */
94 #define CONFIG_SENSOR_IIC_ADDR_11           0x00
95 #define CONFIG_SENSOR_IIC_ADAPTER_ID_11    3
96 #define CONFIG_SENSOR_ORIENTATION_11       270
97 #define CONFIG_SENSOR_POWER_PIN_11         INVALID_GPIO
98 #define CONFIG_SENSOR_RESET_PIN_11         INVALID_GPIO
99 #define CONFIG_SENSOR_POWERDN_PIN_11       INVALID_GPIO//RK30_PIN1_PB7
100 #define CONFIG_SENSOR_FALSH_PIN_11         INVALID_GPIO
101 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_11 RK29_CAM_POWERACTIVE_L
102 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_11 RK29_CAM_RESETACTIVE_L
103 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_11 RK29_CAM_POWERDNACTIVE_H
104 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_11 RK29_CAM_FLASHACTIVE_L
105
106 #define CONFIG_SENSOR_QCIF_FPS_FIXED_11      15000
107 #define CONFIG_SENSOR_240X160_FPS_FIXED_11   15000
108 #define CONFIG_SENSOR_QVGA_FPS_FIXED_11      15000
109 #define CONFIG_SENSOR_CIF_FPS_FIXED_11       15000
110 #define CONFIG_SENSOR_VGA_FPS_FIXED_11       15000
111 #define CONFIG_SENSOR_480P_FPS_FIXED_11      15000
112 #define CONFIG_SENSOR_SVGA_FPS_FIXED_11      15000
113 #define CONFIG_SENSOR_720P_FPS_FIXED_11      30000
114
115 #define CONFIG_SENSOR_12 RK29_CAM_SENSOR_OV2659//RK29_CAM_SENSOR_OV2655                      /* front camera sensor 2 */
116 #define CONFIG_SENSOR_IIC_ADDR_12          0x00
117 #define CONFIG_SENSOR_IIC_ADAPTER_ID_12    3
118 #define CONFIG_SENSOR_ORIENTATION_12       270
119 #define CONFIG_SENSOR_POWER_PIN_12         INVALID_GPIO
120 #define CONFIG_SENSOR_RESET_PIN_12         INVALID_GPIO
121 #define CONFIG_SENSOR_POWERDN_PIN_12       INVALID_GPIO//RK30_PIN1_PB7
122 #define CONFIG_SENSOR_FALSH_PIN_12         INVALID_GPIO
123 #define CONFIG_SENSOR_POWERACTIVE_LEVEL_12 RK29_CAM_POWERACTIVE_L
124 #define CONFIG_SENSOR_RESETACTIVE_LEVEL_12 RK29_CAM_RESETACTIVE_L
125 #define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_12 RK29_CAM_POWERDNACTIVE_H
126 #define CONFIG_SENSOR_FLASHACTIVE_LEVEL_12 RK29_CAM_FLASHACTIVE_L
127
128 #define CONFIG_SENSOR_QCIF_FPS_FIXED_12      15000
129 #define CONFIG_SENSOR_240X160_FPS_FIXED_12   15000
130 #define CONFIG_SENSOR_QVGA_FPS_FIXED_12      15000
131 #define CONFIG_SENSOR_CIF_FPS_FIXED_12       15000
132 #define CONFIG_SENSOR_VGA_FPS_FIXED_12       15000
133 #define CONFIG_SENSOR_480P_FPS_FIXED_12      15000
134 #define CONFIG_SENSOR_SVGA_FPS_FIXED_12      15000
135 #define CONFIG_SENSOR_720P_FPS_FIXED_12      30000
136
137
138 #endif  //#ifdef CONFIG_VIDEO_RK29
139 /*---------------- Camera Sensor Configuration Macro End------------------------*/
140 #include "../../../drivers/media/video/rk30_camera.c"
141 /*---------------- Camera Sensor Macro Define End  ---------*/
142
143 #define PMEM_CAM_SIZE PMEM_CAM_NECESSARY
144 /*****************************************************************************************
145  * camera  devices
146  * author: ddl@rock-chips.com
147  *****************************************************************************************/
148 #ifdef CONFIG_VIDEO_RK29
149 #define CONFIG_SENSOR_POWER_IOCTL_USR      1 //define this refer to your board layout
150 #define CONFIG_SENSOR_RESET_IOCTL_USR      0
151 #define CONFIG_SENSOR_POWERDOWN_IOCTL_USR          0
152 #define CONFIG_SENSOR_FLASH_IOCTL_USR      0
153
154 static void rk_cif_power(int on)
155 {
156     struct regulator *ldo_18,*ldo_28;
157         ldo_28 = regulator_get(NULL, "ldo7");   // vcc28_cif
158         ldo_18 = regulator_get(NULL, "ldo1");   // vcc18_cif
159         if (ldo_28 == NULL || IS_ERR(ldo_28) || ldo_18 == NULL || IS_ERR(ldo_18)){
160         printk("get cif ldo failed!\n");
161                 return;
162             }
163     if(on == 0){        
164         regulator_disable(ldo_28);
165         regulator_put(ldo_28);
166         regulator_disable(ldo_18);
167         regulator_put(ldo_18);
168         mdelay(500);
169         }
170     else{
171         regulator_set_voltage(ldo_28, 2800000, 2800000);
172         regulator_enable(ldo_28);
173    //   printk("%s set ldo7 vcc28_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_28));
174         regulator_put(ldo_28);
175
176         regulator_set_voltage(ldo_18, 1800000, 1800000);
177     //  regulator_set_suspend_voltage(ldo, 1800000);
178         regulator_enable(ldo_18);
179     //  printk("%s set ldo1 vcc18_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_18));
180         regulator_put(ldo_18);
181         }
182 }
183
184 #if CONFIG_SENSOR_POWER_IOCTL_USR
185 static int sensor_power_usr_cb (struct rk29camera_gpio_res *res,int on)
186 {
187         //#error "CONFIG_SENSOR_POWER_IOCTL_USR is 1, sensor_power_usr_cb function must be writed!!";
188     rk_cif_power(on);
189         return 0;
190 }
191 #endif
192
193 #if CONFIG_SENSOR_RESET_IOCTL_USR
194 static int sensor_reset_usr_cb (struct rk29camera_gpio_res *res,int on)
195 {
196         #error "CONFIG_SENSOR_RESET_IOCTL_USR is 1, sensor_reset_usr_cb function must be writed!!";
197 }
198 #endif
199
200 #if CONFIG_SENSOR_POWERDOWN_IOCTL_USR
201 static int sensor_powerdown_usr_cb (struct rk29camera_gpio_res *res,int on)
202 {
203         #error "CONFIG_SENSOR_POWERDOWN_IOCTL_USR is 1, sensor_powerdown_usr_cb function must be writed!!";
204 }
205 #endif
206
207 #if CONFIG_SENSOR_FLASH_IOCTL_USR
208 static int sensor_flash_usr_cb (struct rk29camera_gpio_res *res,int on)
209 {
210         #error "CONFIG_SENSOR_FLASH_IOCTL_USR is 1, sensor_flash_usr_cb function must be writed!!";
211 }
212 #endif
213
214 static struct rk29camera_platform_ioctl_cb      sensor_ioctl_cb = {
215         #if CONFIG_SENSOR_POWER_IOCTL_USR
216         .sensor_power_cb = sensor_power_usr_cb,
217         #else
218         .sensor_power_cb = NULL,
219         #endif
220
221         #if CONFIG_SENSOR_RESET_IOCTL_USR
222         .sensor_reset_cb = sensor_reset_usr_cb,
223         #else
224         .sensor_reset_cb = NULL,
225         #endif
226
227         #if CONFIG_SENSOR_POWERDOWN_IOCTL_USR
228         .sensor_powerdown_cb = sensor_powerdown_usr_cb,
229         #else
230         .sensor_powerdown_cb = NULL,
231         #endif
232
233         #if CONFIG_SENSOR_FLASH_IOCTL_USR
234         .sensor_flash_cb = sensor_flash_usr_cb,
235         #else
236         .sensor_flash_cb = NULL,
237         #endif
238 };
239
240 #if CONFIG_SENSOR_IIC_ADDR_0
241 static struct reginfo_t rk_init_data_sensor_reg_0[] =
242 {
243                 {0x0000, 0x00,0,0}
244         };
245 static struct reginfo_t rk_init_data_sensor_winseqreg_0[] ={
246         {0x0000, 0x00,0,0}
247         };
248 #endif
249
250 #if CONFIG_SENSOR_IIC_ADDR_1
251 static struct reginfo_t rk_init_data_sensor_reg_1[] =
252 {
253     {0x0000, 0x00,0,0}
254 };
255 static struct reginfo_t rk_init_data_sensor_winseqreg_1[] =
256 {
257        {0x0000, 0x00,0,0}
258 };
259 #endif
260 #if CONFIG_SENSOR_IIC_ADDR_01
261 static struct reginfo_t rk_init_data_sensor_reg_01[] =
262 {
263     {0x0000, 0x00,0,0}
264 };
265 static struct reginfo_t rk_init_data_sensor_winseqreg_01[] =
266 {
267        {0x0000, 0x00,0,0}
268 };
269 #endif
270 #if CONFIG_SENSOR_IIC_ADDR_02
271 static struct reginfo_t rk_init_data_sensor_reg_02[] =
272 {
273     {0x0000, 0x00,0,0}
274 };
275 static struct reginfo_t rk_init_data_sensor_winseqreg_02[] =
276 {
277        {0x0000, 0x00,0,0}
278 };
279 #endif
280 #if CONFIG_SENSOR_IIC_ADDR_11
281 static struct reginfo_t rk_init_data_sensor_reg_11[] =
282 {
283     {0x0000, 0x00,0,0}
284 };
285 static struct reginfo_t rk_init_data_sensor_winseqreg_11[] =
286 {
287        {0x0000, 0x00,0,0}
288 };
289 #endif
290 #if CONFIG_SENSOR_IIC_ADDR_12
291 static struct reginfo_t rk_init_data_sensor_reg_12[] =
292 {
293     {0x0000, 0x00,0,0}
294 };
295 static struct reginfo_t rk_init_data_sensor_winseqreg_12[] =
296 {
297        {0x0000, 0x00,0,0}
298 };
299 #endif
300 static rk_sensor_user_init_data_s rk_init_data_sensor[RK_CAM_NUM] = 
301 {
302     #if CONFIG_SENSOR_IIC_ADDR_0
303     {
304        .rk_sensor_init_width = INVALID_VALUE,
305        .rk_sensor_init_height = INVALID_VALUE,
306        .rk_sensor_init_bus_param = INVALID_VALUE,
307        .rk_sensor_init_pixelcode = INVALID_VALUE,
308        .rk_sensor_init_data = rk_init_data_sensor_reg_0,
309        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_0,
310        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_0) / sizeof(struct reginfo_t),
311        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_0) / sizeof(struct reginfo_t),
312     },
313     #else
314     {
315        .rk_sensor_init_width = INVALID_VALUE,
316        .rk_sensor_init_height = INVALID_VALUE,
317        .rk_sensor_init_bus_param = INVALID_VALUE,
318        .rk_sensor_init_pixelcode = INVALID_VALUE,
319        .rk_sensor_init_data = NULL,
320        .rk_sensor_init_winseq = NULL,
321        .rk_sensor_winseq_size = 0,
322        .rk_sensor_init_data_size = 0,
323     },
324     #endif
325     #if CONFIG_SENSOR_IIC_ADDR_1
326     {
327        .rk_sensor_init_width = INVALID_VALUE,
328        .rk_sensor_init_height = INVALID_VALUE,
329        .rk_sensor_init_bus_param = INVALID_VALUE,
330        .rk_sensor_init_pixelcode = INVALID_VALUE,
331        .rk_sensor_init_data = rk_init_data_sensor_reg_1,
332        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_1,
333        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_1) / sizeof(struct reginfo_t),
334        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_1) / sizeof(struct reginfo_t),
335     },
336     #else
337     {
338        .rk_sensor_init_width = INVALID_VALUE,
339        .rk_sensor_init_height = INVALID_VALUE,
340        .rk_sensor_init_bus_param = INVALID_VALUE,
341        .rk_sensor_init_pixelcode = INVALID_VALUE,
342        .rk_sensor_init_data = NULL,
343        .rk_sensor_init_winseq = NULL,
344        .rk_sensor_winseq_size = 0,
345        .rk_sensor_init_data_size = 0,
346     },
347     #endif
348     #if CONFIG_SENSOR_IIC_ADDR_01
349     {
350        .rk_sensor_init_width = INVALID_VALUE,
351        .rk_sensor_init_height = INVALID_VALUE,
352        .rk_sensor_init_bus_param = INVALID_VALUE,
353        .rk_sensor_init_pixelcode = INVALID_VALUE,
354        .rk_sensor_init_data = rk_init_data_sensor_reg_01,
355        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_01,
356        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_01) / sizeof(struct reginfo_t),
357        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_01) / sizeof(struct reginfo_t),
358     },
359     #else
360     {
361        .rk_sensor_init_width = INVALID_VALUE,
362        .rk_sensor_init_height = INVALID_VALUE,
363        .rk_sensor_init_bus_param = INVALID_VALUE,
364        .rk_sensor_init_pixelcode = INVALID_VALUE,
365        .rk_sensor_init_data = NULL,
366        .rk_sensor_init_winseq = NULL,
367        .rk_sensor_winseq_size = 0,
368        .rk_sensor_init_data_size = 0,
369     },
370     #endif
371     #if CONFIG_SENSOR_IIC_ADDR_02
372     {
373        .rk_sensor_init_width = INVALID_VALUE,
374        .rk_sensor_init_height = INVALID_VALUE,
375        .rk_sensor_init_bus_param = INVALID_VALUE,
376        .rk_sensor_init_pixelcode = INVALID_VALUE,
377        .rk_sensor_init_data = rk_init_data_sensor_reg_02,
378        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_02,
379        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_02) / sizeof(struct reginfo_t),
380        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_02) / sizeof(struct reginfo_t),
381     },
382     #else
383     {
384        .rk_sensor_init_width = INVALID_VALUE,
385        .rk_sensor_init_height = INVALID_VALUE,
386        .rk_sensor_init_bus_param = INVALID_VALUE,
387        .rk_sensor_init_pixelcode = INVALID_VALUE,
388        .rk_sensor_init_data = NULL,
389        .rk_sensor_init_winseq = NULL,
390        .rk_sensor_winseq_size = 0,
391        .rk_sensor_init_data_size = 0,
392     },
393     #endif
394     #if CONFIG_SENSOR_IIC_ADDR_11
395     {
396        .rk_sensor_init_width = INVALID_VALUE,
397        .rk_sensor_init_height = INVALID_VALUE,
398        .rk_sensor_init_bus_param = INVALID_VALUE,
399        .rk_sensor_init_pixelcode = INVALID_VALUE,
400        .rk_sensor_init_data = rk_init_data_sensor_reg_11,
401        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_11,
402        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_11) / sizeof(struct reginfo_t),
403        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_11) / sizeof(struct reginfo_t),
404     },
405     #else
406     {
407        .rk_sensor_init_width = INVALID_VALUE,
408        .rk_sensor_init_height = INVALID_VALUE,
409        .rk_sensor_init_bus_param = INVALID_VALUE,
410        .rk_sensor_init_pixelcode = INVALID_VALUE,
411        .rk_sensor_init_data = NULL,
412        .rk_sensor_init_winseq = NULL,
413        .rk_sensor_winseq_size = 0,
414        .rk_sensor_init_data_size = 0,
415     },
416     #endif
417     #if CONFIG_SENSOR_IIC_ADDR_12
418     {
419        .rk_sensor_init_width = INVALID_VALUE,
420        .rk_sensor_init_height = INVALID_VALUE,
421        .rk_sensor_init_bus_param = INVALID_VALUE,
422        .rk_sensor_init_pixelcode = INVALID_VALUE,
423        .rk_sensor_init_data = rk_init_data_sensor_reg_12,
424        .rk_sensor_init_winseq = rk_init_data_sensor_winseqreg_12,
425        .rk_sensor_winseq_size = sizeof(rk_init_data_sensor_winseqreg_12) / sizeof(struct reginfo_t),
426        .rk_sensor_init_data_size = sizeof(rk_init_data_sensor_reg_12) / sizeof(struct reginfo_t),
427     },
428     #else
429     {
430        .rk_sensor_init_width = INVALID_VALUE,
431        .rk_sensor_init_height = INVALID_VALUE,
432        .rk_sensor_init_bus_param = INVALID_VALUE,
433        .rk_sensor_init_pixelcode = INVALID_VALUE,
434        .rk_sensor_init_data = NULL,
435        .rk_sensor_init_winseq = NULL,
436        .rk_sensor_winseq_size = 0,
437        .rk_sensor_init_data_size = 0,
438     },
439     #endif
440
441  };
442 #include "../../../drivers/media/video/rk30_camera.c"
443
444 #endif /* CONFIG_VIDEO_RK29 */