#include <linux/io.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/clocksource.h>
#include <linux/clockchips.h>
#include <linux/delay.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
#define VT8500_TIMER_OFFSET …
#define VT8500_TIMER_HZ …
#define TIMER_MATCH_VAL …
#define TIMER_COUNT_VAL …
#define TIMER_STATUS_VAL …
#define TIMER_IER_VAL …
#define TIMER_CTRL_VAL …
#define TIMER_AS_VAL …
#define TIMER_COUNT_R_ACTIVE …
#define TIMER_COUNT_W_ACTIVE …
#define TIMER_MATCH_W_ACTIVE …
#define msecs_to_loops(t) …
#define MIN_OSCR_DELTA …
static void __iomem *regbase;
static u64 vt8500_timer_read(struct clocksource *cs)
{ … }
static struct clocksource clocksource = …;
static int vt8500_timer_set_next_event(unsigned long cycles,
struct clock_event_device *evt)
{ … }
static int vt8500_shutdown(struct clock_event_device *evt)
{ … }
static struct clock_event_device clockevent = …;
static irqreturn_t vt8500_timer_interrupt(int irq, void *dev_id)
{ … }
static int __init vt8500_timer_init(struct device_node *np)
{ … }
TIMER_OF_DECLARE(vt8500, "via,vt8500-timer", vt8500_timer_init);