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
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
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
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
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
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
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
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
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
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
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
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
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 ---------*/
143 #define PMEM_CAM_SIZE PMEM_CAM_NECESSARY
144 /*****************************************************************************************
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
154 static void rk_cif_power(int on)
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");
164 regulator_disable(ldo_28);
165 regulator_put(ldo_28);
166 regulator_disable(ldo_18);
167 regulator_put(ldo_18);
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);
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);
184 #if CONFIG_SENSOR_POWER_IOCTL_USR
185 static int sensor_power_usr_cb (struct rk29camera_gpio_res *res,int on)
187 //#error "CONFIG_SENSOR_POWER_IOCTL_USR is 1, sensor_power_usr_cb function must be writed!!";
193 #if CONFIG_SENSOR_RESET_IOCTL_USR
194 static int sensor_reset_usr_cb (struct rk29camera_gpio_res *res,int on)
196 #error "CONFIG_SENSOR_RESET_IOCTL_USR is 1, sensor_reset_usr_cb function must be writed!!";
200 #if CONFIG_SENSOR_POWERDOWN_IOCTL_USR
201 static int sensor_powerdown_usr_cb (struct rk29camera_gpio_res *res,int on)
203 #error "CONFIG_SENSOR_POWERDOWN_IOCTL_USR is 1, sensor_powerdown_usr_cb function must be writed!!";
207 #if CONFIG_SENSOR_FLASH_IOCTL_USR
208 static int sensor_flash_usr_cb (struct rk29camera_gpio_res *res,int on)
210 #error "CONFIG_SENSOR_FLASH_IOCTL_USR is 1, sensor_flash_usr_cb function must be writed!!";
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,
218 .sensor_power_cb = NULL,
221 #if CONFIG_SENSOR_RESET_IOCTL_USR
222 .sensor_reset_cb = sensor_reset_usr_cb,
224 .sensor_reset_cb = NULL,
227 #if CONFIG_SENSOR_POWERDOWN_IOCTL_USR
228 .sensor_powerdown_cb = sensor_powerdown_usr_cb,
230 .sensor_powerdown_cb = NULL,
233 #if CONFIG_SENSOR_FLASH_IOCTL_USR
234 .sensor_flash_cb = sensor_flash_usr_cb,
236 .sensor_flash_cb = NULL,
240 #if CONFIG_SENSOR_IIC_ADDR_0
241 static struct reginfo_t rk_init_data_sensor_reg_0[] =
245 static struct reginfo_t rk_init_data_sensor_winseqreg_0[] ={
250 #if CONFIG_SENSOR_IIC_ADDR_1
251 static struct reginfo_t rk_init_data_sensor_reg_1[] =
255 static struct reginfo_t rk_init_data_sensor_winseqreg_1[] =
260 #if CONFIG_SENSOR_IIC_ADDR_01
261 static struct reginfo_t rk_init_data_sensor_reg_01[] =
265 static struct reginfo_t rk_init_data_sensor_winseqreg_01[] =
270 #if CONFIG_SENSOR_IIC_ADDR_02
271 static struct reginfo_t rk_init_data_sensor_reg_02[] =
275 static struct reginfo_t rk_init_data_sensor_winseqreg_02[] =
280 #if CONFIG_SENSOR_IIC_ADDR_11
281 static struct reginfo_t rk_init_data_sensor_reg_11[] =
285 static struct reginfo_t rk_init_data_sensor_winseqreg_11[] =
290 #if CONFIG_SENSOR_IIC_ADDR_12
291 static struct reginfo_t rk_init_data_sensor_reg_12[] =
295 static struct reginfo_t rk_init_data_sensor_winseqreg_12[] =
300 static rk_sensor_user_init_data_s rk_init_data_sensor[RK_CAM_NUM] =
302 #if CONFIG_SENSOR_IIC_ADDR_0
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),
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,
325 #if CONFIG_SENSOR_IIC_ADDR_1
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),
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,
348 #if CONFIG_SENSOR_IIC_ADDR_01
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),
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,
371 #if CONFIG_SENSOR_IIC_ADDR_02
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),
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,
394 #if CONFIG_SENSOR_IIC_ADDR_11
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),
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,
417 #if CONFIG_SENSOR_IIC_ADDR_12
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),
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,
442 #include "../../../drivers/media/video/rk30_camera.c"
444 #endif /* CONFIG_VIDEO_RK29 */