1/* 2 * ARM CMSDK APB UART emulation 3 * 4 * Copyright (c) 2017 Linaro Limited 5 * Written by Peter Maydell 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 or 9 * (at your option) any later version. 10 */ 11 12#ifndef CMSDK_APB_UART_H 13#define CMSDK_APB_UART_H 14 15#include "hw/sysbus.h" 16#include "chardev/char-fe.h" 17#include "qom/object.h" 18 19#define TYPE_CMSDK_APB_UART "cmsdk-apb-uart" 20OBJECT_DECLARE_SIMPLE_TYPE(CMSDKAPBUART, CMSDK_APB_UART) 21 22struct CMSDKAPBUART { 23 /*< private >*/ 24 SysBusDevice parent_obj; 25 26 /*< public >*/ 27 MemoryRegion iomem; 28 CharBackend chr; 29 qemu_irq txint; 30 qemu_irq rxint; 31 qemu_irq txovrint; 32 qemu_irq rxovrint; 33 qemu_irq uartint; 34 guint watch_tag; 35 uint32_t pclk_frq; 36 37 uint32_t state; 38 uint32_t ctrl; 39 uint32_t intstatus; 40 uint32_t bauddiv; 41 /* This UART has no FIFO, only a 1-character buffer for each of Tx and Rx */ 42 uint8_t txbuf; 43 uint8_t rxbuf; 44}; 45 46#endif 47