diff options
author | Olof Johansson <olof@lixom.net> | 2016-02-08 13:54:16 -0800 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2016-02-08 13:54:16 -0800 |
commit | 7436cf625eaa5c83f1975225141ec1d638f6fdfe (patch) | |
tree | fb264c63ad1203995bb20248001592846d3c935e | |
parent | 0c5325466d5d4816c9bd13c56746aa26ed66231d (diff) | |
parent | 1e78dbe717b1668e1660556930d952447c7c1197 (diff) | |
download | linux-stable-7436cf625eaa5c83f1975225141ec1d638f6fdfe.tar.gz linux-stable-7436cf625eaa5c83f1975225141ec1d638f6fdfe.tar.bz2 linux-stable-7436cf625eaa5c83f1975225141ec1d638f6fdfe.zip |
Merge tag 'mvebu-drivers-4.6-1' of git://git.infradead.org/linux-mvebu into next/soc
mvebu driver for 4.6 (part 1)
implement ARM delay timer for orion
* tag 'mvebu-drivers-4.6-1' of git://git.infradead.org/linux-mvebu:
ARM: orion: implement ARM delay timer
Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r-- | arch/arm/plat-orion/time.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/plat-orion/time.c b/arch/arm/plat-orion/time.c index 8085a8aac812..ffb93db68e9c 100644 --- a/arch/arm/plat-orion/time.c +++ b/arch/arm/plat-orion/time.c @@ -18,6 +18,7 @@ #include <linux/irq.h> #include <linux/sched_clock.h> #include <plat/time.h> +#include <asm/delay.h> /* * MBus bridge block registers. @@ -188,6 +189,15 @@ orion_time_set_base(void __iomem *_timer_base) timer_base = _timer_base; } +static unsigned long orion_delay_timer_read(void) +{ + return ~readl(timer_base + TIMER0_VAL_OFF); +} + +static struct delay_timer orion_delay_timer = { + .read_current_timer = orion_delay_timer_read, +}; + void __init orion_time_init(void __iomem *_bridge_base, u32 _bridge_timer1_clr_mask, unsigned int irq, unsigned int tclk) @@ -202,6 +212,9 @@ orion_time_init(void __iomem *_bridge_base, u32 _bridge_timer1_clr_mask, ticks_per_jiffy = (tclk + HZ/2) / HZ; + orion_delay_timer.freq = tclk; + register_current_timer_delay(&orion_delay_timer); + /* * Set scale and timer for sched_clock. */ |