|
|
|
|
@ -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
|
|
|
|
|
/*---------------- 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 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
|
|
|
|
|
#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,
|
|
|
|
|
|