#define pr_fmt(fmt) …
#include <linux/clk.h>
#include <linux/clockchips.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/irqreturn.h>
#include <linux/sched/clock.h>
#include <linux/sched_clock.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
enum { … };
#define CONTROL(t) …
#define COUNT(t) …
#define CONTROL_DISABLE …
#define CONTROL_ENABLE …
#define CONTROL_MODE(m) …
#define CONTROL_MODE_ONESHOT …
#define CONTROL_MODE_PERIODIC …
struct digicolor_timer { … };
static struct digicolor_timer *dc_timer(struct clock_event_device *ce)
{ … }
static inline void dc_timer_disable(struct clock_event_device *ce)
{ … }
static inline void dc_timer_enable(struct clock_event_device *ce, u32 mode)
{ … }
static inline void dc_timer_set_count(struct clock_event_device *ce,
unsigned long count)
{ … }
static int digicolor_clkevt_shutdown(struct clock_event_device *ce)
{ … }
static int digicolor_clkevt_set_oneshot(struct clock_event_device *ce)
{ … }
static int digicolor_clkevt_set_periodic(struct clock_event_device *ce)
{ … }
static int digicolor_clkevt_next_event(unsigned long evt,
struct clock_event_device *ce)
{ … }
static struct digicolor_timer dc_timer_dev = …;
static irqreturn_t digicolor_timer_interrupt(int irq, void *dev_id)
{ … }
static u64 notrace digicolor_timer_sched_read(void)
{ … }
static int __init digicolor_timer_init(struct device_node *node)
{ … }
TIMER_OF_DECLARE(conexant_digicolor, "cnxt,cx92755-timer",
digicolor_timer_init);