xref: /kvm-unit-tests/lib/arm/asm/timer.h (revision a41100276a89128703db61361f6be878c6473005)
1*a4110027SAndrew Jones /*
2*a4110027SAndrew Jones  * Copyright (C) 2020, Red Hat Inc, Andrew Jones <drjones@redhat.com>
3*a4110027SAndrew Jones  *
4*a4110027SAndrew Jones  * This work is licensed under the terms of the GNU LGPL, version 2.
5*a4110027SAndrew Jones  */
6*a4110027SAndrew Jones #ifndef _ASMARM_TIMER_H_
7*a4110027SAndrew Jones #define _ASMARM_TIMER_H_
8*a4110027SAndrew Jones 
9*a4110027SAndrew Jones #define ARCH_TIMER_CTL_ENABLE  (1 << 0)
10*a4110027SAndrew Jones #define ARCH_TIMER_CTL_IMASK   (1 << 1)
11*a4110027SAndrew Jones #define ARCH_TIMER_CTL_ISTATUS (1 << 2)
12*a4110027SAndrew Jones 
13*a4110027SAndrew Jones #ifndef __ASSEMBLY__
14*a4110027SAndrew Jones 
15*a4110027SAndrew Jones struct timer_state {
16*a4110027SAndrew Jones 	struct {
17*a4110027SAndrew Jones 		u32 irq;
18*a4110027SAndrew Jones 		u32 irq_flags;
19*a4110027SAndrew Jones 	} ptimer;
20*a4110027SAndrew Jones 	struct {
21*a4110027SAndrew Jones 		u32 irq;
22*a4110027SAndrew Jones 		u32 irq_flags;
23*a4110027SAndrew Jones 	} vtimer;
24*a4110027SAndrew Jones };
25*a4110027SAndrew Jones extern struct timer_state __timer_state;
26*a4110027SAndrew Jones 
27*a4110027SAndrew Jones #define TIMER_PTIMER_IRQ (__timer_state.ptimer.irq)
28*a4110027SAndrew Jones #define TIMER_VTIMER_IRQ (__timer_state.vtimer.irq)
29*a4110027SAndrew Jones 
30*a4110027SAndrew Jones #endif /* !__ASSEMBLY__ */
31*a4110027SAndrew Jones #endif /* _ASMARM_TIMER_H_ */
32