| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* | |
| * Driver for the Synopsys DesignWare DMA Controller | |
| * | |
| * Copyright (C) 2007 Atmel Corporation | |
| * Copyright (C) 2010-2011 ST Microelectronics | |
| * Copyright (C) 2014 Intel Corporation | |
| */ | |
| #ifndef _DMA_DW_H | |
| #define _DMA_DW_H | |
| #include <linux/clk.h> | |
| #include <linux/device.h> | |
| #include <linux/dmaengine.h> | |
| #include <linux/platform_data/dma-dw.h> | |
| struct dw_dma; | |
| /** | |
| * struct dw_dma_chip - representation of DesignWare DMA controller hardware | |
| * @dev: struct device of the DMA controller | |
| * @id: instance ID | |
| * @irq: irq line | |
| * @regs: memory mapped I/O space | |
| * @clk: hclk clock | |
| * @dw: struct dw_dma that is filed by dw_dma_probe() | |
| * @pdata: pointer to platform data | |
| */ | |
| struct dw_dma_chip { | |
| struct device *dev; | |
| int id; | |
| int irq; | |
| void __iomem *regs; | |
| struct clk *clk; | |
| struct dw_dma *dw; | |
| const struct dw_dma_platform_data *pdata; | |
| }; | |
| /* Export to the platform drivers */ | |
| #if IS_ENABLED(CONFIG_DW_DMAC_CORE) | |
| int dw_dma_probe(struct dw_dma_chip *chip); | |
| int dw_dma_remove(struct dw_dma_chip *chip); | |
| int idma32_dma_probe(struct dw_dma_chip *chip); | |
| int idma32_dma_remove(struct dw_dma_chip *chip); | |
| #else | |
| static inline int dw_dma_probe(struct dw_dma_chip *chip) { return -ENODEV; } | |
| static inline int dw_dma_remove(struct dw_dma_chip *chip) { return 0; } | |
| static inline int idma32_dma_probe(struct dw_dma_chip *chip) { return -ENODEV; } | |
| static inline int idma32_dma_remove(struct dw_dma_chip *chip) { return 0; } | |
| #endif /* CONFIG_DW_DMAC_CORE */ | |
| #endif /* _DMA_DW_H */ |