1 /* 2 * Driver for the Synopsys DesignWare DMA Controller 3 * 4 * Copyright (C) 2013 Intel Corporation 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 */ 10 11 #ifndef _DW_DMAC_INTERNAL_H 12 #define _DW_DMAC_INTERNAL_H 13 14 #include <linux/device.h> 15 #include <linux/platform_data/dma-dw.h> 16 17 #include "regs.h" 18 19 /** 20 * struct dw_dma_chip - representation of DesignWare DMA controller hardware 21 * @dev: struct device of the DMA controller 22 * @irq: irq line 23 * @regs: memory mapped I/O space 24 * @dw: struct dw_dma that is filed by dw_dma_probe() 25 */ 26 struct dw_dma_chip { 27 struct device *dev; 28 int irq; 29 void __iomem *regs; 30 struct dw_dma *dw; 31 }; 32 33 /* Export to the platform drivers */ 34 int dw_dma_probe(struct dw_dma_chip *chip, struct dw_dma_platform_data *pdata); 35 int dw_dma_remove(struct dw_dma_chip *chip); 36 37 void dw_dma_shutdown(struct dw_dma_chip *chip); 38 39 #ifdef CONFIG_PM_SLEEP 40 41 int dw_dma_suspend(struct dw_dma_chip *chip); 42 int dw_dma_resume(struct dw_dma_chip *chip); 43 44 #endif /* CONFIG_PM_SLEEP */ 45 46 extern bool dw_dma_filter(struct dma_chan *chan, void *param); 47 48 #endif /* _DW_DMAC_INTERNAL_H */ 49