1 /*
2  * SPDX-License-Identifer: GPL-2.0-or-later
3  *
4  * Goldfish TTY
5  *
6  * (c) 2020 Laurent Vivier <laurent@vivier.eu>
7  *
8  */
9 
10 #ifndef HW_CHAR_GOLDFISH_TTY_H
11 #define HW_CHAR_GOLDFISH_TTY_H
12 
13 #include "qemu/fifo8.h"
14 #include "chardev/char-fe.h"
15 
16 #define TYPE_GOLDFISH_TTY "goldfish_tty"
17 OBJECT_DECLARE_SIMPLE_TYPE(GoldfishTTYState, GOLDFISH_TTY)
18 
19 #define GOLFISH_TTY_BUFFER_SIZE 128
20 
21 struct GoldfishTTYState {
22     SysBusDevice parent_obj;
23 
24     MemoryRegion iomem;
25     qemu_irq irq;
26     CharBackend chr;
27 
28     uint32_t data_len;
29     uint64_t data_ptr;
30     bool int_enabled;
31 
32     Fifo8 rx_fifo;
33 };
34 
35 #endif
36