aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc
diff options
context:
space:
mode:
authorLaurent Vivier <laurent@vivier.eu>2022-04-06 22:15:22 +0200
committerGeert Uytterhoeven <geert@linux-m68k.org>2022-04-11 11:48:01 +0200
commitc92e7ef16400bf035e8b49c7dd091bfce4f99773 (patch)
treefd060d9d4c8c1bf248df52d859f6b8b53ab62688 /drivers/rtc
parentrtc: goldfish: Use gf_ioread32()/gf_iowrite32() (diff)
downloadlinux-dev-c92e7ef16400bf035e8b49c7dd091bfce4f99773.tar.xz
linux-dev-c92e7ef16400bf035e8b49c7dd091bfce4f99773.zip
clocksource/drivers: Add a goldfish-timer clocksource
Add a clocksource based on the goldfish-rtc device. Move the timer register definition to <clocksource/timer-goldfish.h> This kernel implementation is based on the QEMU upstream implementation: https://git.qemu.org/?p=qemu.git;a=blob_plain;f=hw/rtc/goldfish_rtc.c goldfish-timer is a high-precision signed 64-bit nanosecond timer. It is part of the 'goldfish' virtual hardware platform used to run some emulated Android systems under QEMU. This timer only supports oneshot event. Signed-off-by: Laurent Vivier <laurent@vivier.eu> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Link: https://lore.kernel.org/r/20220406201523.243733-4-laurent@vivier.eu Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Diffstat (limited to 'drivers/rtc')
-rw-r--r--drivers/rtc/rtc-goldfish.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/drivers/rtc/rtc-goldfish.c b/drivers/rtc/rtc-goldfish.c
index eb1929b0cbb6..59c0f38cc08d 100644
--- a/drivers/rtc/rtc-goldfish.c
+++ b/drivers/rtc/rtc-goldfish.c
@@ -11,18 +11,7 @@
#include <linux/platform_device.h>
#include <linux/rtc.h>
#include <linux/goldfish.h>
-
-#define TIMER_TIME_LOW 0x00 /* get low bits of current time */
- /* and update TIMER_TIME_HIGH */
-#define TIMER_TIME_HIGH 0x04 /* get high bits of time at last */
- /* TIMER_TIME_LOW read */
-#define TIMER_ALARM_LOW 0x08 /* set low bits of alarm and */
- /* activate it */
-#define TIMER_ALARM_HIGH 0x0c /* set high bits of next alarm */
-#define TIMER_IRQ_ENABLED 0x10
-#define TIMER_CLEAR_ALARM 0x14
-#define TIMER_ALARM_STATUS 0x18
-#define TIMER_CLEAR_INTERRUPT 0x1c
+#include <clocksource/timer-goldfish.h>
struct goldfish_rtc {
void __iomem *base;