From patchwork Sat Apr 2 09:43:59 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manjunath Hadli X-Patchwork-Id: 683471 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p329iAw2001777 for ; Sat, 2 Apr 2011 09:44:10 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755476Ab1DBJoI (ORCPT ); Sat, 2 Apr 2011 05:44:08 -0400 Received: from bear.ext.ti.com ([192.94.94.41]:47100 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755470Ab1DBJoH (ORCPT ); Sat, 2 Apr 2011 05:44:07 -0400 Received: from dbdp31.itg.ti.com ([172.24.170.98]) by bear.ext.ti.com (8.13.7/8.13.7) with ESMTP id p329i21S008021 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 2 Apr 2011 04:44:04 -0500 Received: from psplinux051.india.ti.com (localhost [127.0.0.1]) by dbdp31.itg.ti.com (8.13.8/8.13.8) with ESMTP id p329hxCP012256; Sat, 2 Apr 2011 15:13:59 +0530 (IST) Received: from psplinux051.india.ti.com (localhost [127.0.0.1]) by psplinux051.india.ti.com (8.13.1/8.13.1) with ESMTP id p329hxJU004529; Sat, 2 Apr 2011 15:13:59 +0530 Received: (from x0144960@localhost) by psplinux051.india.ti.com (8.13.1/8.13.1/Submit) id p329hxe3004526; Sat, 2 Apr 2011 15:13:59 +0530 From: Manjunath Hadli To: LMML , Kevin Hilman , LAK , Sekhar Nori Cc: dlos , Manjunath Hadli Subject: [PATCH v18 11/13] davinci: dm644x: move vpfe init from soc to board specific files Date: Sat, 2 Apr 2011 15:13:59 +0530 Message-Id: <1301737439-4498-1-git-send-email-manjunath.hadli@ti.com> X-Mailer: git-send-email 1.6.2.4 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Sat, 02 Apr 2011 09:44:10 +0000 (UTC) Move all vpfe platform device registrations to the board specific file like the rest of the devices, and have all of them together. This would remove the restriction of inclusion and registration of vpfe platform devices for non-vpfe boards. Signed-off-by: Manjunath Hadli Acked-by: Sekhar Nori --- arch/arm/mach-davinci/board-dm644x-evm.c | 3 +- arch/arm/mach-davinci/dm644x.c | 29 +++++++++++++++----------- arch/arm/mach-davinci/include/mach/dm644x.h | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c index 6919f28..d1542b1 100644 --- a/arch/arm/mach-davinci/board-dm644x-evm.c +++ b/arch/arm/mach-davinci/board-dm644x-evm.c @@ -628,8 +628,6 @@ static struct davinci_uart_config uart_config __initdata = { static void __init davinci_evm_map_io(void) { - /* setup input configuration for VPFE input devices */ - dm644x_set_vpfe_config(&dm644xevm_capture_cfg); dm644x_init(); } @@ -701,6 +699,7 @@ static __init void davinci_evm_init(void) evm_init_i2c(); davinci_setup_mmc(0, &dm6446evm_mmc_config); + dm644x_init_video(&dm644xevm_capture_cfg); davinci_serial_init(&uart_config); dm644x_init_asp(&dm644x_evm_snd_data); diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c index e258c54..36d4d72 100644 --- a/arch/arm/mach-davinci/dm644x.c +++ b/arch/arm/mach-davinci/dm644x.c @@ -651,11 +651,6 @@ static struct platform_device dm644x_vpfe_dev = { }, }; -void dm644x_set_vpfe_config(struct vpfe_config *cfg) -{ - dm644x_vpfe_dev.dev.platform_data = cfg; -} - /*----------------------------------------------------------------------*/ static struct map_desc dm644x_io_desc[] = { @@ -784,14 +779,28 @@ void __init dm644x_init(void) davinci_map_sysmod(); } +static struct platform_device *dm644x_video_devices[] __initdata = { + &dm644x_vpss_device, + &dm644x_ccdc_dev, + &dm644x_vpfe_dev, +}; + +int __init dm644x_init_video(struct vpfe_config *vpfe_cfg) +{ + dm644x_vpfe_dev.dev.platform_data = vpfe_cfg; + /* Add ccdc clock aliases */ + clk_add_alias("master", dm644x_ccdc_dev.name, "vpss_master", NULL); + clk_add_alias("slave", dm644x_ccdc_dev.name, "vpss_slave", NULL); + platform_add_devices(dm644x_video_devices, + ARRAY_SIZE(dm644x_video_devices)); + return 0; +} + static int __init dm644x_init_devices(void) { if (!cpu_is_davinci_dm644x()) return 0; - /* Add ccdc clock aliases */ - clk_add_alias("master", dm644x_ccdc_dev.name, "vpss_master", NULL); - clk_add_alias("slave", dm644x_ccdc_dev.name, "vpss_slave", NULL); platform_device_register(&dm644x_edma_device); platform_device_register(&dm644x_mdio_device); @@ -799,10 +808,6 @@ static int __init dm644x_init_devices(void) clk_add_alias(NULL, dev_name(&dm644x_mdio_device.dev), NULL, &dm644x_emac_device.dev); - platform_device_register(&dm644x_vpss_device); - platform_device_register(&dm644x_ccdc_dev); - platform_device_register(&dm644x_vpfe_dev); - return 0; } postcore_initcall(dm644x_init_devices); diff --git a/arch/arm/mach-davinci/include/mach/dm644x.h b/arch/arm/mach-davinci/include/mach/dm644x.h index 5a1b26d..29a9e24 100644 --- a/arch/arm/mach-davinci/include/mach/dm644x.h +++ b/arch/arm/mach-davinci/include/mach/dm644x.h @@ -42,6 +42,6 @@ void __init dm644x_init(void); void __init dm644x_init_asp(struct snd_platform_data *pdata); -void dm644x_set_vpfe_config(struct vpfe_config *cfg); +int __init dm644x_init_video(struct vpfe_config *); #endif /* __ASM_ARCH_DM644X_H */