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