0001
0002
0003
0004
0005
0006
0007
0008 #ifndef _DMA_HSU_H
0009 #define _DMA_HSU_H
0010
0011 #include <linux/device.h>
0012 #include <linux/interrupt.h>
0013
0014 #include <linux/platform_data/dma-hsu.h>
0015
0016 struct hsu_dma;
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 struct hsu_dma_chip {
0029 struct device *dev;
0030 int irq;
0031 void __iomem *regs;
0032 unsigned int length;
0033 unsigned int offset;
0034 struct hsu_dma *hsu;
0035 };
0036
0037 #if IS_ENABLED(CONFIG_HSU_DMA)
0038
0039 int hsu_dma_get_status(struct hsu_dma_chip *chip, unsigned short nr,
0040 u32 *status);
0041 int hsu_dma_do_irq(struct hsu_dma_chip *chip, unsigned short nr, u32 status);
0042
0043
0044 int hsu_dma_probe(struct hsu_dma_chip *chip);
0045 int hsu_dma_remove(struct hsu_dma_chip *chip);
0046 #else
0047 static inline int hsu_dma_get_status(struct hsu_dma_chip *chip,
0048 unsigned short nr, u32 *status)
0049 {
0050 return 0;
0051 }
0052 static inline int hsu_dma_do_irq(struct hsu_dma_chip *chip, unsigned short nr,
0053 u32 status)
0054 {
0055 return 0;
0056 }
0057 static inline int hsu_dma_probe(struct hsu_dma_chip *chip) { return -ENODEV; }
0058 static inline int hsu_dma_remove(struct hsu_dma_chip *chip) { return 0; }
0059 #endif
0060
0061 #endif