/* * 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