174fcbd22SGuenter Roeck /* 274fcbd22SGuenter Roeck * Device model for Zynq ADC controller 374fcbd22SGuenter Roeck * 474fcbd22SGuenter Roeck * Copyright (c) 2015 Guenter Roeck <linux@roeck-us.net> 574fcbd22SGuenter Roeck * 674fcbd22SGuenter Roeck * This program is free software; you can redistribute it and/or 774fcbd22SGuenter Roeck * modify it under the terms of the GNU General Public License 874fcbd22SGuenter Roeck * as published by the Free Software Foundation; either version 974fcbd22SGuenter Roeck * 2 of the License, or (at your option) any later version. 1074fcbd22SGuenter Roeck * 1174fcbd22SGuenter Roeck * You should have received a copy of the GNU General Public License along 1274fcbd22SGuenter Roeck * with this program; if not, see <http://www.gnu.org/licenses/>. 1374fcbd22SGuenter Roeck */ 1474fcbd22SGuenter Roeck 1574fcbd22SGuenter Roeck #ifndef ZYNQ_XADC_H 1674fcbd22SGuenter Roeck #define ZYNQ_XADC_H 1774fcbd22SGuenter Roeck 1874fcbd22SGuenter Roeck #include "hw/sysbus.h" 19db1015e9SEduardo Habkost #include "qom/object.h" 2074fcbd22SGuenter Roeck 2174fcbd22SGuenter Roeck #define ZYNQ_XADC_MMIO_SIZE 0x0020 2274fcbd22SGuenter Roeck #define ZYNQ_XADC_NUM_IO_REGS (ZYNQ_XADC_MMIO_SIZE / 4) 2374fcbd22SGuenter Roeck #define ZYNQ_XADC_NUM_ADC_REGS 128 2474fcbd22SGuenter Roeck #define ZYNQ_XADC_FIFO_DEPTH 15 2574fcbd22SGuenter Roeck 26e178113fSMarkus Armbruster #define TYPE_ZYNQ_XADC "xlnx-zynq-xadc" 278063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(ZynqXADCState, ZYNQ_XADC) 2874fcbd22SGuenter Roeck 29db1015e9SEduardo Habkost struct ZynqXADCState { 3074fcbd22SGuenter Roeck /*< private >*/ 3174fcbd22SGuenter Roeck SysBusDevice parent_obj; 3274fcbd22SGuenter Roeck 3374fcbd22SGuenter Roeck /*< public >*/ 3474fcbd22SGuenter Roeck MemoryRegion iomem; 3574fcbd22SGuenter Roeck 3674fcbd22SGuenter Roeck uint32_t regs[ZYNQ_XADC_NUM_IO_REGS]; 3774fcbd22SGuenter Roeck uint16_t xadc_regs[ZYNQ_XADC_NUM_ADC_REGS]; 3874fcbd22SGuenter Roeck uint16_t xadc_read_reg_previous; 3974fcbd22SGuenter Roeck uint16_t xadc_dfifo[ZYNQ_XADC_FIFO_DEPTH]; 4074fcbd22SGuenter Roeck uint16_t xadc_dfifo_entries; 4174fcbd22SGuenter Roeck 42*6e76d35fSPhilippe Mathieu-Daudé qemu_irq irq; 43db1015e9SEduardo Habkost }; 4474fcbd22SGuenter Roeck 4574fcbd22SGuenter Roeck #endif /* ZYNQ_XADC_H */ 46