1142593c9SAntony Pavlov /* 2142593c9SAntony Pavlov * Canon DIGIC UART block declarations. 3142593c9SAntony Pavlov * 4142593c9SAntony Pavlov * Copyright (C) 2013 Antony Pavlov <antonynpavlov@gmail.com> 5142593c9SAntony Pavlov * 6142593c9SAntony Pavlov * This program is free software; you can redistribute it and/or modify 7142593c9SAntony Pavlov * it under the terms of the GNU General Public License as published by 8142593c9SAntony Pavlov * the Free Software Foundation; either version 2 of the License, or 9142593c9SAntony Pavlov * (at your option) any later version. 10142593c9SAntony Pavlov * 11142593c9SAntony Pavlov * This program is distributed in the hope that it will be useful, 12142593c9SAntony Pavlov * but WITHOUT ANY WARRANTY; without even the implied warranty of 13142593c9SAntony Pavlov * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14142593c9SAntony Pavlov * GNU General Public License for more details. 15142593c9SAntony Pavlov * 16142593c9SAntony Pavlov */ 17142593c9SAntony Pavlov 18142593c9SAntony Pavlov #ifndef HW_CHAR_DIGIC_UART_H 19142593c9SAntony Pavlov #define HW_CHAR_DIGIC_UART_H 20142593c9SAntony Pavlov 21142593c9SAntony Pavlov #include "hw/sysbus.h" 224d43a603SMarc-André Lureau #include "chardev/char-fe.h" 23*db1015e9SEduardo Habkost #include "qom/object.h" 24142593c9SAntony Pavlov 25142593c9SAntony Pavlov #define TYPE_DIGIC_UART "digic-uart" 26*db1015e9SEduardo Habkost typedef struct DigicUartState DigicUartState; 27142593c9SAntony Pavlov #define DIGIC_UART(obj) \ 28142593c9SAntony Pavlov OBJECT_CHECK(DigicUartState, (obj), TYPE_DIGIC_UART) 29142593c9SAntony Pavlov 30142593c9SAntony Pavlov enum { 31142593c9SAntony Pavlov R_TX = 0x00, 32142593c9SAntony Pavlov R_RX, 33142593c9SAntony Pavlov R_ST = (0x14 >> 2), 34142593c9SAntony Pavlov R_MAX 35142593c9SAntony Pavlov }; 36142593c9SAntony Pavlov 37*db1015e9SEduardo Habkost struct DigicUartState { 38142593c9SAntony Pavlov /*< private >*/ 39142593c9SAntony Pavlov SysBusDevice parent_obj; 40142593c9SAntony Pavlov /*< public >*/ 41142593c9SAntony Pavlov 42142593c9SAntony Pavlov MemoryRegion regs_region; 43becdfa00SMarc-André Lureau CharBackend chr; 44142593c9SAntony Pavlov 45142593c9SAntony Pavlov uint32_t reg_rx; 46142593c9SAntony Pavlov uint32_t reg_st; 47*db1015e9SEduardo Habkost }; 48142593c9SAntony Pavlov 49142593c9SAntony Pavlov #endif /* HW_CHAR_DIGIC_UART_H */ 50