aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSuman Kumar <suman@inforcecomputing.com>2013-08-06 18:44:40 +0530
committerNicolas Dechesne <nicolas.dechesne@linaro.org>2014-05-06 17:48:45 -0700
commitccaa74aedd881a1025caed32c29a2e05d1d27c4c (patch)
tree2790bc00234b13344ddd91607ba79c8cbc8aaf2c
parentf74d6413356f01ad6256ed38b604e73f2c3f23e2 (diff)
mipi csi: ov5640: board specific changes to enable ov5640 primary mipi camera
Change-Id: I0132a91e8c3d8e1f5fac3af28b33cb80d718dfb1 Signed-off-by: Suman Kumar <suman@inforcecomputing.com>
-rw-r--r--arch/arm/mach-msm/board-8064-camera.c35
-rwxr-xr-xarch/arm/mach-msm/board-8064-pmic.c3
-rwxr-xr-xarch/arm/mach-msm/clock-8960.c2
-rw-r--r--drivers/media/video/msm/Kconfig14
-rw-r--r--drivers/media/video/msm/Makefile3
-rw-r--r--drivers/media/video/msm/sensors/Makefile1
6 files changed, 51 insertions, 7 deletions
diff --git a/arch/arm/mach-msm/board-8064-camera.c b/arch/arm/mach-msm/board-8064-camera.c
index bc1ededb4431..51fd1eb25c84 100644
--- a/arch/arm/mach-msm/board-8064-camera.c
+++ b/arch/arm/mach-msm/board-8064-camera.c
@@ -636,6 +636,35 @@ static struct msm_camera_sensor_info msm_camera_sensor_mt9m114_data = {
.sensor_type = YUV_SENSOR,
};
+#ifdef CONFIG_OV5640
+static struct msm_camera_sensor_flash_data flash_ov5640 = {
+ .flash_type = MSM_CAMERA_FLASH_NONE
+};
+
+static struct msm_camera_csi_lane_params ov5640_csi_lane_params = {
+ .csi_lane_assign = 0xE4,
+ .csi_lane_mask = 0x3,
+};
+
+static struct msm_camera_sensor_platform_info sensor_board_info_ov5640 =
+{
+ .mount_angle = 0,
+ .gpio_conf = &apq8064_back_cam_gpio_conf,
+ .i2c_conf = &apq8064_back_cam_i2c_conf,
+ .csi_lane_params = &ov5640_csi_lane_params,
+};
+
+static struct msm_camera_sensor_info msm_camera_sensor_ov5640_data = {
+ .sensor_name = "ov5640",
+ .pdata = &msm_camera_csi_device_data[0],
+ .flash_data = &flash_ov5640,
+ .sensor_platform_info = &sensor_board_info_ov5640,
+ .csi_if = 1,
+ .camera_type = BACK_CAMERA_2D,
+ .sensor_type = YUV_SENSOR,
+};
+#endif
+
static struct msm_camera_sensor_flash_data flash_ov2720 = {
.flash_type = MSM_CAMERA_FLASH_NONE,
};
@@ -701,6 +730,12 @@ static struct i2c_board_info apq8064_camera_i2c_boardinfo[] = {
I2C_BOARD_INFO("mt9m114", 0x48),
.platform_data = &msm_camera_sensor_mt9m114_data,
},
+#ifdef CONFIG_OV5640
+ {
+ I2C_BOARD_INFO("ov5640", 0x3C),
+ .platform_data = &msm_camera_sensor_ov5640_data,
+ },
+#endif
{
I2C_BOARD_INFO("ov2720", 0x6C),
.platform_data = &msm_camera_sensor_ov2720_data,
diff --git a/arch/arm/mach-msm/board-8064-pmic.c b/arch/arm/mach-msm/board-8064-pmic.c
index 7c084d247d69..64783b761747 100755
--- a/arch/arm/mach-msm/board-8064-pmic.c
+++ b/arch/arm/mach-msm/board-8064-pmic.c
@@ -131,6 +131,9 @@ static struct pm8xxx_gpio_init pm8921_gpios[] __initdata = {
PM8921_GPIO_INPUT(6, PM_GPIO_PULL_UP_30), /* PCIE_WAKE_N */
PM8921_GPIO_OUTPUT(43, 1, HIGH),
PM8921_GPIO_OUTPUT(44, 1, HIGH),
+#ifdef CONFIG_OV5640
+ PM8921_GPIO_OUTPUT(28,1, MED),
+#endif
};
static struct pm8xxx_gpio_init pm8921_mtp_kp_gpios[] __initdata = {
diff --git a/arch/arm/mach-msm/clock-8960.c b/arch/arm/mach-msm/clock-8960.c
index 273109ac01a0..b304a3c02237 100755
--- a/arch/arm/mach-msm/clock-8960.c
+++ b/arch/arm/mach-msm/clock-8960.c
@@ -5380,6 +5380,7 @@ static struct clk_lookup msm_clocks_8064[] = {
CLK_LOOKUP("cam_clk", cam0_clk.c, "4-0034"),
CLK_LOOKUP("cam_clk", cam0_clk.c, "4-0020"),
CLK_LOOKUP("cam_clk", cam1_clk.c, "4-0048"),
+ CLK_LOOKUP("cam_clk", cam0_clk.c, "4-003c"),
CLK_LOOKUP("cam_clk", cam1_clk.c, "4-006c"),
CLK_LOOKUP("csi_src_clk", csi0_src_clk.c, "msm_csid.0"),
CLK_LOOKUP("csi_src_clk", csi1_src_clk.c, "msm_csid.1"),
@@ -5738,6 +5739,7 @@ static struct clk_lookup msm_clocks_8960_common[] __initdata = {
CLK_LOOKUP("core_clk", pmic_ssbi2_clk.c, ""),
CLK_LOOKUP("mem_clk", rpm_msg_ram_p_clk.c, ""),
CLK_LOOKUP("cam_clk", cam0_clk.c, "4-001a"),
+ CLK_LOOKUP("cam_clk", cam0_clk.c, "4-003c"),
CLK_LOOKUP("cam_clk", cam0_clk.c, "4-006c"),
CLK_LOOKUP("cam_clk", cam0_clk.c, "4-0048"),
CLK_LOOKUP("cam_clk", cam2_clk.c, NULL),
diff --git a/drivers/media/video/msm/Kconfig b/drivers/media/video/msm/Kconfig
index 772e055b3eb7..271a53a96a69 100644
--- a/drivers/media/video/msm/Kconfig
+++ b/drivers/media/video/msm/Kconfig
@@ -36,12 +36,6 @@ config IMX074
depends on MSM_CAMERA
---help---
SONY 13.5 MP Bayer Sensor
-config OV5640
- bool "Sensor OV5640 (YUV 5M)"
- depends on MSM_CAMERA && !MSM_CAMERA_V4L2
- default n
- ---help---
- Omni 5M YUV Sensor
config OV5647
bool "Sensor ov5647 (BAYER 5M)"
@@ -61,6 +55,14 @@ config WEBCAM_OV7692_QRD
default n
---help---
Omni Vision VGA YUV Sensor for QRD Devices
+
+config OV5640
+ bool "Sensor OV5640 (YUV 5M)"
+ depends on MSM_CAMERA
+ default y
+ ---help---
+ OmniVision 5 MP YUV Sensor for Inforce APQ8064 dragon boards
+
config MT9M114
bool "Sensor MT9M114 (YUV 1.26M)"
depends on MSM_CAMERA
diff --git a/drivers/media/video/msm/Makefile b/drivers/media/video/msm/Makefile
index 59216326bd1e..3eb7a9778eda 100644
--- a/drivers/media/video/msm/Makefile
+++ b/drivers/media/video/msm/Makefile
@@ -51,7 +51,8 @@ endif
obj-$(CONFIG_QS_S5K4E1) += qs_s5k4e1.o qs_s5k4e1_reg.o
obj-$(CONFIG_VB6801) += vb6801.o
obj-$(CONFIG_IMX072) += imx072.o imx072_reg.o
-obj-$(CONFIG_OV5640) += ov5640.o
+#ov5640 YUV sensor is now moved to sensors/ov5640_v4l2.c in sensors/Makefile
+#obj-$(CONFIG_OV5640) += ov5640.o
obj-$(CONFIG_MT9D112) += mt9d112.o mt9d112_reg.o
obj-$(CONFIG_MT9D113) += mt9d113.o mt9d113_reg.o
diff --git a/drivers/media/video/msm/sensors/Makefile b/drivers/media/video/msm/sensors/Makefile
index 5e56cce84bdd..0655ee812c5c 100644
--- a/drivers/media/video/msm/sensors/Makefile
+++ b/drivers/media/video/msm/sensors/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_OV8825) += ov8825_v4l2.o
obj-$(CONFIG_IMX074) += imx074_v4l2.o
obj-$(CONFIG_S5K3L1YX) += s5k3l1yx.o
obj-$(CONFIG_OV8830) += ov8830_v4l2.o
+obj-$(CONFIG_OV5640) += ov5640_v4l2.o
obj-$(CONFIG_OV2720) += ov2720.o
obj-$(CONFIG_MT9M114) += mt9m114_v4l2.o
obj-$(CONFIG_S5K4E1) += s5k4e1_v4l2.o