From: Pawel Moll Date: Thu, 15 Dec 2011 10:44:25 +0000 (+0000) Subject: ARM: versatile: Map local timers using Device Tree when possible X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=53491593bb5600e64299eb08794837754baca97d;p=people%2Fsstabellini%2Flinux-pvhvm-deprecated.git ARM: versatile: Map local timers using Device Tree when possible Try to map TWD registers basing on a "arm,smp-twd" Device Tree node (compatible value as used in Highbank's DT). This overrides existing twd_base value. Signed-off-by: Pawel Moll --- diff --git a/arch/arm/plat-versatile/localtimer.c b/arch/arm/plat-versatile/localtimer.c index 0fb3961999b..fa09cb48f3e 100644 --- a/arch/arm/plat-versatile/localtimer.c +++ b/arch/arm/plat-versatile/localtimer.c @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include @@ -21,6 +23,23 @@ */ int __cpuinit local_timer_setup(struct clock_event_device *evt) { +#if defined(CONFIG_OF) + static int dt_node_probed; + + /* Look for TWD node only once */ + if (!dt_node_probed) { + struct device_node *node = of_find_compatible_node(NULL, + NULL, "arm,smp-twd"); + + if (node) + twd_base = of_iomap(node, 0); + + dt_node_probed = 1; + } +#endif + if (!twd_base) + return -ENXIO; + evt->irq = IRQ_LOCALTIMER; twd_timer_setup(evt); return 0;