aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@linaro.org>2012-04-25 22:35:40 -0400
committerShawn Guo <shawn.guo@linaro.org>2012-05-08 08:35:33 -0400
commitbb13fabcca35fbce73f8cfbf238dacfa2a223006 (patch)
tree5dc3bd2f307e83fc984a0804cd92de9c39db6b3b
parentc914283f5e5f55ddf770b8632a5e65e5aa24343e (diff)
ARM: exynos: use machine specific hook for late init
Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Kukjin Kim <kgene.kim@samsung.com>
-rw-r--r--arch/arm/mach-exynos/common.c5
-rw-r--r--arch/arm/mach-exynos/common.h7
-rw-r--r--arch/arm/mach-exynos/mach-armlex4210.c1
-rw-r--r--arch/arm/mach-exynos/mach-exynos4-dt.c1
-rw-r--r--arch/arm/mach-exynos/mach-exynos5-dt.c1
-rw-r--r--arch/arm/mach-exynos/mach-nuri.c1
-rw-r--r--arch/arm/mach-exynos/mach-origen.c1
-rw-r--r--arch/arm/mach-exynos/mach-smdk4x12.c1
-rw-r--r--arch/arm/mach-exynos/mach-smdkv310.c1
-rw-r--r--arch/arm/mach-exynos/mach-universal_c210.c1
-rw-r--r--arch/arm/mach-exynos/pm_domains.c3
11 files changed, 21 insertions, 2 deletions
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
index 8614aab47cc0..16da00111b29 100644
--- a/arch/arm/mach-exynos/common.c
+++ b/arch/arm/mach-exynos/common.c
@@ -285,6 +285,11 @@ void exynos5_restart(char mode, const char *cmd)
285 __raw_writel(0x1, EXYNOS_SWRESET); 285 __raw_writel(0x1, EXYNOS_SWRESET);
286} 286}
287 287
288void __init exynos_init_late(void)
289{
290 exynos_pm_late_initcall();
291}
292
288/* 293/*
289 * exynos_map_io 294 * exynos_map_io
290 * 295 *
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index 677b5467df18..aed2eeb06517 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -19,6 +19,13 @@ void exynos4_init_irq(void);
19void exynos5_init_irq(void); 19void exynos5_init_irq(void);
20void exynos4_restart(char mode, const char *cmd); 20void exynos4_restart(char mode, const char *cmd);
21void exynos5_restart(char mode, const char *cmd); 21void exynos5_restart(char mode, const char *cmd);
22void exynos_init_late(void);
23
24#ifdef CONFIG_PM_GENERIC_DOMAINS
25int exynos_pm_late_initcall(void);
26#else
27static int exynos_pm_late_initcall(void) { return 0; }
28#endif
22 29
23#ifdef CONFIG_ARCH_EXYNOS4 30#ifdef CONFIG_ARCH_EXYNOS4
24void exynos4_register_clocks(void); 31void exynos4_register_clocks(void);
diff --git a/arch/arm/mach-exynos/mach-armlex4210.c b/arch/arm/mach-exynos/mach-armlex4210.c
index d726fcd3acf9..40eaa8c5b131 100644
--- a/arch/arm/mach-exynos/mach-armlex4210.c
+++ b/arch/arm/mach-exynos/mach-armlex4210.c
@@ -214,6 +214,7 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210")
214 .map_io = armlex4210_map_io, 214 .map_io = armlex4210_map_io,
215 .handle_irq = gic_handle_irq, 215 .handle_irq = gic_handle_irq,
216 .init_machine = armlex4210_machine_init, 216 .init_machine = armlex4210_machine_init,
217 .init_late = exynos_init_late,
217 .timer = &exynos4_timer, 218 .timer = &exynos4_timer,
218 .restart = exynos4_restart, 219 .restart = exynos4_restart,
219MACHINE_END 220MACHINE_END
diff --git a/arch/arm/mach-exynos/mach-exynos4-dt.c b/arch/arm/mach-exynos/mach-exynos4-dt.c
index 8245f1c761d9..e7e9743543ac 100644
--- a/arch/arm/mach-exynos/mach-exynos4-dt.c
+++ b/arch/arm/mach-exynos/mach-exynos4-dt.c
@@ -83,6 +83,7 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)")
83 .map_io = exynos4210_dt_map_io, 83 .map_io = exynos4210_dt_map_io,
84 .handle_irq = gic_handle_irq, 84 .handle_irq = gic_handle_irq,
85 .init_machine = exynos4210_dt_machine_init, 85 .init_machine = exynos4210_dt_machine_init,
86 .init_late = exynos_init_late,
86 .timer = &exynos4_timer, 87 .timer = &exynos4_timer,
87 .dt_compat = exynos4210_dt_compat, 88 .dt_compat = exynos4210_dt_compat,
88 .restart = exynos4_restart, 89 .restart = exynos4_restart,
diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c b/arch/arm/mach-exynos/mach-exynos5-dt.c
index 4711c8920e37..5b1ab975b9e9 100644
--- a/arch/arm/mach-exynos/mach-exynos5-dt.c
+++ b/arch/arm/mach-exynos/mach-exynos5-dt.c
@@ -72,6 +72,7 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)")
72 .map_io = exynos5250_dt_map_io, 72 .map_io = exynos5250_dt_map_io,
73 .handle_irq = gic_handle_irq, 73 .handle_irq = gic_handle_irq,
74 .init_machine = exynos5250_dt_machine_init, 74 .init_machine = exynos5250_dt_machine_init,
75 .init_late = exynos_init_late,
75 .timer = &exynos4_timer, 76 .timer = &exynos4_timer,
76 .dt_compat = exynos5250_dt_compat, 77 .dt_compat = exynos5250_dt_compat,
77 .restart = exynos5_restart, 78 .restart = exynos5_restart,
diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c
index b4f1f902ce6d..5d68532997cd 100644
--- a/arch/arm/mach-exynos/mach-nuri.c
+++ b/arch/arm/mach-exynos/mach-nuri.c
@@ -1350,6 +1350,7 @@ MACHINE_START(NURI, "NURI")
1350 .map_io = nuri_map_io, 1350 .map_io = nuri_map_io,
1351 .handle_irq = gic_handle_irq, 1351 .handle_irq = gic_handle_irq,
1352 .init_machine = nuri_machine_init, 1352 .init_machine = nuri_machine_init,
1353 .init_late = exynos_init_late,
1353 .timer = &exynos4_timer, 1354 .timer = &exynos4_timer,
1354 .reserve = &nuri_reserve, 1355 .reserve = &nuri_reserve,
1355 .restart = exynos4_restart, 1356 .restart = exynos4_restart,
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
index 878d4c99142d..263ba441386e 100644
--- a/arch/arm/mach-exynos/mach-origen.c
+++ b/arch/arm/mach-exynos/mach-origen.c
@@ -735,6 +735,7 @@ MACHINE_START(ORIGEN, "ORIGEN")
735 .map_io = origen_map_io, 735 .map_io = origen_map_io,
736 .handle_irq = gic_handle_irq, 736 .handle_irq = gic_handle_irq,
737 .init_machine = origen_machine_init, 737 .init_machine = origen_machine_init,
738 .init_late = exynos_init_late,
738 .timer = &exynos4_timer, 739 .timer = &exynos4_timer,
739 .reserve = &origen_reserve, 740 .reserve = &origen_reserve,
740 .restart = exynos4_restart, 741 .restart = exynos4_restart,
diff --git a/arch/arm/mach-exynos/mach-smdk4x12.c b/arch/arm/mach-exynos/mach-smdk4x12.c
index d00e4f016a68..763967d71daa 100644
--- a/arch/arm/mach-exynos/mach-smdk4x12.c
+++ b/arch/arm/mach-exynos/mach-smdk4x12.c
@@ -303,6 +303,7 @@ MACHINE_START(SMDK4412, "SMDK4412")
303 .map_io = smdk4x12_map_io, 303 .map_io = smdk4x12_map_io,
304 .handle_irq = gic_handle_irq, 304 .handle_irq = gic_handle_irq,
305 .init_machine = smdk4x12_machine_init, 305 .init_machine = smdk4x12_machine_init,
306 .init_late = exynos_init_late,
306 .timer = &exynos4_timer, 307 .timer = &exynos4_timer,
307 .restart = exynos4_restart, 308 .restart = exynos4_restart,
308MACHINE_END 309MACHINE_END
diff --git a/arch/arm/mach-exynos/mach-smdkv310.c b/arch/arm/mach-exynos/mach-smdkv310.c
index 83b91fa777c1..f9d2b3107255 100644
--- a/arch/arm/mach-exynos/mach-smdkv310.c
+++ b/arch/arm/mach-exynos/mach-smdkv310.c
@@ -393,6 +393,7 @@ MACHINE_START(SMDKC210, "SMDKC210")
393 .map_io = smdkv310_map_io, 393 .map_io = smdkv310_map_io,
394 .handle_irq = gic_handle_irq, 394 .handle_irq = gic_handle_irq,
395 .init_machine = smdkv310_machine_init, 395 .init_machine = smdkv310_machine_init,
396 .init_late = exynos_init_late,
396 .timer = &exynos4_timer, 397 .timer = &exynos4_timer,
397 .restart = exynos4_restart, 398 .restart = exynos4_restart,
398MACHINE_END 399MACHINE_END
diff --git a/arch/arm/mach-exynos/mach-universal_c210.c b/arch/arm/mach-exynos/mach-universal_c210.c
index 7ebf79c2ab34..7c348862545d 100644
--- a/arch/arm/mach-exynos/mach-universal_c210.c
+++ b/arch/arm/mach-exynos/mach-universal_c210.c
@@ -1112,6 +1112,7 @@ MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210")
1112 .map_io = universal_map_io, 1112 .map_io = universal_map_io,
1113 .handle_irq = gic_handle_irq, 1113 .handle_irq = gic_handle_irq,
1114 .init_machine = universal_machine_init, 1114 .init_machine = universal_machine_init,
1115 .init_late = exynos_init_late,
1115 .timer = &exynos4_timer, 1116 .timer = &exynos4_timer,
1116 .reserve = &universal_reserve, 1117 .reserve = &universal_reserve,
1117 .restart = exynos4_restart, 1118 .restart = exynos4_restart,
diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c
index 13b306808b42..e9fafcf163de 100644
--- a/arch/arm/mach-exynos/pm_domains.c
+++ b/arch/arm/mach-exynos/pm_domains.c
@@ -193,9 +193,8 @@ static __init int exynos4_pm_init_power_domain(void)
193} 193}
194arch_initcall(exynos4_pm_init_power_domain); 194arch_initcall(exynos4_pm_init_power_domain);
195 195
196static __init int exynos_pm_late_initcall(void) 196int __init exynos_pm_late_initcall(void)
197{ 197{
198 pm_genpd_poweroff_unused(); 198 pm_genpd_poweroff_unused();
199 return 0; 199 return 0;
200} 200}
201late_initcall(exynos_pm_late_initcall);