#include <linux/interrupt.h>
#include <linux/clockchips.h>
#include <linux/slab.h>
#include "timer-of.h"
#define CMP_OFFSET …
#define RD_OFFSET …
#define CNTCV_LO …
#define CNTCV_HI …
#define CMPCV_LO …
#define CMPCV_HI …
#define CMPCR …
#define CNTCV_LO_IMX95 …
#define CNTCV_HI_IMX95 …
#define SYS_CTR_EN …
#define SYS_CTR_IRQ_MASK …
#define SYS_CTR_CLK_DIV …
struct sysctr_private { … };
static void sysctr_timer_enable(struct clock_event_device *evt, bool enable)
{ … }
static void sysctr_irq_acknowledge(struct clock_event_device *evt)
{ … }
static inline u64 sysctr_read_counter(struct clock_event_device *evt)
{ … }
static int sysctr_set_next_event(unsigned long delta,
struct clock_event_device *evt)
{ … }
static int sysctr_set_state_oneshot(struct clock_event_device *evt)
{ … }
static int sysctr_set_state_shutdown(struct clock_event_device *evt)
{ … }
static irqreturn_t sysctr_timer_interrupt(int irq, void *dev_id)
{ … }
static struct timer_of to_sysctr = …;
static int __init __sysctr_timer_init(struct device_node *np)
{ … }
static int __init sysctr_timer_init(struct device_node *np)
{ … }
static int __init sysctr_timer_imx95_init(struct device_node *np)
{ … }
TIMER_OF_DECLARE(sysctr_timer, "nxp,sysctr-timer", sysctr_timer_init);
TIMER_OF_DECLARE(sysctr_timer_imx95, "nxp,imx95-sysctr-timer", sysctr_timer_imx95_init);