#include <linux/dw_apb_timer.h>
#include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/io.h>
#include <linux/slab.h>
#define APBT_MIN_PERIOD …
#define APBT_MIN_DELTA_USEC …
#define APBTMR_N_LOAD_COUNT …
#define APBTMR_N_CURRENT_VALUE …
#define APBTMR_N_CONTROL …
#define APBTMR_N_EOI …
#define APBTMR_N_INT_STATUS …
#define APBTMRS_INT_STATUS …
#define APBTMRS_EOI …
#define APBTMRS_RAW_INT_STATUS …
#define APBTMRS_COMP_VERSION …
#define APBTMR_CONTROL_ENABLE …
#define APBTMR_CONTROL_MODE_PERIODIC …
#define APBTMR_CONTROL_INT …
static inline struct dw_apb_clock_event_device *
ced_to_dw_apb_ced(struct clock_event_device *evt)
{ … }
static inline struct dw_apb_clocksource *
clocksource_to_dw_apb_clocksource(struct clocksource *cs)
{ … }
static inline u32 apbt_readl(struct dw_apb_timer *timer, unsigned long offs)
{ … }
static inline void apbt_writel(struct dw_apb_timer *timer, u32 val,
unsigned long offs)
{ … }
static inline u32 apbt_readl_relaxed(struct dw_apb_timer *timer, unsigned long offs)
{ … }
static inline void apbt_writel_relaxed(struct dw_apb_timer *timer, u32 val,
unsigned long offs)
{ … }
static void apbt_disable_int(struct dw_apb_timer *timer)
{ … }
void dw_apb_clockevent_pause(struct dw_apb_clock_event_device *dw_ced)
{ … }
static void apbt_eoi(struct dw_apb_timer *timer)
{ … }
static irqreturn_t dw_apb_clockevent_irq(int irq, void *data)
{ … }
static void apbt_enable_int(struct dw_apb_timer *timer)
{ … }
static int apbt_shutdown(struct clock_event_device *evt)
{ … }
static int apbt_set_oneshot(struct clock_event_device *evt)
{ … }
static int apbt_set_periodic(struct clock_event_device *evt)
{ … }
static int apbt_resume(struct clock_event_device *evt)
{ … }
static int apbt_next_event(unsigned long delta,
struct clock_event_device *evt)
{ … }
struct dw_apb_clock_event_device *
dw_apb_clockevent_init(int cpu, const char *name, unsigned rating,
void __iomem *base, int irq, unsigned long freq)
{ … }
void dw_apb_clockevent_resume(struct dw_apb_clock_event_device *dw_ced)
{ … }
void dw_apb_clockevent_stop(struct dw_apb_clock_event_device *dw_ced)
{ … }
void dw_apb_clockevent_register(struct dw_apb_clock_event_device *dw_ced)
{ … }
void dw_apb_clocksource_start(struct dw_apb_clocksource *dw_cs)
{ … }
static u64 __apbt_read_clocksource(struct clocksource *cs)
{ … }
static void apbt_restart_clocksource(struct clocksource *cs)
{ … }
struct dw_apb_clocksource *
dw_apb_clocksource_init(unsigned rating, const char *name, void __iomem *base,
unsigned long freq)
{ … }
void dw_apb_clocksource_register(struct dw_apb_clocksource *dw_cs)
{ … }
u64 dw_apb_clocksource_read(struct dw_apb_clocksource *dw_cs)
{ … }