1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _MXS_DMA_H_ |
3 | #define _MXS_DMA_H_ |
4 | |
5 | #include <linux/dmaengine.h> |
6 | |
7 | #define MXS_DMA_CTRL_WAIT4END BIT(31) |
8 | #define MXS_DMA_CTRL_WAIT4RDY BIT(30) |
9 | |
10 | /* |
11 | * The mxs dmaengine can do PIO transfers. We pass a pointer to the PIO words |
12 | * in the second argument to dmaengine_prep_slave_sg when the direction is |
13 | * set to DMA_TRANS_NONE. To make this clear and to prevent users from doing |
14 | * the error prone casting we have this wrapper function |
15 | */ |
16 | static inline struct dma_async_tx_descriptor *mxs_dmaengine_prep_pio( |
17 | struct dma_chan *chan, u32 *pio, unsigned int npio, |
18 | enum dma_transfer_direction dir, unsigned long flags) |
19 | { |
20 | return dmaengine_prep_slave_sg(chan, sgl: (struct scatterlist *)pio, sg_len: npio, |
21 | dir, flags); |
22 | } |
23 | |
24 | #endif /* _MXS_DMA_H_ */ |
25 | |