aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2011-01-11 08:00:04 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-02-19 06:09:33 -0500
commitc735c9873d0c2f269fd16f4b04903da41a44cbcf (patch)
treec06f2fb2d072bd1ee35abf88c56fd838b92ed840
parent0fb44b910f6873c49066e8d0bf681a058fc01b67 (diff)
ARM: integrator: use new init_early for clock tree init
Initialize the clock tree early. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/mach-integrator/common.h1
-rw-r--r--arch/arm/mach-integrator/core.c7
-rw-r--r--arch/arm/mach-integrator/integrator_ap.c3
-rw-r--r--arch/arm/mach-integrator/integrator_cp.c11
4 files changed, 17 insertions, 5 deletions
diff --git a/arch/arm/mach-integrator/common.h b/arch/arm/mach-integrator/common.h
index 5f96e1518aa9..a08f9b0299df 100644
--- a/arch/arm/mach-integrator/common.h
+++ b/arch/arm/mach-integrator/common.h
@@ -1 +1,2 @@
1void integrator_init_early(void);
1void integrator_reserve(void); 2void integrator_reserve(void);
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c
index b8e884b450da..77315b995681 100644
--- a/arch/arm/mach-integrator/core.c
+++ b/arch/arm/mach-integrator/core.c
@@ -144,12 +144,15 @@ static struct clk_lookup lookups[] = {
144 } 144 }
145}; 145};
146 146
147void __init integrator_init_early(void)
148{
149 clkdev_add_table(lookups, ARRAY_SIZE(lookups));
150}
151
147static int __init integrator_init(void) 152static int __init integrator_init(void)
148{ 153{
149 int i; 154 int i;
150 155
151 clkdev_add_table(lookups, ARRAY_SIZE(lookups));
152
153 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { 156 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
154 struct amba_device *d = amba_devs[i]; 157 struct amba_device *d = amba_devs[i];
155 amba_device_register(d, &iomem_resource); 158 amba_device_register(d, &iomem_resource);
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c
index b666443b5cbb..4f06b5d72489 100644
--- a/arch/arm/mach-integrator/integrator_ap.c
+++ b/arch/arm/mach-integrator/integrator_ap.c
@@ -499,8 +499,9 @@ static struct sys_timer ap_timer = {
499MACHINE_START(INTEGRATOR, "ARM-Integrator") 499MACHINE_START(INTEGRATOR, "ARM-Integrator")
500 /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ 500 /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
501 .boot_params = 0x00000100, 501 .boot_params = 0x00000100,
502 .map_io = ap_map_io,
503 .reserve = integrator_reserve, 502 .reserve = integrator_reserve,
503 .map_io = ap_map_io,
504 .init_early = integrator_init_early,
504 .init_irq = ap_init_irq, 505 .init_irq = ap_init_irq,
505 .timer = &ap_timer, 506 .timer = &ap_timer,
506 .init_machine = ap_init, 507 .init_machine = ap_init,
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
index 9c0203738aae..e6700aab849a 100644
--- a/arch/arm/mach-integrator/integrator_cp.c
+++ b/arch/arm/mach-integrator/integrator_cp.c
@@ -520,11 +520,17 @@ static struct amba_device *amba_devs[] __initdata = {
520 &clcd_device, 520 &clcd_device,
521}; 521};
522 522
523static void __init intcp_init_early(void)
524{
525 clkdev_add_table(cp_lookups, ARRAY_SIZE(cp_lookups));
526
527 integrator_init_early();
528}
529
523static void __init intcp_init(void) 530static void __init intcp_init(void)
524{ 531{
525 int i; 532 int i;
526 533
527 clkdev_add_table(cp_lookups, ARRAY_SIZE(cp_lookups));
528 platform_add_devices(intcp_devs, ARRAY_SIZE(intcp_devs)); 534 platform_add_devices(intcp_devs, ARRAY_SIZE(intcp_devs));
529 535
530 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { 536 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
@@ -554,8 +560,9 @@ static struct sys_timer cp_timer = {
554MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP") 560MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP")
555 /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ 561 /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
556 .boot_params = 0x00000100, 562 .boot_params = 0x00000100,
557 .map_io = intcp_map_io,
558 .reserve = integrator_reserve, 563 .reserve = integrator_reserve,
564 .map_io = intcp_map_io,
565 .init_early = intcp_init_early,
559 .init_irq = intcp_init_irq, 566 .init_irq = intcp_init_irq,
560 .timer = &cp_timer, 567 .timer = &cp_timer,
561 .init_machine = intcp_init, 568 .init_machine = intcp_init,