camera: fix camera driver cann't support dual same sensor
authorddl <ddl@rockchip.com>
Tue, 26 Apr 2011 08:56:03 +0000 (16:56 +0800)
committerddl <ddl@rockchip.com>
Tue, 26 Apr 2011 08:56:03 +0000 (16:56 +0800)
arch/arm/mach-rk29/board-rk29sdk.c
arch/arm/mach-rk29/include/mach/rk29_camera.h
drivers/media/video/mt9d112.c
drivers/media/video/mt9p111.c
drivers/media/video/ov2655.c
drivers/media/video/ov2659.c
drivers/media/video/ov5640.c
drivers/media/video/ov5642.c
drivers/media/video/s5k6aa.c

index 74f7b2e562df9d91121d9eac13780b07d9c9dfe2..baa99f77cb8219d2c8d2826361fdcbfa63238f32 100755 (executable)
@@ -686,29 +686,43 @@ static struct i2c_board_info __initdata board_i2c3_devices[] = {
  * author: ddl@rock-chips.com
  *****************************************************************************************/
 #ifdef CONFIG_VIDEO_RK29
-#define SENSOR_NAME_0 RK29_CAM_SENSOR_NAME_OV5642                      /* back camera sensor */
-#define SENSOR_IIC_ADDR_0          0x78
-#define SENSOR_IIC_ADAPTER_ID_0    1
-#define SENSOR_POWER_PIN_0         INVALID_GPIO
-#define SENSOR_RESET_PIN_0         INVALID_GPIO
-#define SENSOR_POWERDN_PIN_0       RK29_PIN6_PB7
-#define SENSOR_FALSH_PIN_0         INVALID_GPIO
-#define SENSOR_POWERACTIVE_LEVEL_0 RK29_CAM_POWERACTIVE_L
-#define SENSOR_RESETACTIVE_LEVEL_0 RK29_CAM_RESETACTIVE_L
-#define SENSOR_POWERDNACTIVE_LEVEL_0 RK29_CAM_POWERDNACTIVE_H
-#define SENSOR_FLASHACTIVE_LEVEL_0 RK29_CAM_FLASHACTIVE_L
-
-#define SENSOR_NAME_1 RK29_CAM_SENSOR_NAME_OV2659                      /* front camera sensor */
-#define SENSOR_IIC_ADDR_1          0x60
-#define SENSOR_IIC_ADAPTER_ID_1    1
-#define SENSOR_POWER_PIN_1         INVALID_GPIO
-#define SENSOR_RESET_PIN_1         INVALID_GPIO
-#define SENSOR_POWERDN_PIN_1       RK29_PIN5_PD7
-#define SENSOR_FALSH_PIN_1         INVALID_GPIO
-#define SENSOR_POWERACTIVE_LEVEL_1 RK29_CAM_POWERACTIVE_L
-#define SENSOR_RESETACTIVE_LEVEL_1 RK29_CAM_RESETACTIVE_L
-#define SENSOR_POWERDNACTIVE_LEVEL_1 RK29_CAM_POWERDNACTIVE_H
-#define SENSOR_FLASHACTIVE_LEVEL_1 RK29_CAM_FLASHACTIVE_L
+/*---------------- Camera Sensor Configuration Begin ------------------------*/
+#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_POWER_PIN_0         INVALID_GPIO
+#define CONFIG_SENSOR_RESET_PIN_0         INVALID_GPIO
+#define CONFIG_SENSOR_POWERDN_PIN_0       RK29_PIN6_PB7
+#define CONFIG_SENSOR_FALSH_PIN_0         INVALID_GPIO
+#define CONFIG_SENSOR_POWERACTIVE_LEVEL_0 RK29_CAM_POWERACTIVE_L
+#define CONFIG_SENSOR_RESETACTIVE_LEVEL_0 RK29_CAM_RESETACTIVE_L
+#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0 RK29_CAM_POWERDNACTIVE_H
+#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_0 RK29_CAM_FLASHACTIVE_L
+
+#define CONFIG_SENSOR_1 RK29_CAM_SENSOR_OV2659                      /* front camera sensor */
+#define CONFIG_SENSOR_IIC_ADDR_1           0x60
+#define CONFIG_SENSOR_IIC_ADAPTER_ID_1    1
+#define CONFIG_SENSOR_POWER_PIN_1         INVALID_GPIO
+#define CONFIG_SENSOR_RESET_PIN_1         INVALID_GPIO
+#define CONFIG_SENSOR_POWERDN_PIN_1       RK29_PIN5_PD7
+#define CONFIG_SENSOR_FALSH_PIN_1         INVALID_GPIO
+#define CONFIG_SENSOR_POWERACTIVE_LEVEL_1 RK29_CAM_POWERACTIVE_L
+#define CONFIG_SENSOR_RESETACTIVE_LEVEL_1 RK29_CAM_RESETACTIVE_L
+#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1 RK29_CAM_POWERDNACTIVE_H
+#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_1 RK29_CAM_FLASHACTIVE_L
+/*---------------- Camera Sensor Configuration End------------------------*/
+
+#define _CONS(a,b) a##b
+#define CONS(a,b) _CONS(a,b)
+
+#define __STR(x) #x
+#define _STR(x) __STR(x)
+#define STR(x) _STR(x)
+
+#define SENSOR_NAME_0 STR(CONFIG_SENSOR_0)                     /* back camera sensor */
+#define SENSOR_NAME_1 STR(CONFIG_SENSOR_1)                     /* front camera sensor */
+#define SENSOR_DEVICE_NAME_0  STR(CONS(CONFIG_SENSOR_0, _back))
+#define SENSOR_DEVICE_NAME_1  STR(CONS(CONFIG_SENSOR_1, _front))
 
 static int rk29_sensor_io_init(void);
 static int rk29_sensor_io_deinit(int sensor);
@@ -720,21 +734,21 @@ static struct rk29camera_platform_data rk29_camera_platform_data = {
     .sensor_ioctrl = rk29_sensor_ioctrl,
     .gpio_res = {
         {
-            .gpio_reset = SENSOR_RESET_PIN_0,
-            .gpio_power = SENSOR_POWER_PIN_0,
-            .gpio_powerdown = SENSOR_POWERDN_PIN_0,
-            .gpio_flash = SENSOR_FALSH_PIN_0,
-            .gpio_flag = (SENSOR_POWERACTIVE_LEVEL_0|SENSOR_RESETACTIVE_LEVEL_0|SENSOR_POWERDNACTIVE_LEVEL_0|SENSOR_FLASHACTIVE_LEVEL_0),
+            .gpio_reset = CONFIG_SENSOR_RESET_PIN_0,
+            .gpio_power = CONFIG_SENSOR_POWER_PIN_0,
+            .gpio_powerdown = CONFIG_SENSOR_POWERDN_PIN_0,
+            .gpio_flash = CONFIG_SENSOR_FALSH_PIN_0,
+            .gpio_flag = (CONFIG_SENSOR_POWERACTIVE_LEVEL_0|CONFIG_SENSOR_RESETACTIVE_LEVEL_0|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0|CONFIG_SENSOR_FLASHACTIVE_LEVEL_0),
             .gpio_init = 0,
-            .dev_name = SENSOR_NAME_0,
+            .dev_name = SENSOR_DEVICE_NAME_0,
         }, {
-            .gpio_reset = SENSOR_RESET_PIN_1,
-            .gpio_power = SENSOR_POWER_PIN_1,
-            .gpio_powerdown = SENSOR_POWERDN_PIN_1,
-            .gpio_flash = SENSOR_FALSH_PIN_1,
-            .gpio_flag = (SENSOR_POWERACTIVE_LEVEL_1|SENSOR_RESETACTIVE_LEVEL_1|SENSOR_POWERDNACTIVE_LEVEL_1|SENSOR_FLASHACTIVE_LEVEL_1),
+            .gpio_reset = CONFIG_SENSOR_RESET_PIN_1,
+            .gpio_power = CONFIG_SENSOR_POWER_PIN_1,
+            .gpio_powerdown = CONFIG_SENSOR_POWERDN_PIN_1,
+            .gpio_flash = CONFIG_SENSOR_FALSH_PIN_1,
+            .gpio_flag = (CONFIG_SENSOR_POWERACTIVE_LEVEL_1|CONFIG_SENSOR_RESETACTIVE_LEVEL_1|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1|CONFIG_SENSOR_FLASHACTIVE_LEVEL_1),
             .gpio_init = 0,
-            .dev_name = SENSOR_NAME_1,
+            .dev_name = SENSOR_DEVICE_NAME_1,
         }
     },
        #ifdef CONFIG_VIDEO_RK29_WORK_IPP
@@ -930,10 +944,10 @@ static int rk29_sensor_ioctrl(struct device *dev,enum rk29camera_ioctrl_cmd cmd,
                                if (camera_io_init & RK29_CAM_POWERDNACTIVE_MASK) {
                                        if (on) {
                                        gpio_set_value(camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
-                                       //printk("\n%s..%s..PowerDownPin=%d ..PinLevel = %x \n",__FUNCTION__,dev_name(dev),camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
+                                       printk("\n%s..%s..PowerDownPin=%d ..PinLevel = %x \n",__FUNCTION__,dev_name(dev),camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
                                        } else {
                                                gpio_set_value(camera_powerdown,(((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
-                                       //printk("\n%s..%s..PowerDownPin= %d..PinLevel = %x   \n",__FUNCTION__,dev_name(dev), camera_powerdown, (((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
+                                       printk("\n%s..%s..PowerDownPin= %d..PinLevel = %x   \n",__FUNCTION__,dev_name(dev), camera_powerdown, (((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
                                }
                                } else {
                                        ret = RK29_CAM_EIO_REQUESTFAIL;
@@ -1012,10 +1026,10 @@ static int rk29_sensor_powerdown(struct device *dev, int on)
 {
        return rk29_sensor_ioctrl(dev,Cam_PowerDown,on);
 }
-#if (SENSOR_IIC_ADDR_0 != 0x00)
+#if (CONFIG_SENSOR_IIC_ADDR_0 != 0x00)
 static struct i2c_board_info rk29_i2c_cam_info_0[] = {
        {
-               I2C_BOARD_INFO(SENSOR_NAME_0, SENSOR_IIC_ADDR_0>>1)
+               I2C_BOARD_INFO(SENSOR_NAME_0, CONFIG_SENSOR_IIC_ADDR_0>>1)
        },
 };
 
@@ -1024,7 +1038,7 @@ static struct soc_camera_link rk29_iclink_0 = {
        .power          = rk29_sensor_power,
        .powerdown  = rk29_sensor_powerdown,
        .board_info     = &rk29_i2c_cam_info_0[0],
-       .i2c_adapter_id = SENSOR_IIC_ADAPTER_ID_0,
+       .i2c_adapter_id = CONFIG_SENSOR_IIC_ADAPTER_ID_0,
        .module_name    = SENSOR_NAME_0,
 };
 
@@ -1033,14 +1047,14 @@ static struct platform_device rk29_soc_camera_pdrv_0 = {
        .name   = "soc-camera-pdrv",
        .id     = 0,
        .dev    = {
-               .init_name = SENSOR_NAME_0,
+               .init_name = SENSOR_DEVICE_NAME_0,
                .platform_data = &rk29_iclink_0,
        },
 };
 #endif
 static struct i2c_board_info rk29_i2c_cam_info_1[] = {
        {
-               I2C_BOARD_INFO(SENSOR_NAME_1, SENSOR_IIC_ADDR_1>>1)
+               I2C_BOARD_INFO(SENSOR_NAME_1, CONFIG_SENSOR_IIC_ADDR_1>>1)
        },
 };
 
@@ -1049,7 +1063,7 @@ static struct soc_camera_link rk29_iclink_1 = {
        .power          = rk29_sensor_power,
        .powerdown  = rk29_sensor_powerdown,
        .board_info     = &rk29_i2c_cam_info_1[0],
-       .i2c_adapter_id = SENSOR_IIC_ADAPTER_ID_1,
+       .i2c_adapter_id = CONFIG_SENSOR_IIC_ADAPTER_ID_1,
        .module_name    = SENSOR_NAME_1,
 };
 
@@ -1058,7 +1072,7 @@ static struct platform_device rk29_soc_camera_pdrv_1 = {
        .name   = "soc-camera-pdrv",
        .id     = 1,
        .dev    = {
-               .init_name = SENSOR_NAME_1,
+               .init_name = SENSOR_DEVICE_NAME_1,
                .platform_data = &rk29_iclink_1,
        },
 };
@@ -1627,7 +1641,7 @@ static struct platform_device *devices[] __initdata = {
 #endif
 #ifdef CONFIG_VIDEO_RK29
        &rk29_device_camera,      /* ddl@rock-chips.com : camera support  */
-       #if (SENSOR_IIC_ADDR_0 != 0x00)
+       #if (CONFIG_SENSOR_IIC_ADDR_0 != 0x00)
        &rk29_soc_camera_pdrv_0,
        #endif
        &rk29_soc_camera_pdrv_1,
index a8351f5fbe1ff56a1f0b856472e7b6b245709835..f5265421d859e578df243f1368b610f2d38d4e2f 100644 (file)
 #define RK29_CAM_EIO_INVALID -1
 #define RK29_CAM_EIO_REQUESTFAIL -2
 
+#define RK29_CAM_SENSOR_OV9650 ov9650
+#define RK29_CAM_SENSOR_OV2655 ov2655
+#define RK29_CAM_SENSOR_OV2659 ov2659
+#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_MT9P111 mt9p111
+
 #define RK29_CAM_SENSOR_NAME_OV9650 "ov9650"
 #define RK29_CAM_SENSOR_NAME_OV2655 "ov2655"
 #define RK29_CAM_SENSOR_NAME_OV2659 "ov2659"
index 8bfb7630936a454b49eb5efbe9e5bb14c705560c..9ebdb4ba0da8593fab29d1be021a8488e2cc2f41 100755 (executable)
@@ -43,7 +43,7 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define MAX(x,y)    ((x>y) ? x: y)
 
 /* Sensor Driver Configuration */
-#define SENSOR_NAME mt9d112
+#define SENSOR_NAME RK29_CAM_SENSOR_MT9D112
 #define SENSOR_V4L2_IDENT V4L2_IDENT_MT9D112
 #define SENSOR_ID 0x1580
 #define SENSOR_ID_REG 0x3000
index f55c2d1beb4734c502d747db971adfce45e4663a..9beb04630f81e3b99cdc761e315a3f8473c6b2c5 100755 (executable)
@@ -44,7 +44,7 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define MAX(x,y)    ((x>y) ? x: y)
 
 /* Sensor Driver Configuration */
-#define SENSOR_NAME mt9p111
+#define SENSOR_NAME RK29_CAM_SENSOR_MT9P111
 #define SENSOR_V4L2_IDENT V4L2_IDENT_MT9P111
 #define SENSOR_ID SEQUENCE_END
 #define SENSOR_ID_REG SEQUENCE_END
index 80b1c53609162ef02624c6736ded1da85ce79659..27cba5dd00f1af522740af81505833c6be236d0b 100755 (executable)
@@ -43,7 +43,7 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define MAX(x,y)    ((x>y) ? x: y)
 
 /* Sensor Driver Configuration */
-#define SENSOR_NAME ov2655
+#define SENSOR_NAME RK29_CAM_SENSOR_OV2655
 #define SENSOR_V4L2_IDENT V4L2_IDENT_OV2655
 #define SENSOR_ID 0x2656
 #define SENSOR_MIN_WIDTH    176
index e4d3421dced62dc3eba747b32e9ec2c43fd7b198..8a17e2395dc4e12edf648bfccc734efe57a69a12 100755 (executable)
@@ -43,7 +43,7 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define MAX(x,y)    ((x>y) ? x: y)
 
 /* Sensor Driver Configuration */
-#define SENSOR_NAME ov2659
+#define SENSOR_NAME RK29_CAM_SENSOR_OV2659
 #define SENSOR_V4L2_IDENT V4L2_IDENT_OV2659
 #define SENSOR_ID 0x2656
 #define SENSOR_MIN_WIDTH    800
index 4ac1fdfad417f1c5948cd1d27fede2e4d51c37f1..e35300284e51313615b6b4c1d57a55a7bb0f5424 100755 (executable)
@@ -43,7 +43,7 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define MAX(x,y)    ((x>y) ? x: y)
 
 /* Sensor Driver Configuration */
-#define SENSOR_NAME ov5640
+#define SENSOR_NAME RK29_CAM_SENSOR_OV5640
 #define SENSOR_V4L2_IDENT V4L2_IDENT_OV5640
 #define SENSOR_ID 0x5640
 #define SENSOR_MIN_WIDTH    176
index 3ee18d16d9f2d91ff50d2b86be8b68b7a8ed9ed4..f0c78e9b195d8d0fe28a630a4b876006a733d093 100755 (executable)
@@ -43,7 +43,7 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define MAX(x,y)    ((x>y) ? x: y)
 
 /* Sensor Driver Configuration */
-#define SENSOR_NAME ov5642
+#define SENSOR_NAME RK29_CAM_SENSOR_OV5642
 #define SENSOR_V4L2_IDENT V4L2_IDENT_OV5642
 #define SENSOR_ID 0x5642
 #define SENSOR_MIN_WIDTH    176
index d719e03a8c1ac737a9a2dacab98a9a898a3586da..8aa7aff1710a34e797fb9be92e062578a6334550 100755 (executable)
@@ -44,7 +44,7 @@ module_param(debug, int, S_IRUGO|S_IWUSR);
 #define MAX(x,y)    ((x>y) ? x: y)
 
 /* Sensor Driver Configuration */
-#define SENSOR_NAME s5k6aa
+#define SENSOR_NAME RK29_CAM_SENSOR_S5K6AA
 #define SENSOR_V4L2_IDENT V4L2_IDENT_S5K66A
 #define SENSOR_ID 0x06aa
 #define SENSOR_ID_REG SEQUENCE_END//0x015a