| /* | 
 |  * ARM CMSDK APB UART emulation | 
 |  * | 
 |  * Copyright (c) 2017 Linaro Limited | 
 |  * Written by Peter Maydell | 
 |  * | 
 |  *  This program is free software; you can redistribute it and/or modify | 
 |  *  it under the terms of the GNU General Public License version 2 or | 
 |  *  (at your option) any later version. | 
 |  */ | 
 |  | 
 | #ifndef CMSDK_APB_UART_H | 
 | #define CMSDK_APB_UART_H | 
 |  | 
 | #include "hw/sysbus.h" | 
 | #include "chardev/char-fe.h" | 
 | #include "qom/object.h" | 
 |  | 
 | #define TYPE_CMSDK_APB_UART "cmsdk-apb-uart" | 
 | OBJECT_DECLARE_SIMPLE_TYPE(CMSDKAPBUART, CMSDK_APB_UART) | 
 |  | 
 | struct CMSDKAPBUART { | 
 |     /*< private >*/ | 
 |     SysBusDevice parent_obj; | 
 |  | 
 |     /*< public >*/ | 
 |     MemoryRegion iomem; | 
 |     CharBackend chr; | 
 |     qemu_irq txint; | 
 |     qemu_irq rxint; | 
 |     qemu_irq txovrint; | 
 |     qemu_irq rxovrint; | 
 |     qemu_irq uartint; | 
 |     guint watch_tag; | 
 |     uint32_t pclk_frq; | 
 |  | 
 |     uint32_t state; | 
 |     uint32_t ctrl; | 
 |     uint32_t intstatus; | 
 |     uint32_t bauddiv; | 
 |     /* This UART has no FIFO, only a 1-character buffer for each of Tx and Rx */ | 
 |     uint8_t txbuf; | 
 |     uint8_t rxbuf; | 
 | }; | 
 |  | 
 | #endif |