clockevents: rockchip: Add rockchip timer for rk3288
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Sun, 25 Jan 2015 21:06:02 +0000 (22:06 +0100)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Thu, 29 Jan 2015 13:02:13 +0000 (14:02 +0100)
commit468b8c4cf3962d4d24eca58da18bb63368ff4fcd
tree52c308241080e8079310a21e3cd7354e235e5033
parent8d8bd7be8bf0981564fd557d4b68eeeaaa2325d0
clockevents: rockchip: Add rockchip timer for rk3288

The rk3288 board uses the architected timers and these ones are shutdown when
the cpu is powered down. There is a need of a broadcast timer in this case to
ensure proper wakeup when the cpus are in sleep mode and a timer expires.

This driver provides the basic timer functionnality as a backup for the local
timers at sleep time.

The timer belongs to the alive subsystem. It includes two programmables 64 bits
timer channels but the driver only uses 32bits. It works with two operations
mode: free running and user defined count.

Programing sequence:

1. Timer initialization:
 * Disable the timer by writing '0' to the CONTROLREG register
 * Program the timer mode by writing the mode to the CONTROLREG register
 * Set the interrupt mask

2. Setting the count value:
 * Load the count value to the registers COUNT0 and COUNT1 (not used).

3. Enable the timer
 * Write '1' to the CONTROLREG register with the mode (free running or user)

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Documentation/devicetree/bindings/timer/rockchip,rk3288-timer.txt [new file with mode: 0644]
arch/arm/mach-rockchip/Kconfig
drivers/clocksource/Kconfig
drivers/clocksource/Makefile
drivers/clocksource/rockchip_timer.c [new file with mode: 0644]