blob: 7bec5d3399067d150eff8dc7fd886d5823f89656 [file] [log] [blame]
Álvaro Fernández Rojas10b4dc52018-11-28 19:17:49 +01001/* 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 */
22struct 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 */