camera rk30:two cif controls use different ipp mem size.
authorroot <root@zyc-desktop.(none)>
Thu, 15 Mar 2012 10:10:23 +0000 (18:10 +0800)
committerroot <root@zyc-desktop.(none)>
Thu, 15 Mar 2012 10:10:45 +0000 (18:10 +0800)
arch/arm/mach-rk29/include/mach/rk29_camera.h
arch/arm/mach-rk30/board-rk30-sdk.c
drivers/media/video/rk30_camera.c
drivers/media/video/rk30_camera_oneframe.c

index 2d78c35cda2b07528f0395129ed88bc65a7bf587..45fbc3bd11e7753c0dff16abc89695f1f12fd3ed 100755 (executable)
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#ifndef __ASM_ARCH_CAMERA_H_
-#define __ASM_ARCH_CAMERA_H_
-
-#include <linux/videodev2.h>
-
-#define RK29_CAM_DRV_NAME "rk29xx-camera"
-#define RK29_CAM_PLATFORM_DEV_ID 33
-
-#define INVALID_GPIO -1
-
-#define RK29_CAM_IO_SUCCESS 0
-#define RK29_CAM_EIO_INVALID -1
-#define RK29_CAM_EIO_REQUESTFAIL -2
-
-/*---------------- Camera Sensor Must Define Macro Begin  ------------------------*/
-#define RK29_CAM_SENSOR_OV7675 ov7675
-#define RK29_CAM_SENSOR_OV9650 ov9650
-#define RK29_CAM_SENSOR_OV2640 ov2640
-#define RK29_CAM_SENSOR_OV2655 ov2655
-#define RK29_CAM_SENSOR_OV2659 ov2659
-#define RK29_CAM_SENSOR_OV7690 ov7690
-#define RK29_CAM_SENSOR_OV3640 ov3640
-#define RK29_CAM_SENSOR_OV5640 ov5640
-#define RK29_CAM_SENSOR_OV5642 ov5642
-#define RK29_CAM_SENSOR_S5K6AA s5k6aa
-#define RK29_CAM_SENSOR_MT9D112 mt9d112
-#define RK29_CAM_SENSOR_MT9D113 mt9d113
-#define RK29_CAM_SENSOR_MT9P111 mt9p111
-#define RK29_CAM_SENSOR_MT9T111 mt9t111
-#define RK29_CAM_SENSOR_GT2005  gt2005
-#define RK29_CAM_SENSOR_GC0307  gc0307
-#define RK29_CAM_SENSOR_GC0308  gc0308
-#define RK29_CAM_SENSOR_GC0309  gc0309
-#define RK29_CAM_SENSOR_GC2015  gc2015
-#define RK29_CAM_SENSOR_SIV120B  siv120b
-#define RK29_CAM_SENSOR_SID130B  sid130B
-#define RK29_CAM_SENSOR_HI253  hi253
-#define RK29_CAM_SENSOR_HI704  hi704
-#define RK29_CAM_SENSOR_NT99250 nt99250
-
-#define RK29_CAM_SENSOR_NAME_OV7675 "ov7675"
-#define RK29_CAM_SENSOR_NAME_OV9650 "ov9650"
-#define RK29_CAM_SENSOR_NAME_OV2640 "ov2640"
-#define RK29_CAM_SENSOR_NAME_OV2655 "ov2655"
-#define RK29_CAM_SENSOR_NAME_OV2659 "ov2659"
-#define RK29_CAM_SENSOR_NAME_OV7690 "ov7690"
-#define RK29_CAM_SENSOR_NAME_OV3640 "ov3640"
-#define RK29_CAM_SENSOR_NAME_OV5640 "ov5640"
-#define RK29_CAM_SENSOR_NAME_OV5642 "ov5642"
-#define RK29_CAM_SENSOR_NAME_S5K6AA "s5k6aa"
-#define RK29_CAM_SENSOR_NAME_MT9D112 "mt9d112"
-#define RK29_CAM_SENSOR_NAME_MT9D113 "mt9d113"
-#define RK29_CAM_SENSOR_NAME_MT9P111 "mt9p111"
-#define RK29_CAM_SENSOR_NAME_MT9T111 "mt9t111"
-#define RK29_CAM_SENSOR_NAME_GT2005  "gt2005"
-#define RK29_CAM_SENSOR_NAME_GC0307  "gc0307"
-#define RK29_CAM_SENSOR_NAME_GC0308  "gc0308"
-#define RK29_CAM_SENSOR_NAME_GC0309  "gc0309"
-#define RK29_CAM_SENSOR_NAME_GC2015  "gc2015"
-#define RK29_CAM_SENSOR_NAME_SIV120B "siv120b"
-#define RK29_CAM_SENSOR_NAME_SID130B "sid130B"
-#define RK29_CAM_SENSOR_NAME_HI253  "hi253"
-#define RK29_CAM_SENSOR_NAME_HI704  "hi704"
-#define RK29_CAM_SENSOR_NAME_NT99250 "nt99250"
-
-#define ov7675_FULL_RESOLUTION     0x30000            // 0.3 megapixel
-#define ov9650_FULL_RESOLUTION     0x130000           // 1.3 megapixel   
-#define ov2640_FULL_RESOLUTION     0x200000           // 2 megapixel
-#define ov2655_FULL_RESOLUTION     0x200000           // 2 megapixel
-#define ov2659_FULL_RESOLUTION     0x200000           // 2 megapixel
-#define ov7690_FULL_RESOLUTION     0x300000           // 2 megapixel
-#define ov3640_FULL_RESOLUTION     0x300000           // 3 megapixel
-#define ov5640_FULL_RESOLUTION     0x500000           // 5 megapixel
-#define ov5642_FULL_RESOLUTION     0x500000           // 5 megapixel
-#define s5k6aa_FULL_RESOLUTION     0x130000           // 1.3 megapixel
-#define mt9d112_FULL_RESOLUTION    0x200000           // 2 megapixel
-#define mt9d113_FULL_RESOLUTION    0x200000           // 2 megapixel
-#define mt9t111_FULL_RESOLUTION    0x300000           // 3 megapixel
-#define mt9p111_FULL_RESOLUTION    0x500000           // 5 megapixel
-#define gt2005_FULL_RESOLUTION     0x200000           // 2 megapixel
-#define gc0308_FULL_RESOLUTION     0x30000            // 0.3 megapixel
-#define gc0309_FULL_RESOLUTION     0x30000            // 0.3 megapixel
-#define gc2015_FULL_RESOLUTION     0x200000           // 2 megapixel
-#define siv120b_FULL_RESOLUTION     0x30000            // 0.3 megapixel
-#define sid130B_FULL_RESOLUTION     0x200000           // 2 megapixel    
-#define hi253_FULL_RESOLUTION       0x200000           // 2 megapixel
-#define hi704_FULL_RESOLUTION       0x30000            // 0.3 megapixel
-#define nt99250_FULL_RESOLUTION     0x200000           // 2 megapixel
-/*---------------- Camera Sensor Must Define Macro End  ------------------------*/
-
-
-#define RK29_CAM_POWERACTIVE_BITPOS    0x00
-#define RK29_CAM_POWERACTIVE_MASK      (1<<RK29_CAM_POWERACTIVE_BITPOS)
-#define RK29_CAM_POWERACTIVE_H (0x01<<RK29_CAM_POWERACTIVE_BITPOS)
-#define RK29_CAM_POWERACTIVE_L (0x00<<RK29_CAM_POWERACTIVE_BITPOS)
-
-#define RK29_CAM_RESETACTIVE_BITPOS    0x01
-#define RK29_CAM_RESETACTIVE_MASK      (1<<RK29_CAM_RESETACTIVE_BITPOS)
-#define RK29_CAM_RESETACTIVE_H (0x01<<RK29_CAM_RESETACTIVE_BITPOS)
-#define RK29_CAM_RESETACTIVE_L  (0x00<<RK29_CAM_RESETACTIVE_BITPOS)
-
-#define RK29_CAM_POWERDNACTIVE_BITPOS  0x02
-#define RK29_CAM_POWERDNACTIVE_MASK    (1<<RK29_CAM_POWERDNACTIVE_BITPOS)
-#define RK29_CAM_POWERDNACTIVE_H       (0x01<<RK29_CAM_POWERDNACTIVE_BITPOS)
-#define RK29_CAM_POWERDNACTIVE_L       (0x00<<RK29_CAM_POWERDNACTIVE_BITPOS)
-
-#define RK29_CAM_FLASHACTIVE_BITPOS    0x03
-#define RK29_CAM_FLASHACTIVE_MASK      (1<<RK29_CAM_FLASHACTIVE_BITPOS)
-#define RK29_CAM_FLASHACTIVE_H (0x01<<RK29_CAM_FLASHACTIVE_BITPOS)
-#define RK29_CAM_FLASHACTIVE_L  (0x00<<RK29_CAM_FLASHACTIVE_BITPOS)
-
-/* v4l2_subdev_core_ops.ioctl  ioctl_cmd macro */
-#define RK29_CAM_SUBDEV_ACTIVATE            0x00
-#define RK29_CAM_SUBDEV_DEACTIVATE          0x01
-#define RK29_CAM_SUBDEV_IOREQUEST                      0x02
-#define RK29_CAM_SUBDEV_CB_REGISTER         0x03
-
-enum rk29camera_ioctrl_cmd
-{
-       Cam_Power,
-       Cam_Reset,
-       Cam_PowerDown,
-       Cam_Flash
-};
-
-enum rk29sensor_power_cmd
-{
-       Sensor_Reset,
-       Sensor_PowerDown,
-       Sensor_Flash
-};
-
-enum rk29camera_flash_cmd
-{
-    Flash_Off,
-    Flash_On,
-    Flash_Torch
-};
-
-struct rk29camera_gpio_res {
-    unsigned int gpio_reset;
-    unsigned int gpio_power;
-       unsigned int gpio_powerdown;
-       unsigned int gpio_flash;
-    unsigned int gpio_flag;
-       unsigned int gpio_init;
-    
-    const char *dev_name;
-};
-
-struct rk29camera_mem_res {
-       const char *name;
-       unsigned int start;
-       unsigned int size;
-};
-struct rk29camera_info {
-    const char *dev_name;
-    unsigned int orientation;
-    struct v4l2_frmivalenum fival[10];
-};
-struct rk29camera_platform_data {
-    int (*io_init)(void);
-    int (*io_deinit)(int sensor);
-       int (*sensor_ioctrl)(struct device *dev,enum rk29camera_ioctrl_cmd cmd,int on);
-    struct rk29camera_gpio_res gpio_res[2];
-       struct rk29camera_mem_res meminfo;
-    struct rk29camera_info info[2];
-};
-
-struct rk29camera_platform_ioctl_cb {
-    int (*sensor_power_cb)(struct rk29camera_gpio_res *res, int on);
-    int (*sensor_reset_cb)(struct rk29camera_gpio_res *res, int on);
-    int (*sensor_powerdown_cb)(struct rk29camera_gpio_res *res, int on);
-    int (*sensor_flash_cb)(struct rk29camera_gpio_res *res, int on);    
-};
-
-typedef struct rk29_camera_sensor_cb {
-    int (*sensor_cb)(void *arg); 
-}rk29_camera_sensor_cb_s;
-
-#endif /* __ASM_ARCH_CAMERA_H_ */
-
+#include <plat/rk_camera.h>
index ca0f8a12e05543c79ab6d1e8a2a41c51875b3e9f..f94ba5be19cb14573261b492b2fd69e315358d56 100755 (executable)
@@ -57,8 +57,8 @@
 #ifdef CONFIG_VIDEO_RK29
 /*---------------- Camera Sensor Macro Define Begin  ------------------------*/
 /*---------------- Camera Sensor Configuration Macro Begin ------------------------*/
