/* * Renesas Compare-match timer Object * * Copyright (c) 2019 Yoshinori Sato * * SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef HW_TIMER_RENESAS_CMT_H #define HW_TIMER_RENESAS_CMT_H #include "qemu/timer.h" #include "hw/sysbus.h" #include "qom/object.h" #define TYPE_RENESAS_CMT "renesas-cmt" typedef struct RCMTState RCMTState; DECLARE_INSTANCE_CHECKER(RCMTState, RCMT, TYPE_RENESAS_CMT) enum { CMT_CH = 2, CMT_NR_IRQ = 1 * CMT_CH }; struct RCMTState { /*< private >*/ SysBusDevice parent_obj; /*< public >*/ uint64_t input_freq; MemoryRegion memory; uint16_t cmstr; uint16_t cmcr[CMT_CH]; uint16_t cmcnt[CMT_CH]; uint16_t cmcor[CMT_CH]; int64_t tick[CMT_CH]; qemu_irq cmi[CMT_CH]; QEMUTimer timer[CMT_CH]; }; #endif