/* | |
* 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 |