From: Mark A. Greer <[email protected]> All of the davinci SoCs need to call davinci_clk_init() so put the call in the common init routine.
Signed-off-by: Mark A. Greer <[email protected]> --- arch/arm/mach-davinci/common.c | 9 +++++++++ arch/arm/mach-davinci/dm355.c | 2 +- arch/arm/mach-davinci/dm644x.c | 2 +- arch/arm/mach-davinci/dm646x.c | 2 +- arch/arm/mach-davinci/include/mach/common.h | 1 + 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-davinci/common.c b/arch/arm/mach-davinci/common.c index 376ae47..7e862f8 100644 --- a/arch/arm/mach-davinci/common.c +++ b/arch/arm/mach-davinci/common.c @@ -17,6 +17,8 @@ #include <mach/common.h> #include <mach/cpu.h> +#include "clock.h" + struct davinci_soc_info *davinci_soc_info; EXPORT_SYMBOL(davinci_soc_info); @@ -74,6 +76,13 @@ int __init davinci_common_init(struct davinci_soc_info *soc_info) davinci_soc_info->cpu_id = dip->cpu_id; printk(KERN_INFO "DaVinci %s variant 0x%x\n", dip->name, dip->variant); + if (davinci_soc_info->cpu_clks) { + ret = davinci_clk_init(davinci_soc_info->cpu_clks); + + if (ret != 0) + goto err; + } + return 0; err: diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c index b6691dd..4466582 100644 --- a/arch/arm/mach-davinci/dm355.c +++ b/arch/arm/mach-davinci/dm355.c @@ -551,6 +551,7 @@ static struct davinci_soc_info davinci_soc_info_dm355 = { .jtag_id_base = IO_ADDRESS(0x01c40028), .ids = dm355_ids, .ids_num = ARRAY_SIZE(dm355_ids), + .cpu_clks = dm355_clks, }; struct davinci_soc_info *dm355_get_soc_info(void) @@ -560,7 +561,6 @@ struct davinci_soc_info *dm355_get_soc_info(void) void __init dm355_init(void) { - davinci_clk_init(dm355_clks); davinci_mux_register(dm355_pins, ARRAY_SIZE(dm355_pins));; } diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c index 72ce6fb..954c51c 100644 --- a/arch/arm/mach-davinci/dm644x.c +++ b/arch/arm/mach-davinci/dm644x.c @@ -491,6 +491,7 @@ static struct davinci_soc_info davinci_soc_info_dm644x = { .jtag_id_base = IO_ADDRESS(0x01c40028), .ids = dm644x_ids, .ids_num = ARRAY_SIZE(dm644x_ids), + .cpu_clks = dm644x_clks, }; struct davinci_soc_info *dm644x_get_soc_info(void) @@ -500,7 +501,6 @@ struct davinci_soc_info *dm644x_get_soc_info(void) void __init dm644x_init(void) { - davinci_clk_init(dm644x_clks); davinci_mux_register(dm644x_pins, ARRAY_SIZE(dm644x_pins)); } diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c index c9a73cc..e123bc8 100644 --- a/arch/arm/mach-davinci/dm646x.c +++ b/arch/arm/mach-davinci/dm646x.c @@ -471,6 +471,7 @@ static struct davinci_soc_info davinci_soc_info_dm646x = { .jtag_id_base = IO_ADDRESS(0x01c40028), .ids = dm646x_ids, .ids_num = ARRAY_SIZE(dm646x_ids), + .cpu_clks = dm646x_clks, }; struct davinci_soc_info *dm646x_get_soc_info(void) @@ -480,7 +481,6 @@ struct davinci_soc_info *dm646x_get_soc_info(void) void __init dm646x_init(void) { - davinci_clk_init(dm646x_clks); davinci_mux_register(dm646x_pins, ARRAY_SIZE(dm646x_pins)); } diff --git a/arch/arm/mach-davinci/include/mach/common.h b/arch/arm/mach-davinci/include/mach/common.h index 49d8701..cc0104b 100644 --- a/arch/arm/mach-davinci/include/mach/common.h +++ b/arch/arm/mach-davinci/include/mach/common.h @@ -33,6 +33,7 @@ struct davinci_soc_info { void __iomem *jtag_id_base; struct davinci_id *ids; unsigned long ids_num; + struct davinci_clk *cpu_clks; }; extern struct davinci_soc_info *davinci_soc_info; -- 1.6.0.3 _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
