#include <linux/io.h>
#include <linux/irq.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
#include <linux/clk.h>
#include <linux/clockchips.h>
#include <linux/cpumask.h>
#include <linux/interrupt.h>
#include <linux/slab.h>
#define IO_CURRENT_VAL …
#define IO_DIVIDER …
#define IO_CONTROL …
#define IO_TIMER1 …
#define IO_TIMER2 …
#define IO_MATCH_BEGIN …
#define IO_MATCH(x) …
#define IO_INTR_STS …
#define IO_INTR_ACK …
#define IO_INTR_MSK …
#define CNTL_STOP_TIMER …
#define CNTL_RUN_TIMER …
#define CNTL_INC …
#define CNTL_DEC …
#define CNTL_TOZERO …
#define CNTL_MATCH(x) …
#define CNTL_FOREVER …
#define TIMER_MATCH …
#define TIMER_INTR_MSK …
#define TIMER_INTR_ALL …
struct zevio_timer { … };
static int zevio_timer_set_event(unsigned long delta,
struct clock_event_device *dev)
{ … }
static int zevio_timer_shutdown(struct clock_event_device *dev)
{ … }
static int zevio_timer_set_oneshot(struct clock_event_device *dev)
{ … }
static irqreturn_t zevio_timer_interrupt(int irq, void *dev_id)
{ … }
static int __init zevio_timer_add(struct device_node *node)
{ … }
static int __init zevio_timer_init(struct device_node *node)
{ … }
TIMER_OF_DECLARE(zevio_timer, "lsi,zevio-timer", zevio_timer_init);