aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSergio Aguirre <saaguirre@ti.com>2011-12-16 12:58:41 +0800
committerAndy Green <andy.green@linaro.org>2011-12-26 22:32:39 +0800
commit789f80be23405131d8c3c7ee42c3851287227cbb (patch)
tree4b77cb8d85e81ea081275a69ecca5cff5cc17d5a /arch
parentbc7158df2b7fa8fe7ccbfd1665737639c38113a1 (diff)
v4l: Add support for omap4iss driver
This adds a very simplistic driver to utilize the CSI2A interface inside the ISS subsystem in OMAP4, and dump the data to memory. Tested so far on omap4430sdp w/ ES2.1 GP & w/ ES2.2 EMU. Check newly added Documentation/video4linux/omap4_camera.txt for details. Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/plat-omap/include/plat/omap4-iss.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/plat/omap4-iss.h b/arch/arm/plat-omap/include/plat/omap4-iss.h
new file mode 100644
index 00000000000..3a1c6b693ba
--- /dev/null
+++ b/arch/arm/plat-omap/include/plat/omap4-iss.h
@@ -0,0 +1,42 @@
+#ifndef ARCH_ARM_PLAT_OMAP4_ISS_H
+#define ARCH_ARM_PLAT_OMAP4_ISS_H
+
+#include <linux/i2c.h>
+
+struct iss_device;
+
+enum iss_interface_type {
+ ISS_INTERFACE_CSI2A_PHY1,
+};
+
+/**
+ * struct iss_csi2_platform_data - CSI2 interface platform data
+ * @crc: Enable the cyclic redundancy check
+ * @vpclk_div: Video port output clock control
+ */
+struct iss_csi2_platform_data {
+ unsigned crc:1;
+ unsigned vpclk_div:2;
+};
+
+struct iss_subdev_i2c_board_info {
+ struct i2c_board_info *board_info;
+ int i2c_adapter_id;
+};
+
+struct iss_v4l2_subdevs_group {
+ struct iss_subdev_i2c_board_info *subdevs;
+ enum iss_interface_type interface;
+ union {
+ struct iss_csi2_platform_data csi2;
+ } bus; /* gcc < 4.6.0 chokes on anonymous union initializers */
+};
+
+struct iss_platform_data {
+ struct iss_v4l2_subdevs_group *subdevs;
+ void (*set_constraints)(struct iss_device *iss, bool enable);
+};
+
+extern int omap4_init_camera(struct iss_platform_data *pdata,
+ struct omap_board_data *bdata);
+#endif