summaryrefslogtreecommitdiff
path: root/include/linux/dma/edma.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/dma/edma.h')
-rw-r--r--include/linux/dma/edma.h31
1 files changed, 18 insertions, 13 deletions
diff --git a/include/linux/dma/edma.h b/include/linux/dma/edma.h
index 3080747689f6..1fafd5b0e315 100644
--- a/include/linux/dma/edma.h
+++ b/include/linux/dma/edma.h
@@ -27,7 +27,7 @@ struct dw_edma_region {
};
/**
- * struct dw_edma_core_ops - platform-specific eDMA methods
+ * struct dw_edma_plat_ops - platform-specific eDMA methods
* @irq_vector: Get IRQ number of the passed eDMA channel. Note the
* method accepts the channel id in the end-to-end
* numbering with the eDMA write channels being placed
@@ -63,19 +63,19 @@ enum dw_edma_chip_flags {
/**
* struct dw_edma_chip - representation of DesignWare eDMA controller hardware
* @dev: struct device of the eDMA controller
- * @id: instance ID
* @nr_irqs: total number of DMA IRQs
- * @ops DMA channel to IRQ number mapping
- * @flags dw_edma_chip_flags
- * @reg_base DMA register base address
- * @ll_wr_cnt DMA write link list count
- * @ll_rd_cnt DMA read link list count
- * @rg_region DMA register region
- * @ll_region_wr DMA descriptor link list memory for write channel
- * @ll_region_rd DMA descriptor link list memory for read channel
- * @dt_region_wr DMA data memory for write channel
- * @dt_region_rd DMA data memory for read channel
- * @mf DMA register map format
+ * @ops: DMA channel to IRQ number mapping
+ * @flags: dw_edma_chip_flags
+ * @reg_base: DMA register base address
+ * @ll_wr_cnt: DMA write link list count
+ * @ll_rd_cnt: DMA read link list count
+ * @ll_region_wr: DMA descriptor link list memory for write channel
+ * @ll_region_rd: DMA descriptor link list memory for read channel
+ * @dt_region_wr: DMA data memory for write channel
+ * @dt_region_rd: DMA data memory for read channel
+ * @db_irq: Virtual IRQ dedicated to interrupt emulation
+ * @db_offset: Offset from DMA register base
+ * @mf: DMA register map format
* @dw: struct dw_edma that is filled by dw_edma_probe()
*/
struct dw_edma_chip {
@@ -96,9 +96,14 @@ struct dw_edma_chip {
struct dw_edma_region dt_region_wr[EDMA_MAX_WR_CH];
struct dw_edma_region dt_region_rd[EDMA_MAX_RD_CH];
+ /* interrupt emulation */
+ int db_irq;
+ resource_size_t db_offset;
+
enum dw_edma_map_format mf;
struct dw_edma *dw;
+ bool cfg_non_ll;
};
/* Export to the platform drivers */