123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /*
- * BCM2835 SYS timer emulation
- *
- * Copyright (c) 2019 Philippe Mathieu-Daudé <f4bug@amsat.org>
- *
- * SPDX-License-Identifier: GPL-2.0-or-later
- */
- #ifndef BCM2835_SYSTMR_H
- #define BCM2835_SYSTMR_H
- #include "hw/sysbus.h"
- #include "hw/irq.h"
- #include "qemu/timer.h"
- #include "qom/object.h"
- #define TYPE_BCM2835_SYSTIMER "bcm2835-sys-timer"
- OBJECT_DECLARE_SIMPLE_TYPE(BCM2835SystemTimerState, BCM2835_SYSTIMER)
- #define BCM2835_SYSTIMER_COUNT 4
- typedef struct {
- unsigned id;
- QEMUTimer timer;
- qemu_irq irq;
- BCM2835SystemTimerState *state;
- } BCM2835SystemTimerCompare;
- struct BCM2835SystemTimerState {
- /*< private >*/
- SysBusDevice parent_obj;
- /*< public >*/
- MemoryRegion iomem;
- struct {
- uint32_t ctrl_status;
- uint32_t compare[BCM2835_SYSTIMER_COUNT];
- } reg;
- BCM2835SystemTimerCompare tmr[BCM2835_SYSTIMER_COUNT];
- };
- #endif
|