msm: camera: Change sensor power up sequence
1) Currently same power up sequence is followed
for all sensors. This request has different power
up sequence for IMX074, OV2720 and MT9M114 sensors
as per vendor recommendation.
2) Remove compile time macro condition in
board file
3) Make sensor config independent of Kconfig
Change-Id: Icbe6da31a8cb510f1d0c73bf29eda74ad74050ac
Signed-off-by: Sreesudhan Ramakrish Ramkumar <srramku@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-8930-camera.c b/arch/arm/mach-msm/board-8930-camera.c
index e0bc723..47a381a 100644
--- a/arch/arm/mach-msm/board-8930-camera.c
+++ b/arch/arm/mach-msm/board-8930-camera.c
@@ -350,16 +350,16 @@
static struct camera_vreg_t msm_8930_back_cam_vreg[] = {
{"mipi_csi_vdd", REG_LDO, 1200000, 1200000, 20000},
- {"cam_vana", REG_LDO, 2800000, 2850000, 85600},
- {"cam_vio", REG_LDO, 1800000, 1800000, 16000},
{"cam_vdig", REG_LDO, 1200000, 1200000, 105000},
+ {"cam_vio", REG_LDO, 1800000, 1800000, 16000},
+ {"cam_vana", REG_LDO, 2800000, 2850000, 85600},
{"cam_vaf", REG_LDO, 2800000, 2850000, 300000},
};
static struct camera_vreg_t msm_8930_front_cam_vreg[] = {
{"mipi_csi_vdd", REG_LDO, 1200000, 1200000, 20000},
- {"cam_vana", REG_LDO, 2800000, 2850000, 85600},
{"cam_vio", REG_LDO, 1800000, 1800000, 16000},
+ {"cam_vana", REG_LDO, 2800000, 2850000, 85600},
{"cam_vdig", REG_LDO, 1200000, 1200000, 105000},
};
@@ -409,7 +409,6 @@
.cam_gpio_set_tbl_size = ARRAY_SIZE(msm8930_back_cam_gpio_set_tbl),
};
-#ifdef CONFIG_IMX074_ACT
static struct i2c_board_info imx074_actuator_i2c_info = {
I2C_BOARD_INFO("imx074_act", 0x11),
};
@@ -420,9 +419,7 @@
.vcm_pwd = 0,
.vcm_enable = 1,
};
-#endif
-#ifdef CONFIG_IMX074
static struct msm_camera_sensor_flash_data flash_imx074 = {
.flash_type = MSM_CAMERA_FLASH_LED,
#ifdef CONFIG_MSM_CAMERA_FLASH
@@ -445,21 +442,25 @@
.sensor_platform_info = &sensor_board_info_imx074,
.csi_if = 1,
.camera_type = BACK_CAMERA_2D,
-#ifdef CONFIG_IMX074_ACT
.actuator_info = &imx074_actuator_info
-#endif
};
-#endif
-#ifdef CONFIG_MT9M114
+static struct camera_vreg_t msm_8930_mt9m114_vreg[] = {
+ {"mipi_csi_vdd", REG_LDO, 1200000, 1200000, 20000},
+ {"cam_vio", REG_LDO, 1800000, 1800000, 16000},
+ {"cam_vdig", REG_LDO, 1200000, 1200000, 105000},
+ {"cam_vana", REG_LDO, 2800000, 2850000, 85600},
+ {"cam_vaf", REG_LDO, 2800000, 2850000, 300000},
+};
+
static struct msm_camera_sensor_flash_data flash_mt9m114 = {
.flash_type = MSM_CAMERA_FLASH_NONE
};
static struct msm_camera_sensor_platform_info sensor_board_info_mt9m114 = {
.mount_angle = 90,
- .cam_vreg = msm_8930_back_cam_vreg,
- .num_vreg = ARRAY_SIZE(msm_8930_back_cam_vreg),
+ .cam_vreg = msm_8930_mt9m114_vreg,
+ .num_vreg = ARRAY_SIZE(msm_8930_mt9m114_vreg),
.gpio_conf = &msm_8930_back_cam_gpio_conf,
};
@@ -471,9 +472,7 @@
.csi_if = 1,
.camera_type = BACK_CAMERA_2D,
};
-#endif
-#ifdef CONFIG_OV2720
static struct msm_camera_sensor_flash_data flash_ov2720 = {
.flash_type = MSM_CAMERA_FLASH_NONE,
};
@@ -493,7 +492,6 @@
.csi_if = 1,
.camera_type = FRONT_CAMERA_2D,
};
-#endif
static struct camera_vreg_t msm_8930_s5k3l1yx_vreg[] = {
{"mipi_csi_vdd", REG_LDO, 1200000, 1200000, 20000},
@@ -539,18 +537,14 @@
#ifdef CONFIG_I2C
struct i2c_board_info msm8930_camera_i2c_boardinfo[] = {
-#ifdef CONFIG_IMX074
{
I2C_BOARD_INFO("imx074", 0x1A),
.platform_data = &msm_camera_sensor_imx074_data,
},
-#endif
-#ifdef CONFIG_OV2720
{
I2C_BOARD_INFO("ov2720", 0x6C),
.platform_data = &msm_camera_sensor_ov2720_data,
},
-#endif
{
I2C_BOARD_INFO("mt9m114", 0x48),
.platform_data = &msm_camera_sensor_mt9m114_data,
diff --git a/arch/arm/mach-msm/board-8960-camera.c b/arch/arm/mach-msm/board-8960-camera.c
index fbe223d..87cb105 100644
--- a/arch/arm/mach-msm/board-8960-camera.c
+++ b/arch/arm/mach-msm/board-8960-camera.c
@@ -421,16 +421,16 @@
static struct camera_vreg_t msm_8960_back_cam_vreg[] = {
{"mipi_csi_vdd", REG_LDO, 1200000, 1200000, 20000},
- {"cam_vana", REG_LDO, 2800000, 2850000, 85600},
- {"cam_vio", REG_VS, 0, 0, 0},
{"cam_vdig", REG_LDO, 1200000, 1200000, 105000},
+ {"cam_vio", REG_VS, 0, 0, 0},
+ {"cam_vana", REG_LDO, 2800000, 2850000, 85600},
{"cam_vaf", REG_LDO, 2800000, 2800000, 300000},
};
static struct camera_vreg_t msm_8960_front_cam_vreg[] = {
{"mipi_csi_vdd", REG_LDO, 1200000, 1200000, 20000},
- {"cam_vana", REG_LDO, 2800000, 2850000, 85600},
{"cam_vio", REG_VS, 0, 0, 0},
+ {"cam_vana", REG_LDO, 2800000, 2850000, 85600},
{"cam_vdig", REG_LDO, 1200000, 1200000, 105000},
};
@@ -480,7 +480,6 @@
.cam_gpio_set_tbl_size = ARRAY_SIZE(msm8960_back_cam_gpio_set_tbl),
};
-#ifdef CONFIG_IMX074_ACT
static struct i2c_board_info imx074_actuator_i2c_info = {
I2C_BOARD_INFO("imx074_act", 0x11),
};
@@ -491,9 +490,7 @@
.vcm_pwd = 0,
.vcm_enable = 1,
};
-#endif
-#ifdef CONFIG_IMX074
static struct msm_camera_sensor_flash_data flash_imx074 = {
.flash_type = MSM_CAMERA_FLASH_LED,
#ifdef CONFIG_MSM_CAMERA_FLASH
@@ -516,21 +513,25 @@
.sensor_platform_info = &sensor_board_info_imx074,
.csi_if = 1,
.camera_type = BACK_CAMERA_2D,
-#ifdef CONFIG_IMX074_ACT
.actuator_info = &imx074_actuator_info
-#endif
};
-#endif
-#ifdef CONFIG_MT9M114
+static struct camera_vreg_t msm_8960_mt9m114_vreg[] = {
+ {"mipi_csi_vdd", REG_LDO, 1200000, 1200000, 20000},
+ {"cam_vio", REG_VS, 0, 0, 0},
+ {"cam_vdig", REG_LDO, 1200000, 1200000, 105000},
+ {"cam_vana", REG_LDO, 2800000, 2850000, 85600},
+ {"cam_vaf", REG_LDO, 2800000, 2800000, 300000},
+};
+
static struct msm_camera_sensor_flash_data flash_mt9m114 = {
.flash_type = MSM_CAMERA_FLASH_NONE
};
static struct msm_camera_sensor_platform_info sensor_board_info_mt9m114 = {
.mount_angle = 90,
- .cam_vreg = msm_8960_back_cam_vreg,
- .num_vreg = ARRAY_SIZE(msm_8960_back_cam_vreg),
+ .cam_vreg = msm_8960_mt9m114_vreg,
+ .num_vreg = ARRAY_SIZE(msm_8960_mt9m114_vreg),
.gpio_conf = &msm_8960_back_cam_gpio_conf,
};
@@ -542,9 +543,7 @@
.csi_if = 1,
.camera_type = BACK_CAMERA_2D,
};
-#endif
-#ifdef CONFIG_OV2720
static struct msm_camera_sensor_flash_data flash_ov2720 = {
.flash_type = MSM_CAMERA_FLASH_NONE,
};
@@ -564,7 +563,6 @@
.csi_if = 1,
.camera_type = FRONT_CAMERA_2D,
};
-#endif
static struct camera_vreg_t msm_8960_s5k3l1yx_vreg[] = {
{"mipi_csi_vdd", REG_LDO, 1200000, 1200000, 20000},
@@ -660,18 +658,14 @@
#ifdef CONFIG_I2C
static struct i2c_board_info msm8960_camera_i2c_boardinfo[] = {
-#ifdef CONFIG_IMX074
{
I2C_BOARD_INFO("imx074", 0x1A),
.platform_data = &msm_camera_sensor_imx074_data,
},
-#endif
-#ifdef CONFIG_OV2720
{
I2C_BOARD_INFO("ov2720", 0x6C),
.platform_data = &msm_camera_sensor_ov2720_data,
},
-#endif
{
I2C_BOARD_INFO("mt9m114", 0x48),
.platform_data = &msm_camera_sensor_mt9m114_data,
diff --git a/drivers/media/video/msm/Kconfig b/drivers/media/video/msm/Kconfig
index ca44c34..d4a605c 100644
--- a/drivers/media/video/msm/Kconfig
+++ b/drivers/media/video/msm/Kconfig
@@ -33,8 +33,7 @@
MICRON 2M YUV Sensor
config IMX074
bool "Sensor IMX074 (BAYER 13.5M)"
- depends on MSM_CAMERA && (ARCH_MSM8X60 || ARCH_MSM8960)
- default y
+ depends on MSM_CAMERA
---help---
SONY 13.5 MP Bayer Sensor
config OV5640
@@ -51,7 +50,7 @@
Omni Vision VGA YUV Sensor for QRD Devices
config MT9M114
bool "Sensor MT9M114 (YUV 1.26M)"
- depends on MSM_CAMERA && ARCH_MSM8960
+ depends on MSM_CAMERA
---help---
APTINA 1.26 MP yuv Sensor
config WEBCAM_OV7692
@@ -120,8 +119,7 @@
config IMX074_ACT
bool "Actuator IMX074 (BAYER 13.5M)"
- depends on MSM_CAMERA && ARCH_MSM8960
- default y
+ depends on MSM_CAMERA
---help---
Actuator for SONY 13.5 MP Bayer Sensor
@@ -177,8 +175,7 @@
config OV2720
bool "Sensor ov2720 (Omnivision 2MP)"
- depends on MSM_CAMERA && ARCH_MSM8960
- default y
+ depends on MSM_CAMERA
config VB6801
bool "Sensor vb6801"