diff options
author | Dmitry Lavnikevich <d.lavnikevich@sam-solutions.net> | 2013-05-03 21:25:49 +0300 |
---|---|---|
committer | Justin Waters <justin.waters@timesys.com> | 2013-11-07 12:19:30 -0500 |
commit | fc35bae9a23509e181cb5f1ac437208f79be40b5 (patch) | |
tree | 4791888deb17c451e8bf5934c2ba060cf00e6e3d /arch | |
parent | c064b6895b4ad23d8d2c30aa8c18c95bed8c5df3 (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.c | 13 |
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), }, }; |