1*6717f587SGrégory ESTRADE /* 2*6717f587SGrégory ESTRADE * Raspberry Pi emulation (c) 2012 Gregory Estrade 3*6717f587SGrégory ESTRADE * This code is licensed under the GNU GPLv2 and later. 4*6717f587SGrégory ESTRADE */ 5*6717f587SGrégory ESTRADE 6*6717f587SGrégory ESTRADE #ifndef BCM2835_DMA_H 7*6717f587SGrégory ESTRADE #define BCM2835_DMA_H 8*6717f587SGrégory ESTRADE 9*6717f587SGrégory ESTRADE #include "qemu-common.h" 10*6717f587SGrégory ESTRADE #include "exec/address-spaces.h" 11*6717f587SGrégory ESTRADE #include "hw/sysbus.h" 12*6717f587SGrégory ESTRADE 13*6717f587SGrégory ESTRADE typedef struct { 14*6717f587SGrégory ESTRADE uint32_t cs; 15*6717f587SGrégory ESTRADE uint32_t conblk_ad; 16*6717f587SGrégory ESTRADE uint32_t ti; 17*6717f587SGrégory ESTRADE uint32_t source_ad; 18*6717f587SGrégory ESTRADE uint32_t dest_ad; 19*6717f587SGrégory ESTRADE uint32_t txfr_len; 20*6717f587SGrégory ESTRADE uint32_t stride; 21*6717f587SGrégory ESTRADE uint32_t nextconbk; 22*6717f587SGrégory ESTRADE uint32_t debug; 23*6717f587SGrégory ESTRADE 24*6717f587SGrégory ESTRADE qemu_irq irq; 25*6717f587SGrégory ESTRADE } BCM2835DMAChan; 26*6717f587SGrégory ESTRADE 27*6717f587SGrégory ESTRADE #define TYPE_BCM2835_DMA "bcm2835-dma" 28*6717f587SGrégory ESTRADE #define BCM2835_DMA(obj) \ 29*6717f587SGrégory ESTRADE OBJECT_CHECK(BCM2835DMAState, (obj), TYPE_BCM2835_DMA) 30*6717f587SGrégory ESTRADE 31*6717f587SGrégory ESTRADE #define BCM2835_DMA_NCHANS 16 32*6717f587SGrégory ESTRADE 33*6717f587SGrégory ESTRADE typedef struct { 34*6717f587SGrégory ESTRADE /*< private >*/ 35*6717f587SGrégory ESTRADE SysBusDevice busdev; 36*6717f587SGrégory ESTRADE /*< public >*/ 37*6717f587SGrégory ESTRADE 38*6717f587SGrégory ESTRADE MemoryRegion iomem0, iomem15; 39*6717f587SGrégory ESTRADE MemoryRegion *dma_mr; 40*6717f587SGrégory ESTRADE AddressSpace dma_as; 41*6717f587SGrégory ESTRADE 42*6717f587SGrégory ESTRADE BCM2835DMAChan chan[BCM2835_DMA_NCHANS]; 43*6717f587SGrégory ESTRADE uint32_t int_status; 44*6717f587SGrégory ESTRADE uint32_t enable; 45*6717f587SGrégory ESTRADE } BCM2835DMAState; 46*6717f587SGrégory ESTRADE 47*6717f587SGrégory ESTRADE #endif 48