xref: /openbmc/linux/sound/soc/samsung/dma.h (revision bc5aa3a0)
1 /*
2  *  dma.h --
3  *
4  *  This program is free software; you can redistribute  it and/or modify it
5  *  under  the terms of  the GNU General  Public License as published by the
6  *  Free Software Foundation;  either version 2 of the  License, or (at your
7  *  option) any later version.
8  *
9  *  ALSA PCM interface for the Samsung SoC
10  */
11 
12 #ifndef _S3C_AUDIO_H
13 #define _S3C_AUDIO_H
14 
15 #include <sound/dmaengine_pcm.h>
16 #include <linux/dmaengine.h>
17 
18 struct s3c_dma_params {
19 	void *slave;				/* Channel ID */
20 	dma_addr_t dma_addr;
21 	int dma_size;			/* Size of the DMA transfer */
22 	char *ch_name;
23 	struct snd_dmaengine_dai_dma_data dma_data;
24 };
25 
26 void samsung_asoc_init_dma_data(struct snd_soc_dai *dai,
27 				struct s3c_dma_params *playback,
28 				struct s3c_dma_params *capture);
29 /*
30  * @tx, @rx arguments can be NULL if the DMA channel names are "tx", "rx",
31  * otherwise actual DMA channel names must be passed to this function.
32  */
33 int samsung_asoc_dma_platform_register(struct device *dev, dma_filter_fn filter,
34 				       const char *tx, const char *rx);
35 #endif
36