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