From adc6a443b7df188545c99cea1c3ebd5c965763b7 Mon Sep 17 00:00:00 2001 From: Wojciech Bieganski Date: Mon, 14 Apr 2014 15:56:00 +0200 Subject: media: added camera settings per decoder This commit adds settings such as: - values of horizontal/vertical active start, - enabling/disabling internal sync, to the private data of decoders: MAX9526, ADV7180, TVP5150, OV7670 and AS0260. The feature is available through *_tegra_camera_platform_data struct initialised in board-*.c files. --- arch/arm/mach-tegra/board-colibri_t20.c | 56 +++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 10 deletions(-) (limited to 'arch/arm/mach-tegra/board-colibri_t20.c') diff --git a/arch/arm/mach-tegra/board-colibri_t20.c b/arch/arm/mach-tegra/board-colibri_t20.c index 0f07ca4b63ed..5e1a6866430b 100644 --- a/arch/arm/mach-tegra/board-colibri_t20.c +++ b/arch/arm/mach-tegra/board-colibri_t20.c @@ -115,23 +115,26 @@ static int tegra_camera_enable(struct nvhost_device *ndev) return 0; } -static struct tegra_camera_platform_data tegra_camera_platform_data = { +#if defined(CONFIG_SOC_CAMERA_MAX9526) || defined(CONFIG_SOC_CAMERA_MAX9526_MODULE) +static struct i2c_board_info camera_i2c_max9526 = { + I2C_BOARD_INFO("max9526", 0x20), +}; + +static struct tegra_camera_platform_data max9526_tegra_camera_platform_data = { .disable_camera = tegra_camera_disable, .enable_camera = tegra_camera_enable, .flip_h = 0, .flip_v = 0, .port = TEGRA_CAMERA_PORT_VIP, -}; - -#if defined(CONFIG_SOC_CAMERA_MAX9526) || defined(CONFIG_SOC_CAMERA_MAX9526_MODULE) -static struct i2c_board_info camera_i2c_max9526 = { - I2C_BOARD_INFO("max9526", 0x20), + .internal_sync = false, + .vip_h_active_start = 0x8F, + .vip_v_active_start = 0x12, }; static struct soc_camera_link iclink_max9526 = { .board_info = &camera_i2c_max9526, .bus_id = -1, /* This must match the .id of tegra_vi01_device */ - .priv = &tegra_camera_platform_data, + .priv = &max9526_tegra_camera_platform_data, .i2c_adapter_id = 0, }; @@ -149,10 +152,21 @@ static struct i2c_board_info camera_i2c_adv7180 = { I2C_BOARD_INFO("adv7180", 0x21), }; +static struct tegra_camera_platform_data adv7180_tegra_camera_platform_data = { + .disable_camera = tegra_camera_disable, + .enable_camera = tegra_camera_enable, + .flip_h = 0, + .flip_v = 0, + .port = TEGRA_CAMERA_PORT_VIP, + .internal_sync = false, + .vip_h_active_start = 0x8F, + .vip_v_active_start = 0x12, +}; + static struct soc_camera_link iclink_adv7180 = { .board_info = &camera_i2c_adv7180, .bus_id = -1, /* This must match the .id of tegra_vi01_device */ - .priv = &tegra_camera_platform_data, + .priv = &adv7180_tegra_camera_platform_data, .i2c_adapter_id = 0, }; @@ -170,10 +184,21 @@ static struct i2c_board_info camera_i2c_tvp5150soc = { I2C_BOARD_INFO("tvp5150soc", 0x5d), }; +static struct tegra_camera_platform_data tvp5150soc_tegra_camera_platform_data = { + .disable_camera = tegra_camera_disable, + .enable_camera = tegra_camera_enable, + .flip_h = 0, + .flip_v = 0, + .port = TEGRA_CAMERA_PORT_VIP, + .internal_sync = false, + .vip_h_active_start = 0x8F, + .vip_v_active_start = 0x12, +}; + static struct soc_camera_link iclink_tvp5150soc = { .board_info = &camera_i2c_tvp5150soc, .bus_id = -1, /* This must match the .id of tegra_vi01_device */ - .priv = &tegra_camera_platform_data, + .priv = &tvp5150soc_tegra_camera_platform_data, .i2c_adapter_id = 0, }; @@ -191,10 +216,21 @@ static struct i2c_board_info camera_i2c_ov7670soc = { I2C_BOARD_INFO("ov7670soc", 0x21), }; +static struct tegra_camera_platform_data ov7670_tegra_camera_platform_data = { + .disable_camera = tegra_camera_disable, + .enable_camera = tegra_camera_enable, + .flip_h = 0, + .flip_v = 0, + .port = TEGRA_CAMERA_PORT_VIP, + .internal_sync = false, + .vip_h_active_start = 0x8F, + .vip_v_active_start = 0x12, +}; + static struct soc_camera_link iclink_ov7670soc = { .board_info = &camera_i2c_ov7670soc, .bus_id = -1, /* This must match the .id of tegra_vi01_device */ - .priv = &tegra_camera_platform_data, + .priv = &ov7670_tegra_camera_platform_data, .i2c_adapter_id = 0, }; -- cgit v1.2.3