xref: /openbmc/qemu/include/hw/char/renesas_sci.h (revision 645194c7aa8ff501cfdab864c9f5cdf220c3af76)
1*645194c7SYoshinori Sato /*
2*645194c7SYoshinori Sato  * Renesas Serial Communication Interface
3*645194c7SYoshinori Sato  *
4*645194c7SYoshinori Sato  * Copyright (c) 2018 Yoshinori Sato
5*645194c7SYoshinori Sato  *
6*645194c7SYoshinori Sato  * SPDX-License-Identifier: GPL-2.0-or-later
7*645194c7SYoshinori Sato  */
8*645194c7SYoshinori Sato 
9*645194c7SYoshinori Sato #ifndef HW_CHAR_RENESAS_SCI_H
10*645194c7SYoshinori Sato #define HW_CHAR_RENESAS_SCI_H
11*645194c7SYoshinori Sato 
12*645194c7SYoshinori Sato #include "chardev/char-fe.h"
13*645194c7SYoshinori Sato #include "hw/sysbus.h"
14*645194c7SYoshinori Sato 
15*645194c7SYoshinori Sato #define TYPE_RENESAS_SCI "renesas-sci"
16*645194c7SYoshinori Sato #define RSCI(obj) OBJECT_CHECK(RSCIState, (obj), TYPE_RENESAS_SCI)
17*645194c7SYoshinori Sato 
18*645194c7SYoshinori Sato enum {
19*645194c7SYoshinori Sato     ERI = 0,
20*645194c7SYoshinori Sato     RXI = 1,
21*645194c7SYoshinori Sato     TXI = 2,
22*645194c7SYoshinori Sato     TEI = 3,
23*645194c7SYoshinori Sato     SCI_NR_IRQ = 4
24*645194c7SYoshinori Sato };
25*645194c7SYoshinori Sato 
26*645194c7SYoshinori Sato typedef struct {
27*645194c7SYoshinori Sato     /*< private >*/
28*645194c7SYoshinori Sato     SysBusDevice parent_obj;
29*645194c7SYoshinori Sato     /*< public >*/
30*645194c7SYoshinori Sato 
31*645194c7SYoshinori Sato     MemoryRegion memory;
32*645194c7SYoshinori Sato     QEMUTimer timer;
33*645194c7SYoshinori Sato     CharBackend chr;
34*645194c7SYoshinori Sato     qemu_irq irq[SCI_NR_IRQ];
35*645194c7SYoshinori Sato 
36*645194c7SYoshinori Sato     uint8_t smr;
37*645194c7SYoshinori Sato     uint8_t brr;
38*645194c7SYoshinori Sato     uint8_t scr;
39*645194c7SYoshinori Sato     uint8_t tdr;
40*645194c7SYoshinori Sato     uint8_t ssr;
41*645194c7SYoshinori Sato     uint8_t rdr;
42*645194c7SYoshinori Sato     uint8_t scmr;
43*645194c7SYoshinori Sato     uint8_t semr;
44*645194c7SYoshinori Sato 
45*645194c7SYoshinori Sato     uint8_t read_ssr;
46*645194c7SYoshinori Sato     int64_t trtime;
47*645194c7SYoshinori Sato     int64_t rx_next;
48*645194c7SYoshinori Sato     uint64_t input_freq;
49*645194c7SYoshinori Sato } RSCIState;
50*645194c7SYoshinori Sato 
51*645194c7SYoshinori Sato #endif
52