blob: a7616cc9b39ee5a59221ddaaf5ed61859d253234 [file] [log] [blame]
Ben Dooksc0f41bb2007-02-14 13:20:03 +01001/*
Jassi Brar4b640cf2010-11-22 15:35:57 +09002 * dma.h --
Ben Dooksc0f41bb2007-02-14 13:20:03 +01003 *
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 *
Boojin Kim344b4c42011-09-02 09:44:43 +09009 * ALSA PCM interface for the Samsung SoC
Ben Dooksc0f41bb2007-02-14 13:20:03 +010010 */
11
Jassi Brarfaa31772009-11-17 16:53:23 +090012#ifndef _S3C_AUDIO_H
13#define _S3C_AUDIO_H
Ben Dooksc0f41bb2007-02-14 13:20:03 +010014
Mark Brownd37bdf72013-12-05 14:14:52 +000015#include <sound/dmaengine_pcm.h>
Arnd Bergmann9bdca822015-11-18 22:31:11 +010016#include <linux/dmaengine.h>
Mark Brownd37bdf72013-12-05 14:14:52 +000017
Jassi Brarfaa31772009-11-17 16:53:23 +090018struct s3c_dma_params {
Arnd Bergmannb9a1a742015-11-18 15:25:23 +010019 void *slave; /* Channel ID */
Ben Dooksc0f41bb2007-02-14 13:20:03 +010020 dma_addr_t dma_addr;
Graeme Gregory7f1bc262007-04-17 12:35:18 +020021 int dma_size; /* Size of the DMA transfer */
Padmavathi Venna40476f62013-01-18 17:17:01 +053022 char *ch_name;
Mark Brownd37bdf72013-12-05 14:14:52 +000023 struct snd_dmaengine_dai_dma_data dma_data;
Ben Dooksc0f41bb2007-02-14 13:20:03 +010024};
25
Mark Brown36885692013-10-19 15:23:15 +010026void samsung_asoc_init_dma_data(struct snd_soc_dai *dai,
27 struct s3c_dma_params *playback,
28 struct s3c_dma_params *capture);
Arnd Bergmann9bdca822015-11-18 22:31:11 +010029int samsung_asoc_dma_platform_register(struct device *dev,
30 dma_filter_fn fn);
Padmavathi Vennaa08485d2012-12-07 13:59:21 +053031
Ben Dooksc0f41bb2007-02-14 13:20:03 +010032#endif