16717f587SGrégory ESTRADE /* 26717f587SGrégory ESTRADE * Raspberry Pi emulation (c) 2012 Gregory Estrade 36111a0c0SPhilippe Mathieu-Daudé * 46111a0c0SPhilippe Mathieu-Daudé * This work is licensed under the terms of the GNU GPL, version 2 or later. 56111a0c0SPhilippe Mathieu-Daudé * See the COPYING file in the top-level directory. 66717f587SGrégory ESTRADE */ 76717f587SGrégory ESTRADE 86717f587SGrégory ESTRADE #ifndef BCM2835_DMA_H 96717f587SGrégory ESTRADE #define BCM2835_DMA_H 106717f587SGrégory ESTRADE 116717f587SGrégory ESTRADE #include "hw/sysbus.h" 12db1015e9SEduardo Habkost #include "qom/object.h" 136717f587SGrégory ESTRADE 146717f587SGrégory ESTRADE typedef struct { 156717f587SGrégory ESTRADE uint32_t cs; 166717f587SGrégory ESTRADE uint32_t conblk_ad; 176717f587SGrégory ESTRADE uint32_t ti; 186717f587SGrégory ESTRADE uint32_t source_ad; 196717f587SGrégory ESTRADE uint32_t dest_ad; 206717f587SGrégory ESTRADE uint32_t txfr_len; 216717f587SGrégory ESTRADE uint32_t stride; 226717f587SGrégory ESTRADE uint32_t nextconbk; 236717f587SGrégory ESTRADE uint32_t debug; 246717f587SGrégory ESTRADE 256717f587SGrégory ESTRADE qemu_irq irq; 266717f587SGrégory ESTRADE } BCM2835DMAChan; 276717f587SGrégory ESTRADE 286717f587SGrégory ESTRADE #define TYPE_BCM2835_DMA "bcm2835-dma" 29*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(BCM2835DMAState, BCM2835_DMA) 306717f587SGrégory ESTRADE 316717f587SGrégory ESTRADE #define BCM2835_DMA_NCHANS 16 326717f587SGrégory ESTRADE 33db1015e9SEduardo Habkost struct BCM2835DMAState { 346717f587SGrégory ESTRADE /*< private >*/ 356717f587SGrégory ESTRADE SysBusDevice busdev; 366717f587SGrégory ESTRADE /*< public >*/ 376717f587SGrégory ESTRADE 386717f587SGrégory ESTRADE MemoryRegion iomem0, iomem15; 396717f587SGrégory ESTRADE MemoryRegion *dma_mr; 406717f587SGrégory ESTRADE AddressSpace dma_as; 416717f587SGrégory ESTRADE 426717f587SGrégory ESTRADE BCM2835DMAChan chan[BCM2835_DMA_NCHANS]; 436717f587SGrégory ESTRADE uint32_t int_status; 446717f587SGrégory ESTRADE uint32_t enable; 45db1015e9SEduardo Habkost }; 466717f587SGrégory ESTRADE 476717f587SGrégory ESTRADE #endif 48