diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-01-11 08:05:01 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-02-19 06:11:07 -0500 |
commit | 631e55f966668d7a957342b38d7148643d919d73 (patch) | |
tree | 6a0cb9bac002fab07f4ef4274036966dab274cb7 /arch/arm/mach-realview | |
parent | ad3bb19c5bd17cebe8e9a97dc0b53e274a05f23b (diff) |
ARM: realview: use new init_early for clock tree and sched_clock init
Initialize the clock tree and our sched_clock() early.
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-realview')
-rw-r--r-- | arch/arm/mach-realview/core.c | 19 | ||||
-rw-r--r-- | arch/arm/mach-realview/core.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-realview/realview_eb.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-realview/realview_pb1176.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-realview/realview_pb11mp.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-realview/realview_pba8.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-realview/realview_pbx.c | 1 |
7 files changed, 12 insertions, 13 deletions
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index a18a5a66c4c3..75dbc8791d05 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c | |||
@@ -360,18 +360,19 @@ static struct clk_lookup lookups[] = { | |||
360 | } | 360 | } |
361 | }; | 361 | }; |
362 | 362 | ||
363 | static int __init clk_init(void) | 363 | void __init realview_init_early(void) |
364 | { | 364 | { |
365 | void __iomem *sys = __io_address(REALVIEW_SYS_BASE); | ||
366 | |||
365 | if (machine_is_realview_pb1176()) | 367 | if (machine_is_realview_pb1176()) |
366 | oscvco_clk.vcoreg = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC0_OFFSET; | 368 | oscvco_clk.vcoreg = sys + REALVIEW_SYS_OSC0_OFFSET; |
367 | else | 369 | else |
368 | oscvco_clk.vcoreg = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC4_OFFSET; | 370 | oscvco_clk.vcoreg = sys + REALVIEW_SYS_OSC4_OFFSET; |
369 | 371 | ||
370 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); | 372 | clkdev_add_table(lookups, ARRAY_SIZE(lookups)); |
371 | 373 | ||
372 | return 0; | 374 | versatile_sched_clock_init(sys + REALVIEW_SYS_24MHz_OFFSET, 24000000); |
373 | } | 375 | } |
374 | core_initcall(clk_init); | ||
375 | 376 | ||
376 | /* | 377 | /* |
377 | * CLCD support. | 378 | * CLCD support. |
@@ -510,12 +511,6 @@ void realview_leds_event(led_event_t ledevt) | |||
510 | #endif /* CONFIG_LEDS */ | 511 | #endif /* CONFIG_LEDS */ |
511 | 512 | ||
512 | /* | 513 | /* |
513 | * The sched_clock counter | ||
514 | */ | ||
515 | #define REFCOUNTER (__io_address(REALVIEW_SYS_BASE) + \ | ||
516 | REALVIEW_SYS_24MHz_OFFSET) | ||
517 | |||
518 | /* | ||
519 | * Where is the timer (VA)? | 514 | * Where is the timer (VA)? |
520 | */ | 515 | */ |
521 | void __iomem *timer0_va_base; | 516 | void __iomem *timer0_va_base; |
@@ -530,8 +525,6 @@ void __init realview_timer_init(unsigned int timer_irq) | |||
530 | { | 525 | { |
531 | u32 val; | 526 | u32 val; |
532 | 527 | ||
533 | versatile_sched_clock_init(REFCOUNTER, 24000000); | ||
534 | |||
535 | /* | 528 | /* |
536 | * set clock frequency: | 529 | * set clock frequency: |
537 | * REALVIEW_REFCLK is 32KHz | 530 | * REALVIEW_REFCLK is 32KHz |
diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h index 693239ddc39e..27c927387083 100644 --- a/arch/arm/mach-realview/core.h +++ b/arch/arm/mach-realview/core.h | |||
@@ -63,6 +63,7 @@ extern void realview_timer_init(unsigned int timer_irq); | |||
63 | extern int realview_flash_register(struct resource *res, u32 num); | 63 | extern int realview_flash_register(struct resource *res, u32 num); |
64 | extern int realview_eth_register(const char *name, struct resource *res); | 64 | extern int realview_eth_register(const char *name, struct resource *res); |
65 | extern int realview_usb_register(struct resource *res); | 65 | extern int realview_usb_register(struct resource *res); |
66 | extern void realview_init_early(void); | ||
66 | extern void realview_fixup(struct machine_desc *mdesc, struct tag *tags, | 67 | extern void realview_fixup(struct machine_desc *mdesc, struct tag *tags, |
67 | char **from, struct meminfo *meminfo); | 68 | char **from, struct meminfo *meminfo); |
68 | extern void (*realview_reset)(char); | 69 | extern void (*realview_reset)(char); |
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 6ef5c5e528b2..c00e52754efe 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c | |||
@@ -487,6 +487,7 @@ MACHINE_START(REALVIEW_EB, "ARM-RealView EB") | |||
487 | .boot_params = PHYS_OFFSET + 0x00000100, | 487 | .boot_params = PHYS_OFFSET + 0x00000100, |
488 | .fixup = realview_fixup, | 488 | .fixup = realview_fixup, |
489 | .map_io = realview_eb_map_io, | 489 | .map_io = realview_eb_map_io, |
490 | .init_early = realview_init_early, | ||
490 | .init_irq = gic_init_irq, | 491 | .init_irq = gic_init_irq, |
491 | .timer = &realview_eb_timer, | 492 | .timer = &realview_eb_timer, |
492 | .init_machine = realview_eb_init, | 493 | .init_machine = realview_eb_init, |
diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c index cbdc97a5685f..f0447bbf809b 100644 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c | |||
@@ -382,6 +382,7 @@ MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") | |||
382 | .boot_params = PHYS_OFFSET + 0x00000100, | 382 | .boot_params = PHYS_OFFSET + 0x00000100, |
383 | .fixup = realview_pb1176_fixup, | 383 | .fixup = realview_pb1176_fixup, |
384 | .map_io = realview_pb1176_map_io, | 384 | .map_io = realview_pb1176_map_io, |
385 | .init_early = realview_init_early, | ||
385 | .init_irq = gic_init_irq, | 386 | .init_irq = gic_init_irq, |
386 | .timer = &realview_pb1176_timer, | 387 | .timer = &realview_pb1176_timer, |
387 | .init_machine = realview_pb1176_init, | 388 | .init_machine = realview_pb1176_init, |
diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c index 8e8ab7d29a6a..3b4f78870ac1 100644 --- a/arch/arm/mach-realview/realview_pb11mp.c +++ b/arch/arm/mach-realview/realview_pb11mp.c | |||
@@ -384,6 +384,7 @@ MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") | |||
384 | .boot_params = PHYS_OFFSET + 0x00000100, | 384 | .boot_params = PHYS_OFFSET + 0x00000100, |
385 | .fixup = realview_fixup, | 385 | .fixup = realview_fixup, |
386 | .map_io = realview_pb11mp_map_io, | 386 | .map_io = realview_pb11mp_map_io, |
387 | .init_early = realview_init_early, | ||
387 | .init_irq = gic_init_irq, | 388 | .init_irq = gic_init_irq, |
388 | .timer = &realview_pb11mp_timer, | 389 | .timer = &realview_pb11mp_timer, |
389 | .init_machine = realview_pb11mp_init, | 390 | .init_machine = realview_pb11mp_init, |
diff --git a/arch/arm/mach-realview/realview_pba8.c b/arch/arm/mach-realview/realview_pba8.c index 841118e3e118..f98d4fa74e30 100644 --- a/arch/arm/mach-realview/realview_pba8.c +++ b/arch/arm/mach-realview/realview_pba8.c | |||
@@ -334,6 +334,7 @@ MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") | |||
334 | .boot_params = PHYS_OFFSET + 0x00000100, | 334 | .boot_params = PHYS_OFFSET + 0x00000100, |
335 | .fixup = realview_fixup, | 335 | .fixup = realview_fixup, |
336 | .map_io = realview_pba8_map_io, | 336 | .map_io = realview_pba8_map_io, |
337 | .init_early = realview_init_early, | ||
337 | .init_irq = gic_init_irq, | 338 | .init_irq = gic_init_irq, |
338 | .timer = &realview_pba8_timer, | 339 | .timer = &realview_pba8_timer, |
339 | .init_machine = realview_pba8_init, | 340 | .init_machine = realview_pba8_init, |
diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c index 02b755b009db..b0521e1bb1ae 100644 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c | |||
@@ -417,6 +417,7 @@ MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") | |||
417 | .boot_params = PHYS_OFFSET + 0x00000100, | 417 | .boot_params = PHYS_OFFSET + 0x00000100, |
418 | .fixup = realview_pbx_fixup, | 418 | .fixup = realview_pbx_fixup, |
419 | .map_io = realview_pbx_map_io, | 419 | .map_io = realview_pbx_map_io, |
420 | .init_early = realview_init_early, | ||
420 | .init_irq = gic_init_irq, | 421 | .init_irq = gic_init_irq, |
421 | .timer = &realview_pbx_timer, | 422 | .timer = &realview_pbx_timer, |
422 | .init_machine = realview_pbx_init, | 423 | .init_machine = realview_pbx_init, |