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

Reply via email to