renesas_cmt.h (819B)
1/* 2 * Renesas Compare-match timer Object 3 * 4 * Copyright (c) 2019 Yoshinori Sato 5 * 6 * SPDX-License-Identifier: GPL-2.0-or-later 7 */ 8 9#ifndef HW_TIMER_RENESAS_CMT_H 10#define HW_TIMER_RENESAS_CMT_H 11 12#include "qemu/timer.h" 13#include "hw/sysbus.h" 14#include "qom/object.h" 15 16#define TYPE_RENESAS_CMT "renesas-cmt" 17typedef struct RCMTState RCMTState; 18DECLARE_INSTANCE_CHECKER(RCMTState, RCMT, 19 TYPE_RENESAS_CMT) 20 21enum { 22 CMT_CH = 2, 23 CMT_NR_IRQ = 1 * CMT_CH 24}; 25 26struct RCMTState { 27 /*< private >*/ 28 SysBusDevice parent_obj; 29 /*< public >*/ 30 31 uint64_t input_freq; 32 MemoryRegion memory; 33 34 uint16_t cmstr; 35 uint16_t cmcr[CMT_CH]; 36 uint16_t cmcnt[CMT_CH]; 37 uint16_t cmcor[CMT_CH]; 38 int64_t tick[CMT_CH]; 39 qemu_irq cmi[CMT_CH]; 40 QEMUTimer timer[CMT_CH]; 41}; 42 43#endif