Commit a010bc2b authored by Shawn Guo's avatar Shawn Guo

ARM: ux500: use machine specific hook for late init

Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
Acked-by: default avatarsrinidhi kasagar <srinidhi.kasagar@stericsson.com>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 390e0cfd
...@@ -722,6 +722,7 @@ MACHINE_START(U8500, "ST-Ericsson MOP500 platform") ...@@ -722,6 +722,7 @@ MACHINE_START(U8500, "ST-Ericsson MOP500 platform")
.timer = &ux500_timer, .timer = &ux500_timer,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = mop500_init_machine, .init_machine = mop500_init_machine,
.init_late = ux500_init_late,
MACHINE_END MACHINE_END
MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+")
...@@ -731,6 +732,7 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") ...@@ -731,6 +732,7 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+")
.timer = &ux500_timer, .timer = &ux500_timer,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = hrefv60_init_machine, .init_machine = hrefv60_init_machine,
.init_late = ux500_init_late,
MACHINE_END MACHINE_END
MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
...@@ -741,6 +743,7 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") ...@@ -741,6 +743,7 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
.timer = &ux500_timer, .timer = &ux500_timer,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = snowball_init_machine, .init_machine = snowball_init_machine,
.init_late = ux500_init_late,
MACHINE_END MACHINE_END
#ifdef CONFIG_MACH_UX500_DT #ifdef CONFIG_MACH_UX500_DT
...@@ -830,6 +833,7 @@ DT_MACHINE_START(U8500_DT, "ST-Ericsson U8500 platform (Device Tree Support)") ...@@ -830,6 +833,7 @@ DT_MACHINE_START(U8500_DT, "ST-Ericsson U8500 platform (Device Tree Support)")
.timer = &ux500_timer, .timer = &ux500_timer,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = u8500_init_machine, .init_machine = u8500_init_machine,
.init_late = ux500_init_late,
.dt_compat = u8500_dt_board_compat, .dt_compat = u8500_dt_board_compat,
MACHINE_END MACHINE_END
#endif #endif
...@@ -633,7 +633,7 @@ static int clk_debugfs_register(struct clk *c) ...@@ -633,7 +633,7 @@ static int clk_debugfs_register(struct clk *c)
return 0; return 0;
} }
static int __init clk_debugfs_init(void) int __init clk_debugfs_init(void)
{ {
struct clk *c; struct clk *c;
struct dentry *d; struct dentry *d;
...@@ -655,7 +655,6 @@ static int __init clk_debugfs_init(void) ...@@ -655,7 +655,6 @@ static int __init clk_debugfs_init(void)
return err; return err;
} }
late_initcall(clk_debugfs_init);
#endif /* defined(CONFIG_DEBUG_FS) */ #endif /* defined(CONFIG_DEBUG_FS) */
unsigned long clk_smp_twd_rate = 500000000; unsigned long clk_smp_twd_rate = 500000000;
...@@ -694,12 +693,11 @@ static struct notifier_block clk_twd_cpufreq_nb = { ...@@ -694,12 +693,11 @@ static struct notifier_block clk_twd_cpufreq_nb = {
.notifier_call = clk_twd_cpufreq_transition, .notifier_call = clk_twd_cpufreq_transition,
}; };
static int clk_init_smp_twd_cpufreq(void) int clk_init_smp_twd_cpufreq(void)
{ {
return cpufreq_register_notifier(&clk_twd_cpufreq_nb, return cpufreq_register_notifier(&clk_twd_cpufreq_nb,
CPUFREQ_TRANSITION_NOTIFIER); CPUFREQ_TRANSITION_NOTIFIER);
} }
late_initcall(clk_init_smp_twd_cpufreq);
#endif #endif
......
...@@ -150,3 +150,15 @@ struct clk clk_##_name = { \ ...@@ -150,3 +150,15 @@ struct clk clk_##_name = { \
int __init clk_db8500_ed_fixup(void); int __init clk_db8500_ed_fixup(void);
int __init clk_init(void); int __init clk_init(void);
#ifdef CONFIG_DEBUG_FS
int clk_debugfs_init(void);
#else
static inline int clk_debugfs_init(void) { return 0; }
#endif
#ifdef CONFIG_CPU_FREQ
int clk_init_smp_twd_cpufreq(void);
#else
static inline int clk_init_smp_twd_cpufreq(void) { return 0; }
#endif
...@@ -67,6 +67,12 @@ void __init ux500_init_irq(void) ...@@ -67,6 +67,12 @@ void __init ux500_init_irq(void)
clk_init(); clk_init();
} }
void __init ux500_init_late(void)
{
clk_debugfs_init();
clk_init_smp_twd_cpufreq();
}
static const char * __init ux500_get_machine(void) static const char * __init ux500_get_machine(void)
{ {
return kasprintf(GFP_KERNEL, "DB%4x", dbx500_partnumber()); return kasprintf(GFP_KERNEL, "DB%4x", dbx500_partnumber());
......
...@@ -22,6 +22,7 @@ extern struct device * __init u5500_init_devices(void); ...@@ -22,6 +22,7 @@ extern struct device * __init u5500_init_devices(void);
extern struct device * __init u8500_init_devices(void); extern struct device * __init u8500_init_devices(void);
extern void __init ux500_init_irq(void); extern void __init ux500_init_irq(void);
extern void __init ux500_init_late(void);
extern void __init u5500_sdi_init(struct device *parent); extern void __init u5500_sdi_init(struct device *parent);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment