xref: /qemu/include/hw/dma/bcm2835_dma.h (revision db1015e92e04835c9eb50c29625fe566d1202dbd)
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"
12*db1015e9SEduardo 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*db1015e9SEduardo Habkost typedef struct BCM2835DMAState BCM2835DMAState;
306717f587SGrégory ESTRADE #define BCM2835_DMA(obj) \
316717f587SGrégory ESTRADE         OBJECT_CHECK(BCM2835DMAState, (obj), TYPE_BCM2835_DMA)
326717f587SGrégory ESTRADE 
336717f587SGrégory ESTRADE #define BCM2835_DMA_NCHANS 16
346717f587SGrégory ESTRADE 
35*db1015e9SEduardo Habkost struct BCM2835DMAState {
366717f587SGrégory ESTRADE     /*< private >*/
376717f587SGrégory ESTRADE     SysBusDevice busdev;
386717f587SGrégory ESTRADE     /*< public >*/
396717f587SGrégory ESTRADE 
406717f587SGrégory ESTRADE     MemoryRegion iomem0, iomem15;
416717f587SGrégory ESTRADE     MemoryRegion *dma_mr;
426717f587SGrégory ESTRADE     AddressSpace dma_as;
436717f587SGrégory ESTRADE 
446717f587SGrégory ESTRADE     BCM2835DMAChan chan[BCM2835_DMA_NCHANS];
456717f587SGrégory ESTRADE     uint32_t int_status;
466717f587SGrégory ESTRADE     uint32_t enable;
47*db1015e9SEduardo Habkost };
486717f587SGrégory ESTRADE 
496717f587SGrégory ESTRADE #endif
50