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