summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorBhuvanChandra.DV <bhuvanchandra.dv@toradex.com>2016-04-20 04:52:16 +0000
committerDominik Sliwa <dominik.sliwa@toradex.com>2016-06-22 15:29:34 +0200
commitc33fe5aa20f2615f86762f8d68d087ca6d077d6c (patch)
tree6156c3c8d085071ad2fddb7a19644c0d6436d291 /arch
parentc7f1bd6c243e8b2ea22dc964ead49318e710ef05 (diff)
apalis_t30: v4l2: Epson S2D13P04 integration
Integrate Epson S2D13P04 video decoder support. Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/configs/apalis_t30_defconfig1
-rw-r--r--arch/arm/mach-tegra/board-apalis_t30.c36
2 files changed, 37 insertions, 0 deletions
diff --git a/arch/arm/configs/apalis_t30_defconfig b/arch/arm/configs/apalis_t30_defconfig
index 52e9fc2e88d1..21c8cd4d1fe2 100644
--- a/arch/arm/configs/apalis_t30_defconfig
+++ b/arch/arm/configs/apalis_t30_defconfig
@@ -288,6 +288,7 @@ CONFIG_TEGRA_NVAVP=y
CONFIG_SOC_CAMERA=y
CONFIG_SOC_CAMERA_AS0260=m
CONFIG_SOC_CAMERA_MAX9526=m
+CONFIG_SOC_CAMERA_S2D13P04=m
CONFIG_SOC_CAMERA_OV5640=m
CONFIG_SOC_CAMERA_OV7670SOC=m
CONFIG_SOC_CAMERA_TVP5150=m
diff --git a/arch/arm/mach-tegra/board-apalis_t30.c b/arch/arm/mach-tegra/board-apalis_t30.c
index 21f39010e0ad..ec8850eac216 100644
--- a/arch/arm/mach-tegra/board-apalis_t30.c
+++ b/arch/arm/mach-tegra/board-apalis_t30.c
@@ -346,6 +346,38 @@ static struct platform_device soc_camera_tvp5150soc = {
.name = "soc-camera-pdrv",
};
#endif /* CONFIG_SOC_CAMERA_TVP5150 | CONFIG_SOC_CAMERA_TVP5150_MODULE */
+#if defined(CONFIG_SOC_CAMERA_S2D13P04) || \
+ defined(CONFIG_SOC_CAMERA_S2D13P04_MODULE)
+static struct i2c_board_info camera_i2c_s2d13p04 = {
+ I2C_BOARD_INFO("s2d13p04", 0x37),
+};
+
+static struct tegra_camera_platform_data s2d13p04_platform_data = {
+ .disable_camera = tegra_camera_disable,
+ .enable_camera = tegra_camera_enable,
+ .flip_h = 0,
+ .flip_v = 0,
+ .internal_sync = false,
+ .port = TEGRA_CAMERA_PORT_VIP,
+ .vip_h_active_start = 0x66,
+ .vip_v_active_start = 0x21,
+};
+
+static struct soc_camera_link iclink_s2d13p04 = {
+ .board_info = &camera_i2c_s2d13p04,
+ .bus_id = -1, /* This must match the .id of tegra_vi01_device */
+ .i2c_adapter_id = 2,
+ .priv = &s2d13p04_platform_data,
+};
+
+static struct platform_device soc_camera_s2d13p04 = {
+ .dev = {
+ .platform_data = &iclink_s2d13p04,
+ },
+ .id = 7,
+ .name = "soc-camera-pdrv",
+};
+#endif /* CONFIG_SOC_CAMERA_S2D13P04 | CONFIG_SOC_CAMERA_S2D13P04_MODULE */
#endif /* CONFIG_VIDEO_TEGRA | CONFIG_VIDEO_TEGRA_MODULE */
/* CAN */
@@ -1653,6 +1685,10 @@ static void __init apalis_t30_init(void)
defined(CONFIG_SOC_CAMERA_TVP5150_MODULE)
platform_device_register(&soc_camera_tvp5150soc);
#endif
+#if defined(CONFIG_SOC_CAMERA_S2D13P04) || \
+ defined(CONFIG_SOC_CAMERA_S2D13P04_MODULE)
+ platform_device_register(&soc_camera_s2d13p04);
+#endif
#endif /* CONFIG_VIDEO_TEGRA | CONFIG_VIDEO_TEGRA_MODULE */
tegra_release_bootloader_fb();