/* * Renesas Serial Communication Interface * * Copyright (c) 2018 Yoshinori Sato * * SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef HW_CHAR_RENESAS_SCI_H #define HW_CHAR_RENESAS_SCI_H #include "chardev/char-fe.h" #include "hw/sysbus.h" #include "qom/object.h" #define TYPE_RENESAS_SCI "renesas-sci" typedef struct RSCIState RSCIState; DECLARE_INSTANCE_CHECKER(RSCIState, RSCI, TYPE_RENESAS_SCI) enum { ERI = 0, RXI = 1, TXI = 2, TEI = 3, SCI_NR_IRQ = 4 }; struct RSCIState { /*< private >*/ SysBusDevice parent_obj; /*< public >*/ MemoryRegion memory; QEMUTimer timer; CharBackend chr; qemu_irq irq[SCI_NR_IRQ]; uint8_t smr; uint8_t brr; uint8_t scr; uint8_t tdr; uint8_t ssr; uint8_t rdr; uint8_t scmr; uint8_t semr; uint8_t read_ssr; int64_t trtime; int64_t rx_next; uint64_t input_freq; }; #endif