clocksource: arch_timer: Add support for memory mapped timers
authorStephen Boyd <sboyd@codeaurora.org>
Thu, 18 Jul 2013 23:59:32 +0000 (16:59 -0700)
committerMark Brown <broonie@linaro.org>
Fri, 13 Jun 2014 15:58:52 +0000 (16:58 +0100)
commit2b8b608bfca576bbadfa199825b378514696238e
treed5ed4a5cf42ab266c8c8ef4084dc913de7910182
parentff52761adb613e1549bd9471850a6f86a420de49
clocksource: arch_timer: Add support for memory mapped timers

Add support for the memory mapped timers by filling in the
read/write functions and adding some parsing code. Note that we
only register one clocksource, preferring the cp15 based
clocksource over the mmio one.

To keep things simple we register one global clockevent. This
covers the case of UP and SMP systems with only mmio hardware and
systems where the memory mapped timers are used as the broadcast
timer in low power modes.

The DT binding allows for per-CPU memory mapped timers in case we
want to support that in the future, but the code isn't added
here. We also don't do much for hypervisor support, although it
should be possible to support it by searching for at least two
frames where one frame has the virtual capability and then
updating KVM timers to support it.

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Marc Zyngier <Marc.Zyngier@arm.com>
Cc: Rob Herring <robherring2@gmail.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
(cherry picked from commit 220069945b298d3998c6598b081c466dca259929)
Signed-off-by: Mark Brown <broonie@linaro.org>
Conflicts:
drivers/clocksource/arm_arch_timer.c
drivers/clocksource/arm_arch_timer.c
include/clocksource/arm_arch_timer.h