cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dw_apb_timer.h (1566B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * (C) Copyright 2009 Intel Corporation
      4 * Author: Jacob Pan (jacob.jun.pan@intel.com)
      5 *
      6 * Shared with ARM platforms, Jamie Iles, Picochip 2011
      7 *
      8 * Support for the Synopsys DesignWare APB Timers.
      9 */
     10#ifndef __DW_APB_TIMER_H__
     11#define __DW_APB_TIMER_H__
     12
     13#include <linux/clockchips.h>
     14#include <linux/clocksource.h>
     15#include <linux/interrupt.h>
     16
     17#define APBTMRS_REG_SIZE       0x14
     18
     19struct dw_apb_timer {
     20	void __iomem				*base;
     21	unsigned long				freq;
     22	int					irq;
     23};
     24
     25struct dw_apb_clock_event_device {
     26	struct clock_event_device		ced;
     27	struct dw_apb_timer			timer;
     28	void					(*eoi)(struct dw_apb_timer *);
     29};
     30
     31struct dw_apb_clocksource {
     32	struct dw_apb_timer			timer;
     33	struct clocksource			cs;
     34};
     35
     36void dw_apb_clockevent_register(struct dw_apb_clock_event_device *dw_ced);
     37void dw_apb_clockevent_pause(struct dw_apb_clock_event_device *dw_ced);
     38void dw_apb_clockevent_resume(struct dw_apb_clock_event_device *dw_ced);
     39void dw_apb_clockevent_stop(struct dw_apb_clock_event_device *dw_ced);
     40
     41struct dw_apb_clock_event_device *
     42dw_apb_clockevent_init(int cpu, const char *name, unsigned rating,
     43		       void __iomem *base, int irq, unsigned long freq);
     44struct dw_apb_clocksource *
     45dw_apb_clocksource_init(unsigned rating, const char *name, void __iomem *base,
     46			unsigned long freq);
     47void dw_apb_clocksource_register(struct dw_apb_clocksource *dw_cs);
     48void dw_apb_clocksource_start(struct dw_apb_clocksource *dw_cs);
     49u64 dw_apb_clocksource_read(struct dw_apb_clocksource *dw_cs);
     50
     51#endif /* __DW_APB_TIMER_H__ */