diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2012-03-28 12:13:53 -0400 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2012-04-27 08:39:01 -0400 |
commit | 120f3d6c2309cde8b93310267ed11a9b5aa2aad4 (patch) | |
tree | c418c2a68df44ad5dd00c3ab15561958b3604a15 /arch/arm/mach-vexpress | |
parent | 273d16adbccdfe3e4a9d02d286b8f1d76dc9e63f (diff) |
ARM: vexpress: plug local timers into the DT code
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Pawel Moll <pawel.moll@arm.com>
Diffstat (limited to 'arch/arm/mach-vexpress')
-rw-r--r-- | arch/arm/mach-vexpress/v2m.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index 47cdcca5a7e7..04dd092211b8 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c | |||
@@ -19,8 +19,10 @@ | |||
19 | #include <linux/clkdev.h> | 19 | #include <linux/clkdev.h> |
20 | #include <linux/mtd/physmap.h> | 20 | #include <linux/mtd/physmap.h> |
21 | 21 | ||
22 | #include <asm/arch_timer.h> | ||
22 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
23 | #include <asm/sizes.h> | 24 | #include <asm/sizes.h> |
25 | #include <asm/smp_twd.h> | ||
24 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
26 | #include <asm/mach/time.h> | 28 | #include <asm/mach/time.h> |
@@ -616,7 +618,6 @@ void __init v2m_dt_init_early(void) | |||
616 | } | 618 | } |
617 | 619 | ||
618 | clkdev_add_table(v2m_dt_lookups, ARRAY_SIZE(v2m_dt_lookups)); | 620 | clkdev_add_table(v2m_dt_lookups, ARRAY_SIZE(v2m_dt_lookups)); |
619 | versatile_sched_clock_init(v2m_sysreg_base + V2M_SYS_24MHZ, 24000000); | ||
620 | } | 621 | } |
621 | 622 | ||
622 | static struct of_device_id vexpress_irq_match[] __initdata = { | 623 | static struct of_device_id vexpress_irq_match[] __initdata = { |
@@ -643,6 +644,11 @@ static void __init v2m_dt_timer_init(void) | |||
643 | return; | 644 | return; |
644 | node = of_find_node_by_path(path); | 645 | node = of_find_node_by_path(path); |
645 | v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0)); | 646 | v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0)); |
647 | if (arch_timer_of_register() != 0) | ||
648 | twd_local_timer_of_register(); | ||
649 | |||
650 | if (arch_timer_sched_clock_init() != 0) | ||
651 | versatile_sched_clock_init(v2m_sysreg_base + V2M_SYS_24MHZ, 24000000); | ||
646 | } | 652 | } |
647 | 653 | ||
648 | static struct sys_timer v2m_dt_timer = { | 654 | static struct sys_timer v2m_dt_timer = { |