xref: /openbmc/qemu/include/hw/char/renesas_sci.h (revision db1015e92e04835c9eb50c29625fe566d1202dbd)
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"
14*db1015e9SEduardo Habkost #include "qom/object.h"
15645194c7SYoshinori Sato 
16645194c7SYoshinori Sato #define TYPE_RENESAS_SCI "renesas-sci"
17*db1015e9SEduardo Habkost typedef struct RSCIState RSCIState;
18645194c7SYoshinori Sato #define RSCI(obj) OBJECT_CHECK(RSCIState, (obj), TYPE_RENESAS_SCI)
19645194c7SYoshinori Sato 
20645194c7SYoshinori Sato enum {
21645194c7SYoshinori Sato     ERI = 0,
22645194c7SYoshinori Sato     RXI = 1,
23645194c7SYoshinori Sato     TXI = 2,
24645194c7SYoshinori Sato     TEI = 3,
25645194c7SYoshinori Sato     SCI_NR_IRQ = 4
26645194c7SYoshinori Sato };
27645194c7SYoshinori Sato 
28*db1015e9SEduardo Habkost struct RSCIState {
29645194c7SYoshinori Sato     /*< private >*/
30645194c7SYoshinori Sato     SysBusDevice parent_obj;
31645194c7SYoshinori Sato     /*< public >*/
32645194c7SYoshinori Sato 
33645194c7SYoshinori Sato     MemoryRegion memory;
34645194c7SYoshinori Sato     QEMUTimer timer;
35645194c7SYoshinori Sato     CharBackend chr;
36645194c7SYoshinori Sato     qemu_irq irq[SCI_NR_IRQ];
37645194c7SYoshinori Sato 
38645194c7SYoshinori Sato     uint8_t smr;
39645194c7SYoshinori Sato     uint8_t brr;
40645194c7SYoshinori Sato     uint8_t scr;
41645194c7SYoshinori Sato     uint8_t tdr;
42645194c7SYoshinori Sato     uint8_t ssr;
43645194c7SYoshinori Sato     uint8_t rdr;
44645194c7SYoshinori Sato     uint8_t scmr;
45645194c7SYoshinori Sato     uint8_t semr;
46645194c7SYoshinori Sato 
47645194c7SYoshinori Sato     uint8_t read_ssr;
48645194c7SYoshinori Sato     int64_t trtime;
49645194c7SYoshinori Sato     int64_t rx_next;
50645194c7SYoshinori Sato     uint64_t input_freq;
51*db1015e9SEduardo Habkost };
52645194c7SYoshinori Sato 
53645194c7SYoshinori Sato #endif
54