xref: /openbmc/u-boot/include/dma-uclass.h (revision 10b4dc520811fdfc5a31f6067be2b0cd0753998d)
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2018 Álvaro Fernández Rojas <noltari@gmail.com>
4  * Copyright (C) 2015 Texas Instruments Incorporated <www.ti.com>
5  * Written by Mugunthan V N <mugunthanvnm@ti.com>
6  *
7  */
8 
9 #ifndef _DMA_UCLASS_H
10 #define _DMA_UCLASS_H
11 
12 /* See dma.h for background documentation. */
13 
14 #include <dma.h>
15 
16 /*
17  * struct dma_ops - Driver model DMA operations
18  *
19  * The uclass interface is implemented by all DMA devices which use
20  * driver model.
21  */
22 struct dma_ops {
23 	/**
24 	 * transfer() - Issue a DMA transfer. The implementation must
25 	 *   wait until the transfer is done.
26 	 *
27 	 * @dev: The DMA device
28 	 * @direction: direction of data transfer (should be one from
29 	 *   enum dma_direction)
30 	 * @dst: The destination pointer.
31 	 * @src: The source pointer.
32 	 * @len: Length of the data to be copied (number of bytes).
33 	 * @return zero on success, or -ve error code.
34 	 */
35 	int (*transfer)(struct udevice *dev, int direction, void *dst,
36 			void *src, size_t len);
37 };
38 
39 #endif /* _DMA_UCLASS_H */
40