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 * @clk: hclk clock 25 * @dw: struct dw_dma that is filed by dw_dma_probe() 26 */ 27 struct dw_dma_chip { 28 struct device *dev; 29 int irq; 30 void __iomem *regs; 31 struct clk *clk; 32 struct dw_dma *dw; 33 }; 34 35 /* Export to the platform drivers */ 36 int dw_dma_probe(struct dw_dma_chip *chip, struct dw_dma_platform_data *pdata); 37 int dw_dma_remove(struct dw_dma_chip *chip); 38 39 void dw_dma_shutdown(struct dw_dma_chip *chip); 40 41 #ifdef CONFIG_PM_SLEEP 42 43 int dw_dma_suspend(struct dw_dma_chip *chip); 44 int dw_dma_resume(struct dw_dma_chip *chip); 45 46 #endif /* CONFIG_PM_SLEEP */ 47 48 extern bool dw_dma_filter(struct dma_chan *chan, void *param); 49 50 #endif /* _DW_DMAC_INTERNAL_H */ 51