-#define CONFIG_SENSOR_0 RK29_CAM_SENSOR_OV2659//RK_CAM_SENSOR_OV5642                                           /* back camera sensor */
-#define CONFIG_SENSOR_IIC_ADDR_0               0x60//0x78
+#define CONFIG_SENSOR_0 RK29_CAM_SENSOR_OV5642                                         /* back camera sensor */
+#define CONFIG_SENSOR_IIC_ADDR_0               0x78
 #define CONFIG_SENSOR_IIC_ADAPTER_ID_0   1
 #define CONFIG_SENSOR_CIF_INDEX_0                    0
 #define CONFIG_SENSOR_ORIENTATION_0      90
 #define CONFIG_SENSOR_720P_FPS_FIXED_1         30000
 
 #define CONFIG_USE_CIF_0       1
-#define CONFIG_USE_CIF_1      0
+#define CONFIG_USE_CIF_1      1
 #endif //#ifdef CONFIG_VIDEO_RK29
 /*---------------- Camera Sensor Configuration Macro End------------------------*/
 #include "../../../drivers/media/video/rk30_camera.c"
@@ -1065,7 +1065,7 @@ static void __init rk30_reserve(void)
        resource_fb[2].start = board_mem_reserve_add("fb2",RK30_FB0_MEM_SIZE);
        resource_fb[2].end = resource_fb[2].start + RK30_FB0_MEM_SIZE - 1;      
 #endif
