blob: 085ef30f5ca28464b3c3e1b7293b50f50fd8b61d [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>
16
Jassi Brarfaa31772009-11-17 16:53:23 +090017struct s3c_dma_params {
Arnd Bergmannb9a1a742015-11-18 15:25:23 +010018 void *slave; /* Channel ID */
Ben Dooksc0f41bb2007-02-14 13:20:03 +010019 dma_addr_t dma_addr;
Graeme Gregory7f1bc262007-04-17 12:35:18 +020020 int dma_size; /* Size of the DMA transfer */
Padmavathi Venna40476f62013-01-18 17:17:01 +053021 char *ch_name;
Mark Brownd37bdf72013-12-05 14:14:52 +000022 struct snd_dmaengine_dai_dma_data dma_data;
Ben Dooksc0f41bb2007-02-14 13:20:03 +010023};
24
Mark Brown36885692013-10-19 15:23:15 +010025void samsung_asoc_init_dma_data(struct snd_soc_dai *dai,
26 struct s3c_dma_params *playback,
27 struct s3c_dma_params *capture);
Mark Brown85ff3c22013-08-19 22:59:05 +010028int samsung_asoc_dma_platform_register(struct device *dev);
Padmavathi Vennaa08485d2012-12-07 13:59:21 +053029
Ben Dooksc0f41bb2007-02-14 13:20:03 +010030#endif