aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManjunath Hadli <manjunath.hadli@ti.com>2011-12-21 08:43:39 -0500
committerSekhar Nori <nsekhar@ti.com>2012-02-24 16:10:25 -0500
commit12db9588ff811ae43a476b1234b27323055ab3ad (patch)
tree6c41d12ca748268d055eb7d4c9183b787db80bbb
parent314d7389608831202f5b445d9154e30161935630 (diff)
ARM: davinci: dm644x: don't force vpfe registeration on all boards
Move all vpfe platform device registrations to the board specific file. This removes registration of vpfe platform devices on boards which do not use vpfe. Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
-rw-r--r--arch/arm/mach-davinci/board-dm644x-evm.c3
-rw-r--r--arch/arm/mach-davinci/davinci.h2
-rw-r--r--arch/arm/mach-davinci/dm644x.c27
3 files changed, 17 insertions, 15 deletions
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c
index 14dd390f6da8..b89bebe01c0f 100644
--- a/arch/arm/mach-davinci/board-dm644x-evm.c
+++ b/arch/arm/mach-davinci/board-dm644x-evm.c
@@ -625,8 +625,6 @@ static struct davinci_uart_config uart_config __initdata = {
625static void __init 625static void __init
626davinci_evm_map_io(void) 626davinci_evm_map_io(void)
627{ 627{
628 /* setup input configuration for VPFE input devices */
629 dm644x_set_vpfe_config(&dm644xevm_capture_cfg);
630 dm644x_init(); 628 dm644x_init();
631} 629}
632 630
@@ -698,6 +696,7 @@ static __init void davinci_evm_init(void)
698 evm_init_i2c(); 696 evm_init_i2c();
699 697
700 davinci_setup_mmc(0, &dm6446evm_mmc_config); 698 davinci_setup_mmc(0, &dm6446evm_mmc_config);
699 dm644x_init_video(&dm644xevm_capture_cfg);
701 700
702 davinci_serial_init(&uart_config); 701 davinci_serial_init(&uart_config);
703 dm644x_init_asp(&dm644x_evm_snd_data); 702 dm644x_init_asp(&dm644x_evm_snd_data);
diff --git a/arch/arm/mach-davinci/davinci.h b/arch/arm/mach-davinci/davinci.h
index b1a52fb30cba..9d708034b57f 100644
--- a/arch/arm/mach-davinci/davinci.h
+++ b/arch/arm/mach-davinci/davinci.h
@@ -83,7 +83,7 @@ void dm365_set_vpfe_config(struct vpfe_config *cfg);
83/* DM644x function declarations */ 83/* DM644x function declarations */
84void __init dm644x_init(void); 84void __init dm644x_init(void);
85void __init dm644x_init_asp(struct snd_platform_data *pdata); 85void __init dm644x_init_asp(struct snd_platform_data *pdata);
86void dm644x_set_vpfe_config(struct vpfe_config *cfg); 86int __init dm644x_init_video(struct vpfe_config *);
87 87
88/* DM646x function declarations */ 88/* DM646x function declarations */
89void __init dm646x_init(void); 89void __init dm646x_init(void);
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
index fc48faec57ec..23e81cafba8d 100644
--- a/arch/arm/mach-davinci/dm644x.c
+++ b/arch/arm/mach-davinci/dm644x.c
@@ -659,11 +659,6 @@ static struct platform_device dm644x_vpfe_dev = {
659 }, 659 },
660}; 660};
661 661
662void dm644x_set_vpfe_config(struct vpfe_config *cfg)
663{
664 dm644x_vpfe_dev.dev.platform_data = cfg;
665}
666
667/*----------------------------------------------------------------------*/ 662/*----------------------------------------------------------------------*/
668 663
669static struct map_desc dm644x_io_desc[] = { 664static struct map_desc dm644x_io_desc[] = {
@@ -791,14 +786,26 @@ void __init dm644x_init(void)
791 davinci_map_sysmod(); 786 davinci_map_sysmod();
792} 787}
793 788
794static int __init dm644x_init_devices(void) 789int __init dm644x_init_video(struct vpfe_config *vpfe_cfg)
795{ 790{
796 if (!cpu_is_davinci_dm644x()) 791 dm644x_vpfe_dev.dev.platform_data = vpfe_cfg;
797 return 0;
798 792
799 /* Add ccdc clock aliases */ 793 /* Add ccdc clock aliases */
800 clk_add_alias("master", dm644x_ccdc_dev.name, "vpss_master", NULL); 794 clk_add_alias("master", dm644x_ccdc_dev.name, "vpss_master", NULL);
801 clk_add_alias("slave", dm644x_ccdc_dev.name, "vpss_slave", NULL); 795 clk_add_alias("slave", dm644x_ccdc_dev.name, "vpss_slave", NULL);
796
797 platform_device_register(&dm644x_vpss_device);
798 platform_device_register(&dm644x_ccdc_dev);
799 platform_device_register(&dm644x_vpfe_dev);
800
801 return 0;
802}
803
804static int __init dm644x_init_devices(void)
805{
806 if (!cpu_is_davinci_dm644x())
807 return 0;
808
802 platform_device_register(&dm644x_edma_device); 809 platform_device_register(&dm644x_edma_device);
803 810
804 platform_device_register(&dm644x_mdio_device); 811 platform_device_register(&dm644x_mdio_device);
@@ -806,10 +813,6 @@ static int __init dm644x_init_devices(void)
806 clk_add_alias(NULL, dev_name(&dm644x_mdio_device.dev), 813 clk_add_alias(NULL, dev_name(&dm644x_mdio_device.dev),
807 NULL, &dm644x_emac_device.dev); 814 NULL, &dm644x_emac_device.dev);
808 815
809 platform_device_register(&dm644x_vpss_device);
810 platform_device_register(&dm644x_ccdc_dev);
811 platform_device_register(&dm644x_vpfe_dev);
812
813 return 0; 816 return 0;
814} 817}
815postcore_initcall(dm644x_init_devices); 818postcore_initcall(dm644x_init_devices);