Skip to content

Commit

Permalink
ARM: ux500: Enable PRCMU Timer 4 (clocksource) for Device Tree
Browse files Browse the repository at this point in the history
In dbx500 based devices the PRCMU Timer 4 is used as a clocksource
and sched_clock. Here we fetch all necessary addressing information
required for correct PRCMU initialisation from the Device Tree
instead of using hard-coded values.

CC: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Lee Jones authored and Linus Walleij committed May 1, 2012
1 parent f58546a commit c51423f
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions arch/arm/mach-ux500/timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <linux/errno.h>
#include <linux/clksrc-dbx500-prcmu.h>
#include <linux/of.h>
#include <linux/of_address.h>

#include <asm/smp_twd.h>

Expand Down Expand Up @@ -43,10 +44,17 @@ static void __init ux500_twd_init(void)
#define ux500_twd_init() do { } while(0)
#endif

const static struct of_device_id prcmu_timer_of_match[] __initconst = {
{ .compatible = "stericsson,db8500-prcmu-timer-4", },
{ },
};

static void __init ux500_timer_init(void)
{
void __iomem *mtu_timer_base;
void __iomem *prcmu_timer_base;
void __iomem *tmp_base;
struct device_node *np;

if (cpu_is_u5500()) {
mtu_timer_base = __io_address(U5500_MTU0_BASE);
Expand All @@ -58,6 +66,22 @@ static void __init ux500_timer_init(void)
ux500_unknown_soc();
}

/* TODO: Once MTU has been DT:ed place code above into else. */
if (of_have_populated_dt()) {
np = of_find_matching_node(NULL, prcmu_timer_of_match);
if (!np)
goto dt_fail;

tmp_base = of_iomap(np, 0);
if (!tmp_base)
goto dt_fail;

prcmu_timer_base = tmp_base;
}

dt_fail:
/* Doing it the old fashioned way. */

/*
* Here we register the timerblocks active in the system.
* Localtimers (twd) is started when both cpu is up and running.
Expand Down

0 comments on commit c51423f

Please sign in to comment.