-#ifdef CONFIG_VIDEO_RK
+#ifdef CONFIG_VIDEO_RK29
        rk30_camera_request_reserve_mem();
 #endif
        board_mem_reserved();
index 6e22525de6f2553690fa0c2dc8fa7ad3cf8834fb..f9cb9ba5869c462293be65f77656b56b77c5f068 100755 (executable)
@@ -834,7 +834,7 @@ static int rk_sensor_iomux(int pin)
         }\r
         case RK30_PIN3_PA7:\r
         {\r
-             rk30_mux_api_set(GPIO3A7_SDMMC0WRITEPRT_NAME,0);\r
+             rk30_mux_api_set(GPIO3A7_SDMMC0PWREN_NAME,0);\r
             break;     \r
         }\r
         case RK30_PIN3_PB0:\r
index 41f479ef793a165433bab82b0bb981e5cea57b38..d568022b23155761ec31cf1c9bfd3f25caaec7d2 100755 (executable)
@@ -2130,11 +2130,17 @@ static int rk_camera_probe(struct platform_device *pdev)
         pcdev->pdata->io_init();
     }
        #ifdef CONFIG_VIDEO_RK29_WORK_IPP
-       if (pcdev->pdata && (strcmp(pcdev->pdata->meminfo.name,"camera_ipp_mem")==0)) {
+       if (pcdev->pdata && IS_CIF0()) {
                pcdev->vipmem_phybase = pcdev->pdata->meminfo.start;
                pcdev->vipmem_size = pcdev->pdata->meminfo.size;
                RKCAMERA_DG("\n%s Memory(start:0x%x size:0x%x) for IPP obtain \n",__FUNCTION__, pcdev->pdata->meminfo.start,pcdev->pdata->meminfo.size);
-       } else {
+               } 
+       else if (pcdev->pdata){
+               pcdev->vipmem_phybase = pcdev->pdata->meminfo_cif1.start;
+               pcdev->vipmem_size = pcdev->pdata->meminfo_cif1.size;
+               RKCAMERA_DG("\n%s Memory(start:0x%x size:0x%x) for IPP obtain \n",__FUNCTION__, pcdev->pdata->meminfo.start,pcdev->pdata->meminfo.size);
+               }
+       else{
                RKCAMERA_TR("\n%s Memory for IPP have not obtain! IPP Function is fail\n",__FUNCTION__);
                pcdev->vipmem_phybase = 0;
                pcdev->vipmem_size = 0;