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