summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorDmitry Lavnikevich <d.lavnikevich@sam-solutions.net>2013-05-03 21:25:49 +0300
committerJustin Waters <justin.waters@timesys.com>2013-11-07 12:19:30 -0500
commitfc35bae9a23509e181cb5f1ac437208f79be40b5 (patch)
tree4791888deb17c451e8bf5934c2ba060cf00e6e3d /arch
parentc064b6895b4ad23d8d2c30aa8c18c95bed8c5df3 (diff)
Added base implementation of tw9910.
* soc_camera driver now tries to call enum_input, g_input and s_input handlers from host camera driver if such exists; * tw9910 v4l device type redefined from V4L2_INPUT_TYPE_TUNER to V4L2_INPUT_TYPE_CAMERA; * added basic implementation of g_input and s_input for managing current videoinput handlers to tw9910 driver; Note: currently deinterlacing is disabled by default in the mxc_ipu driver so tw9910 returns interlaced image. Deinterlacing mode can be hardcoded on in the csi_enc_setup(struct mxc_camera_dev *cam) from drivers/media/video/mxc_ipu_csi_enc.c. Signed-off-by: Uladzimir Bely <u.bely@sam-solutions.net> Signed-off-by: Christian Hemp <c.hemp@phytec.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx6/board-mx6q_phyflex.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_phyflex.c b/arch/arm/mach-mx6/board-mx6q_phyflex.c
index 4c3e434547e9..fc41f71b727c 100644
--- a/arch/arm/mach-mx6/board-mx6q_phyflex.c
+++ b/arch/arm/mach-mx6/board-mx6q_phyflex.c
@@ -57,6 +57,7 @@
#include <linux/spi/max7301.h>
#include <linux/can/platform/mcp251x.h>
#include <sound/tlv320aic3x.h>
+#include <media/tw9910.h>
#include <linux/i2c-gpio.h>
#include <linux/w1-gpio.h>
@@ -1037,11 +1038,18 @@ static struct i2c_board_info phyflex_cameras[] = {
[4] = {
I2C_BOARD_INFO("mt9v022", 0x48), /* CTRL1 = 1 */
},
+ [5] = {
+ I2C_BOARD_INFO("tw9910", 0x45), /* CTRL1 = 1 */
+ },
};
#define SOC_CAM_LINK(bus, bi, i2c_adapter) \
.bus_id = bus, .board_info = bi, .i2c_adapter_id = i2c_adapter
+struct tw9910_video_info tw9910_info = {
+ .buswidth = SOCAM_DATAWIDTH_8,
+ .mpout = TW9910_MPO_RTCO,
+};
static struct soc_camera_link phyflex_iclinks[] = {
{
@@ -1049,6 +1057,9 @@ static struct soc_camera_link phyflex_iclinks[] = {
}, {
SOC_CAM_LINK(0, &phyflex_cameras[2], 2)
}, {
+ SOC_CAM_LINK(1, &phyflex_cameras[5], 2),
+ .priv = &tw9910_info,
+ }, {
SOC_CAM_LINK(1, &phyflex_cameras[1], 2)
}, {
SOC_CAM_LINK(1, &phyflex_cameras[3], 2)
@@ -1071,6 +1082,8 @@ static struct platform_device mxc_ipu_cameras[] = {
SOC_CAM_PDRV(3, phyflex_iclinks),
}, {
SOC_CAM_PDRV(4, phyflex_iclinks),
+ }, {
+ SOC_CAM_PDRV(5, phyflex_iclinks),
},
};