diff options
Diffstat (limited to 'arch/arm/mach-davinci/board-dm355-evm.c')
| -rw-r--r-- | arch/arm/mach-davinci/board-dm355-evm.c | 71 | 
1 files changed, 69 insertions, 2 deletions
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c index 147b8e1a440..886481c1217 100644 --- a/arch/arm/mach-davinci/board-dm355-evm.c +++ b/arch/arm/mach-davinci/board-dm355-evm.c @@ -242,6 +242,73 @@ static struct vpfe_config vpfe_cfg = {  	.ccdc = "DM355 CCDC",  }; +/* venc standards timings */ +static struct vpbe_enc_mode_info dm355evm_enc_preset_timing[] = { +	{ +		.name		= "ntsc", +		.timings_type	= VPBE_ENC_STD, +		.std_id		= V4L2_STD_NTSC, +		.interlaced	= 1, +		.xres		= 720, +		.yres		= 480, +		.aspect		= {11, 10}, +		.fps		= {30000, 1001}, +		.left_margin	= 0x79, +		.upper_margin	= 0x10, +	}, +	{ +		.name		= "pal", +		.timings_type	= VPBE_ENC_STD, +		.std_id		= V4L2_STD_PAL, +		.interlaced	= 1, +		.xres		= 720, +		.yres		= 576, +		.aspect		= {54, 59}, +		.fps		= {25, 1}, +		.left_margin	= 0x7E, +		.upper_margin	= 0x16 +	}, +}; + +#define VENC_STD_ALL	(V4L2_STD_NTSC | V4L2_STD_PAL) + +/* + * The outputs available from VPBE + ecnoders. Keep the + * the order same as that of encoders. First those from venc followed by that + * from encoders. Index in the output refers to index on a particular encoder. + * Driver uses this index to pass it to encoder when it supports more than + * one output. Application uses index of the array to set an output. + */ +static struct vpbe_output dm355evm_vpbe_outputs[] = { +	{ +		.output		= { +			.index		= 0, +			.name		= "Composite", +			.type		= V4L2_OUTPUT_TYPE_ANALOG, +			.std		= VENC_STD_ALL, +			.capabilities	= V4L2_OUT_CAP_STD, +		}, +		.subdev_name	= DM355_VPBE_VENC_SUBDEV_NAME, +		.default_mode	= "ntsc", +		.num_modes	= ARRAY_SIZE(dm355evm_enc_preset_timing), +		.modes		= dm355evm_enc_preset_timing, +		.if_params	= V4L2_MBUS_FMT_FIXED, +	}, +}; + +static struct vpbe_config dm355evm_display_cfg = { +	.module_name	= "dm355-vpbe-display", +	.i2c_adapter_id	= 1, +	.osd		= { +		.module_name	= DM355_VPBE_OSD_SUBDEV_NAME, +	}, +	.venc		= { +		.module_name	= DM355_VPBE_VENC_SUBDEV_NAME, +	}, +	.num_outputs	= ARRAY_SIZE(dm355evm_vpbe_outputs), +	.outputs	= dm355evm_vpbe_outputs, +}; +  static struct platform_device *davinci_evm_devices[] __initdata = {  	&dm355evm_dm9000,  	&davinci_nand_device, @@ -253,8 +320,6 @@ static struct davinci_uart_config uart_config __initdata = {  static void __init dm355_evm_map_io(void)  { -	/* setup input configuration for VPFE input devices */ -	dm355_set_vpfe_config(&vpfe_cfg);  	dm355_init();  } @@ -344,6 +409,8 @@ static __init void dm355_evm_init(void)  	davinci_setup_mmc(0, &dm355evm_mmc_config);  	davinci_setup_mmc(1, &dm355evm_mmc_config); +	dm355_init_video(&vpfe_cfg, &dm355evm_display_cfg); +  	dm355_init_spi0(BIT(0), dm355_evm_spi_info,  			ARRAY_SIZE(dm355_evm_spi_info));  |