#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/clockchips.h>
#include <linux/clocksource.h>
#include <linux/sched_clock.h>
#include <linux/cpu.h>
#include <linux/cpuhotplug.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
#define PIT_IRQ_SHIFT …
#define PIT_PRIO_SHIFT …
#define PIT_ENABLE_SHIFT …
#define PIT_PRIO_MASK …
#define REG_PITEN …
#define REG_THROT …
#define REG_COUNT …
#define REG_BUSPD …
#define REG_SECHI …
#define REG_SECLO …
#define REG_NSEC …
struct jcore_pit { … };
static void __iomem *jcore_pit_base;
static struct jcore_pit __percpu *jcore_pit_percpu;
static notrace u64 jcore_sched_clock_read(void)
{ … }
static u64 jcore_clocksource_read(struct clocksource *cs)
{ … }
static int jcore_pit_disable(struct jcore_pit *pit)
{ … }
static int jcore_pit_set(unsigned long delta, struct jcore_pit *pit)
{ … }
static int jcore_pit_set_state_shutdown(struct clock_event_device *ced)
{ … }
static int jcore_pit_set_state_oneshot(struct clock_event_device *ced)
{ … }
static int jcore_pit_set_state_periodic(struct clock_event_device *ced)
{ … }
static int jcore_pit_set_next_event(unsigned long delta,
struct clock_event_device *ced)
{ … }
static int jcore_pit_local_init(unsigned cpu)
{ … }
static irqreturn_t jcore_timer_interrupt(int irq, void *dev_id)
{ … }
static int __init jcore_pit_init(struct device_node *node)
{ … }
TIMER_OF_DECLARE(jcore_pit, "jcore,pit", jcore_pit_init);