diff options
author | Pawel Moll <pawel.moll@arm.com> | 2012-10-16 15:27:12 +0100 |
---|---|---|
committer | Pawel Moll <pawel.moll@arm.com> | 2012-11-05 17:09:52 +0000 |
commit | 433683a66401adb0150792e725cc4f631c94de46 (patch) | |
tree | a820c2b4faddc6109e449a21b551b4a18339c287 /arch/arm/mach-vexpress | |
parent | 38669e045dbf8f62a008898a7fb1e93975b3817c (diff) | |
download | linux-433683a66401adb0150792e725cc4f631c94de46.tar.gz linux-433683a66401adb0150792e725cc4f631c94de46.tar.bz2 linux-433683a66401adb0150792e725cc4f631c94de46.zip |
ARM: vexpress: Remove motherboard dependencies in the DTS files
The way the VE motherboard Device Trees were constructed
enforced naming and structure of daughterboard files. This
patch makes it possible to simply include the motherboard
description anywhere in the main Device Tree and retires
the "arm,v2m-timer" alias - any of the motherboard SP804
timers will be used instead.
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Diffstat (limited to 'arch/arm/mach-vexpress')
-rw-r--r-- | arch/arm/mach-vexpress/v2m.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index 99d4172816be..4e168e81fb42 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c @@ -446,17 +446,20 @@ static void __init v2m_dt_init_irq(void) static void __init v2m_dt_timer_init(void) { - struct device_node *node; - const char *path; - int err; + struct device_node *node = NULL; vexpress_clk_of_init(); - err = of_property_read_string(of_aliases, "arm,v2m_timer", &path); - if (WARN_ON(err)) - return; - node = of_find_node_by_path(path); - v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0)); + do { + node = of_find_compatible_node(node, NULL, "arm,sp804"); + } while (node && vexpress_get_site_by_node(node) != VEXPRESS_SITE_MB); + if (node) { + pr_info("Using SP804 '%s' as a clock & events source\n", + node->full_name); + v2m_sp804_init(of_iomap(node, 0), + irq_of_parse_and_map(node, 0)); + } + if (arch_timer_of_register() != 0) twd_local_timer_of_register(); |