From 338881a5045fe211577e1e9c9088b608b81ca698 Mon Sep 17 00:00:00 2001 From: Scott Jiang Date: Fri, 1 Jun 2012 12:06:25 -0400 Subject: v4l2: add adv7842 video decoder driver Signed-off-by: Scott Jiang Signed-off-by: Bob Liu --- arch/blackfin/mach-bf609/boards/ezkit.c | 99 +++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/arch/blackfin/mach-bf609/boards/ezkit.c b/arch/blackfin/mach-bf609/boards/ezkit.c index adc08e18dbc1..a2f991f914cc 100644 --- a/arch/blackfin/mach-bf609/boards/ezkit.c +++ b/arch/blackfin/mach-bf609/boards/ezkit.c @@ -825,6 +825,10 @@ static struct adau1761_platform_data adau1761_info = { static const unsigned short ppi_req[] = { P_PPI0_D0, P_PPI0_D1, P_PPI0_D2, P_PPI0_D3, P_PPI0_D4, P_PPI0_D5, P_PPI0_D6, P_PPI0_D7, + P_PPI0_D8, P_PPI0_D9, P_PPI0_D10, P_PPI0_D11, + P_PPI0_D12, P_PPI0_D13, P_PPI0_D14, P_PPI0_D15, + P_PPI0_D16, P_PPI0_D17, P_PPI0_D18, P_PPI0_D19, + P_PPI0_D20, P_PPI0_D21, P_PPI0_D22, P_PPI0_D23, P_PPI0_CLK, P_PPI0_FS1, P_PPI0_FS2, 0, }; @@ -875,6 +879,101 @@ static struct bfin_capture_config bfin_capture_data = { }; #endif +#if defined(CONFIG_VIDEO_ADV7842) \ + || defined(CONFIG_VIDEO_ADV7842_MODULE) +#include + +static struct v4l2_input adv7842_inputs[] = { + { + .index = 0, + .name = "Composite", + .type = V4L2_INPUT_TYPE_CAMERA, + .std = V4L2_STD_ALL, + }, + { + .index = 1, + .name = "S-Video", + .type = V4L2_INPUT_TYPE_CAMERA, + .std = V4L2_STD_ALL, + }, + { + .index = 2, + .name = "Component", + .type = V4L2_INPUT_TYPE_CAMERA, + .std = V4L2_STD_ALL, + }, + { + .index = 3, + .name = "VGA", + .type = V4L2_INPUT_TYPE_CAMERA, + .std = V4L2_STD_ALL, + }, + { + .index = 4, + .name = "HDMI", + .type = V4L2_INPUT_TYPE_CAMERA, + .std = V4L2_STD_ALL, + }, +}; + +static struct bcap_route adv7842_routes[] = { + { + .input = 3, + }, + { + .input = 4, + }, + { + .input = 2, + }, + { + .input = 1, + }, + { + .input = 0, + }, +}; + +static struct adv7842_platform_data adv7842_data = { + .ain_sel = ADV7842_AIN10_11_12_NC_SYNC_4_1, + .op_ch_sel = ADV7842_OP_CH_SEL_BRG, + .prim_mode = ADV7842_PRIM_MODE_SDP, + .vid_std_select = ADV7842_SDP_VID_STD_CVBS_SD_4x1, + .inp_color_space = ADV7842_INP_COLOR_SPACE_AUTO, + .op_format_sel = ADV7842_OP_FORMAT_SEL_SDR_ITU656_8, + .op_656_range = 1, + .blank_data = 1, + .insert_av_codes = 1, + .i2c_sdp_io = 0x30, + .i2c_sdp = 0x31, + .i2c_cp = 0x32, + .i2c_vdp = 0x33, + .i2c_afe = 0x34, + .i2c_hdmi = 0x35, + .i2c_repeater = 0x36, + .i2c_edid = 0x37, + .i2c_infoframe = 0x38, + .i2c_cec = 0x39, + .i2c_avlink = 0x3a, +}; + +static struct bfin_capture_config bfin_capture_data = { + .card_name = "BF609", + .inputs = adv7842_inputs, + .num_inputs = ARRAY_SIZE(adv7842_inputs), + .routes = adv7842_routes, + .i2c_adapter_id = 0, + .board_info = { + .type = "adv7842", + .addr = 0x20, + .platform_data = (void *)&adv7842_data, + }, + .ppi_info = &ppi_info, + .ppi_control = (PACK_EN | DLEN_8 | EPPI_CTL_FLDSEL + | EPPI_CTL_ACTIVE656), +}; +#endif + static struct platform_device bfin_capture_device = { .name = "bfin_capture", .dev = { -- cgit v1.2.3-59-g8ed1b