1a4110027SAndrew Jones /* 2a4110027SAndrew Jones * Copyright (C) 2020, Red Hat Inc, Andrew Jones <drjones@redhat.com> 3a4110027SAndrew Jones * 4a4110027SAndrew Jones * This work is licensed under the terms of the GNU LGPL, version 2. 5a4110027SAndrew Jones */ 6a4110027SAndrew Jones #ifndef _ASMARM_TIMER_H_ 7a4110027SAndrew Jones #define _ASMARM_TIMER_H_ 8a4110027SAndrew Jones 9a4110027SAndrew Jones #define ARCH_TIMER_CTL_ENABLE (1 << 0) 10a4110027SAndrew Jones #define ARCH_TIMER_CTL_IMASK (1 << 1) 11a4110027SAndrew Jones #define ARCH_TIMER_CTL_ISTATUS (1 << 2) 12a4110027SAndrew Jones 13*0cc3a351SSean Christopherson #ifndef __ASSEMBLER__ 14a4110027SAndrew Jones 15a4110027SAndrew Jones struct timer_state { 16a4110027SAndrew Jones struct { 17a4110027SAndrew Jones u32 irq; 18a4110027SAndrew Jones u32 irq_flags; 19a4110027SAndrew Jones } ptimer; 20a4110027SAndrew Jones struct { 21a4110027SAndrew Jones u32 irq; 22a4110027SAndrew Jones u32 irq_flags; 23a4110027SAndrew Jones } vtimer; 24a4110027SAndrew Jones }; 25a4110027SAndrew Jones extern struct timer_state __timer_state; 26a4110027SAndrew Jones 27a4110027SAndrew Jones #define TIMER_PTIMER_IRQ (__timer_state.ptimer.irq) 28a4110027SAndrew Jones #define TIMER_VTIMER_IRQ (__timer_state.vtimer.irq) 29a4110027SAndrew Jones 30bb4c17e3SNikos Nikoleris void timer_save_state(void); 31bb4c17e3SNikos Nikoleris 32*0cc3a351SSean Christopherson #endif /* !__ASSEMBLER__ */ 33a4110027SAndrew Jones #endif /* _ASMARM_TIMER_H_ */ 34