diff options
author | Piotr Zierhoffer <pzierhoffer@antmicro.com> | 2013-05-10 13:34:06 +0200 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2013-06-12 21:43:55 +0200 |
commit | f143c8cf1bd9b6858749f8dcec0db76f79343403 (patch) | |
tree | 4b94a9eaa9065b422c6c8f4a215702a9ee7988f0 /arch | |
parent | 0c778296f6223867259295f7e03d50f1cafbf82c (diff) |
colibri_t30: adv7180 and max9526 integration
Integrate ADV7180 and MAX9526 video decoder support and prepare for
drivers as modules.
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/board-colibri_t30.c | 49 | ||||
-rw-r--r-- | arch/arm/mach-tegra/powergate.c | 1 |
2 files changed, 38 insertions, 12 deletions
diff --git a/arch/arm/mach-tegra/board-colibri_t30.c b/arch/arm/mach-tegra/board-colibri_t30.c index 1fd0fd1bec2b..fcbae03f62b9 100644 --- a/arch/arm/mach-tegra/board-colibri_t30.c +++ b/arch/arm/mach-tegra/board-colibri_t30.c @@ -104,7 +104,7 @@ static struct platform_device tegra_camera = { }; #endif /* CONFIG_TEGRA_CAMERA */ -#ifdef CONFIG_VIDEO_TEGRA +#if defined(CONFIG_VIDEO_TEGRA) || defined(CONFIG_VIDEO_TEGRA_MODULE) static void tegra_camera_disable(struct nvhost_device *ndev) { } @@ -122,26 +122,46 @@ static struct tegra_camera_platform_data tegra_camera_platform_data = { .port = TEGRA_CAMERA_PORT_VIP, }; -static struct i2c_board_info camera_i2c = { -#ifdef CONFIG_SOC_CAMERA_MAX9526 +#if defined(CONFIG_SOC_CAMERA_MAX9526) || defined(CONFIG_SOC_CAMERA_MAX9526_MODULE) +static struct i2c_board_info camera_i2c_max9526 = { I2C_BOARD_INFO("max9526", 0x21), -#endif }; -static struct soc_camera_link iclink = { - .board_info = &camera_i2c, +static struct soc_camera_link iclink_max9526 = { + .board_info = &camera_i2c_max9526, .bus_id = -1, /* This must match the .id of tegra_vi01_device */ .i2c_adapter_id = 0, }; -static struct platform_device soc_camera = { +static struct platform_device soc_camera_max9526 = { .name = "soc-camera-pdrv", .id = 0, .dev = { - .platform_data = &iclink, + .platform_data = &iclink_max9526, }, }; -#endif /* CONFIG_VIDEO_TEGRA */ +#endif /* CONFIG_SOC_CAMERA_MAX9526 | CONFIG_SOC_CAMERA_MAX9526_MODULE */ + +#if defined(CONFIG_VIDEO_ADV7180) || defined(CONFIG_VIDEO_ADV7180_MODULE) +static struct i2c_board_info camera_i2c_adv7180 = { + I2C_BOARD_INFO("adv7180", 0x21), +}; + +static struct soc_camera_link iclink_adv7180 = { + .board_info = &camera_i2c_adv7180, + .bus_id = -1, /* This must match the .id of tegra_vi01_device */ + .i2c_adapter_id = 0, +}; + +static struct platform_device soc_camera_adv7180 = { + .name = "soc-camera-pdrv", + .id = 1, + .dev = { + .platform_data = &iclink_adv7180, + }, +}; +#endif /* CONFIG_VIDEO_ADV7180 | CONFIG_VIDEO_ADV7180_MODULE */ +#endif /* CONFIG_VIDEO_TEGRA | CONFIG_VIDEO_TEGRA_MODULE */ /* CAN */ #if ((defined(CONFIG_CAN_MCP251X) || defined(CONFIG_CAN_MCP251X_MODULE)) && \ @@ -1481,10 +1501,15 @@ static void __init colibri_t30_init(void) colibri_t20_mcp2515_can_init(); colibri_t30_gpio_init(); -#ifdef CONFIG_VIDEO_TEGRA +#if defined(CONFIG_VIDEO_TEGRA) || defined(CONFIG_VIDEO_TEGRA_MODULE) t30_get_tegra_vi01_device()->dev.platform_data = &tegra_camera_platform_data; - platform_device_register(&soc_camera); -#endif /* CONFIG_VIDEO_TEGRA */ +#if defined(CONFIG_SOC_CAMERA_MAX9526) || defined(CONFIG_SOC_CAMERA_MAX9526_MODULE) + platform_device_register(&soc_camera_max9526); +#endif +#if defined(CONFIG_VIDEO_ADV7180) || defined(CONFIG_VIDEO_ADV7180_MODULE) + platform_device_register(&soc_camera_adv7180); +#endif +#endif /* CONFIG_VIDEO_TEGRA | CONFIG_VIDEO_TEGRA_MODULE */ tegra_release_bootloader_fb(); #ifdef CONFIG_TEGRA_WDT_RECOVERY diff --git a/arch/arm/mach-tegra/powergate.c b/arch/arm/mach-tegra/powergate.c index 4c0d8bec276e..c6d215fc025c 100644 --- a/arch/arm/mach-tegra/powergate.c +++ b/arch/arm/mach-tegra/powergate.c @@ -721,6 +721,7 @@ err_power: WARN(1, "Could not Un-Powergate %d", id); return ret; } +EXPORT_SYMBOL(tegra_unpowergate_partition); /* * Must be called with clk disabled, and returns with clk enabled |