xref: /openbmc/qemu/include/hw/dma/bcm2835_dma.h (revision 4dad0a9aa818698e0735c8352bf7925a1660df6f)
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