summaryrefslogtreecommitdiff
path: root/include/dma-uclass.h
diff options
context:
space:
mode:
authorVignesh Raghavendra <vigneshr@ti.com>2019-12-04 22:17:20 +0530
committerJoe Hershberger <joe.hershberger@ni.com>2019-12-09 09:47:43 -0600
commitb8a4dd28f3b719d176fed5dc8d23a898463b072c (patch)
tree24165070b5a39e8a4a63d5e11a5673815bcf6af3 /include/dma-uclass.h
parent08b3e90a0168c9053c9bdd7df5d187cb6668a4c6 (diff)
downloadu-boot-b8a4dd28f3b719d176fed5dc8d23a898463b072c.tar.gz
dma: Introduce dma_get_cfg() interface
Sometimes, there would be a need to exchange data between DMA provider and DMA client which are very specific to DMA driver of the SoC/platform and are not generic enough to be put into struct dma. Therefore, introduce dma_get_cfg() interface to get DMA provider specific data from client device. Clients can use unique configuration ID flags to get different configuration data from DMA driver. Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com> Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Diffstat (limited to 'include/dma-uclass.h')
-rw-r--r--include/dma-uclass.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/dma-uclass.h b/include/dma-uclass.h
index 31b43fb4b9..a1d9d26ac5 100644
--- a/include/dma-uclass.h
+++ b/include/dma-uclass.h
@@ -108,6 +108,17 @@ struct dma_ops {
* @return zero on success, or -ve error code.
*/
int (*send)(struct dma *dma, void *src, size_t len, void *metadata);
+ /**
+ * get_cfg() - Get DMA channel configuration for client's use
+ *
+ * @dma: The DMA Channel to manipulate
+ * @cfg_id: DMA provider specific ID to identify what
+ * configuration data client needs
+ * @data: Pointer to store pointer to DMA driver specific
+ * configuration data for the given cfg_id (output param)
+ * @return zero on success, or -ve error code.
+ */
+ int (*get_cfg)(struct dma *dma, u32 cfg_id, void **data);
#endif /* CONFIG_DMA_CHANNELS */
/**
* transfer() - Issue a DMA transfer. The implementation must