#define pr_fmt(fmt) "arm_arch_timer: " fmt
#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/cpu_pm.h>
#include <linux/clockchips.h>
#include <linux/clocksource.h>
#include <linux/interrupt.h>
#include <linux/of_irq.h>
#include <linux/of_address.h>
#include <linux/sched/clock.h>
#include <linux/sched_clock.h>
#include <asm/arch_timer.h>
#include <clocksource/arm_arch_timer.h>
#define pr_fmt(fmt) "arch_timer: " fmt
#define CNTTIDR_VIRT(n) (BIT(1) << ((n) * 4))
#define CNTACR(n) (0x40 + ((n) * 4))
#define CNTACR_RPCT BIT(0)
#define CNTACR_RVCT BIT(1)
#define CNTACR_RFRQ BIT(2)
#define CNTACR_RVOFF BIT(3)
#define CNTACR_RWVT BIT(4)
#define CNTACR_RWPT BIT(5)
static unsigned arch_timers_present __initdata;
static void __iomem *arch_counter_base;