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