xref: /openbmc/qemu/include/hw/char/cmsdk-apb-uart.h (revision 4ab694b9)
1775df84eSPeter Maydell /*
2775df84eSPeter Maydell  * ARM CMSDK APB UART emulation
3775df84eSPeter Maydell  *
4775df84eSPeter Maydell  * Copyright (c) 2017 Linaro Limited
5775df84eSPeter Maydell  * Written by Peter Maydell
6775df84eSPeter Maydell  *
7775df84eSPeter Maydell  *  This program is free software; you can redistribute it and/or modify
8775df84eSPeter Maydell  *  it under the terms of the GNU General Public License version 2 or
9775df84eSPeter Maydell  *  (at your option) any later version.
10775df84eSPeter Maydell  */
11775df84eSPeter Maydell 
12775df84eSPeter Maydell #ifndef CMSDK_APB_UART_H
13775df84eSPeter Maydell #define CMSDK_APB_UART_H
14775df84eSPeter Maydell 
15775df84eSPeter Maydell #include "hw/sysbus.h"
16775df84eSPeter Maydell #include "chardev/char-fe.h"
17db1015e9SEduardo Habkost #include "qom/object.h"
18775df84eSPeter Maydell 
19775df84eSPeter Maydell #define TYPE_CMSDK_APB_UART "cmsdk-apb-uart"
20*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(CMSDKAPBUART, CMSDK_APB_UART)
21775df84eSPeter Maydell 
22db1015e9SEduardo Habkost struct CMSDKAPBUART {
23775df84eSPeter Maydell     /*< private >*/
24775df84eSPeter Maydell     SysBusDevice parent_obj;
25775df84eSPeter Maydell 
26775df84eSPeter Maydell     /*< public >*/
27775df84eSPeter Maydell     MemoryRegion iomem;
28775df84eSPeter Maydell     CharBackend chr;
29775df84eSPeter Maydell     qemu_irq txint;
30775df84eSPeter Maydell     qemu_irq rxint;
31775df84eSPeter Maydell     qemu_irq txovrint;
32775df84eSPeter Maydell     qemu_irq rxovrint;
33775df84eSPeter Maydell     qemu_irq uartint;
34775df84eSPeter Maydell     guint watch_tag;
35775df84eSPeter Maydell     uint32_t pclk_frq;
36775df84eSPeter Maydell 
37775df84eSPeter Maydell     uint32_t state;
38775df84eSPeter Maydell     uint32_t ctrl;
39775df84eSPeter Maydell     uint32_t intstatus;
40775df84eSPeter Maydell     uint32_t bauddiv;
41775df84eSPeter Maydell     /* This UART has no FIFO, only a 1-character buffer for each of Tx and Rx */
42775df84eSPeter Maydell     uint8_t txbuf;
43775df84eSPeter Maydell     uint8_t rxbuf;
44db1015e9SEduardo Habkost };
45775df84eSPeter Maydell 
46775df84eSPeter Maydell #endif
47