xref: /qemu/include/hw/char/renesas_sci.h (revision 8110fa1d)
1645194c7SYoshinori Sato /*
2645194c7SYoshinori Sato  * Renesas Serial Communication Interface
3645194c7SYoshinori Sato  *
4645194c7SYoshinori Sato  * Copyright (c) 2018 Yoshinori Sato
5645194c7SYoshinori Sato  *
6645194c7SYoshinori Sato  * SPDX-License-Identifier: GPL-2.0-or-later
7645194c7SYoshinori Sato  */
8645194c7SYoshinori Sato 
9645194c7SYoshinori Sato #ifndef HW_CHAR_RENESAS_SCI_H
10645194c7SYoshinori Sato #define HW_CHAR_RENESAS_SCI_H
11645194c7SYoshinori Sato 
12645194c7SYoshinori Sato #include "chardev/char-fe.h"
13645194c7SYoshinori Sato #include "hw/sysbus.h"
14db1015e9SEduardo Habkost #include "qom/object.h"
15645194c7SYoshinori Sato 
16645194c7SYoshinori Sato #define TYPE_RENESAS_SCI "renesas-sci"
17db1015e9SEduardo Habkost typedef struct RSCIState RSCIState;
18*8110fa1dSEduardo Habkost DECLARE_INSTANCE_CHECKER(RSCIState, RSCI,
19*8110fa1dSEduardo Habkost                          TYPE_RENESAS_SCI)
20645194c7SYoshinori Sato 
21645194c7SYoshinori Sato enum {
22645194c7SYoshinori Sato     ERI = 0,
23645194c7SYoshinori Sato     RXI = 1,
24645194c7SYoshinori Sato     TXI = 2,
25645194c7SYoshinori Sato     TEI = 3,
26645194c7SYoshinori Sato     SCI_NR_IRQ = 4
27645194c7SYoshinori Sato };
28645194c7SYoshinori Sato 
29db1015e9SEduardo Habkost struct RSCIState {
30645194c7SYoshinori Sato     /*< private >*/
31645194c7SYoshinori Sato     SysBusDevice parent_obj;
32645194c7SYoshinori Sato     /*< public >*/
33645194c7SYoshinori Sato 
34645194c7SYoshinori Sato     MemoryRegion memory;
35645194c7SYoshinori Sato     QEMUTimer timer;
36645194c7SYoshinori Sato     CharBackend chr;
37645194c7SYoshinori Sato     qemu_irq irq[SCI_NR_IRQ];
38645194c7SYoshinori Sato 
39645194c7SYoshinori Sato     uint8_t smr;
40645194c7SYoshinori Sato     uint8_t brr;
41645194c7SYoshinori Sato     uint8_t scr;
42645194c7SYoshinori Sato     uint8_t tdr;
43645194c7SYoshinori Sato     uint8_t ssr;
44645194c7SYoshinori Sato     uint8_t rdr;
45645194c7SYoshinori Sato     uint8_t scmr;
46645194c7SYoshinori Sato     uint8_t semr;
47645194c7SYoshinori Sato 
48645194c7SYoshinori Sato     uint8_t read_ssr;
49645194c7SYoshinori Sato     int64_t trtime;
50645194c7SYoshinori Sato     int64_t rx_next;
51645194c7SYoshinori Sato     uint64_t input_freq;
52db1015e9SEduardo Habkost };
53645194c7SYoshinori Sato 
54645194c7SYoshinori Sato #endif
55