| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (c) 2018-2019 Synopsys, Inc. and/or its affiliates. |
| * Synopsys DesignWare eDMA core driver |
| * |
| * Author: Gustavo Pimentel <gustavo.pimentel@synopsys.com> |
| */ |
| |
| #ifndef _DW_EDMA_H |
| #define _DW_EDMA_H |
| |
| #include <linux/device.h> |
| #include <linux/dmaengine.h> |
| |
| struct dw_edma; |
| |
| /** |
| * struct dw_edma_chip - representation of DesignWare eDMA controller hardware |
| * @dev: struct device of the eDMA controller |
| * @id: instance ID |
| * @irq: irq line |
| * @dw: struct dw_edma that is filed by dw_edma_probe() |
| */ |
| struct dw_edma_chip { |
| struct device *dev; |
| int id; |
| int irq; |
| struct dw_edma *dw; |
| }; |
| |
| /* Export to the platform drivers */ |
| #if IS_ENABLED(CONFIG_DW_EDMA) |
| int dw_edma_probe(struct dw_edma_chip *chip); |
| int dw_edma_remove(struct dw_edma_chip *chip); |
| #else |
| static inline int dw_edma_probe(struct dw_edma_chip *chip) |
| { |
| return -ENODEV; |
| } |
| |
| static inline int dw_edma_remove(struct dw_edma_chip *chip) |
| { |
| return 0; |
| } |
| #endif /* CONFIG_DW_EDMA */ |
| |
| #endif /* _DW_EDMA_H */ |