blob: 070ab0f096092c22c6fd47ec239b89531a7a3a52 [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
Sachin Kamat71e52222014-04-08 17:11:04 +053017struct s3c_dma_client {
18 char *name;
19};
20
Jassi Brarfaa31772009-11-17 16:53:23 +090021struct s3c_dma_params {
Sachin Kamat71e52222014-04-08 17:11:04 +053022 struct s3c_dma_client *client; /* stream identifier */
Graeme Gregory7f1bc262007-04-17 12:35:18 +020023 int channel; /* Channel ID */
Ben Dooksc0f41bb2007-02-14 13:20:03 +010024 dma_addr_t dma_addr;
Graeme Gregory7f1bc262007-04-17 12:35:18 +020025 int dma_size; /* Size of the DMA transfer */
Boojin Kim344b4c42011-09-02 09:44:43 +090026 unsigned ch;
27 struct samsung_dma_ops *ops;
Padmavathi Venna40476f62013-01-18 17:17:01 +053028 char *ch_name;
Mark Brownd37bdf72013-12-05 14:14:52 +000029 struct snd_dmaengine_dai_dma_data dma_data;
Ben Dooksc0f41bb2007-02-14 13:20:03 +010030};
31
Mark Brown36885692013-10-19 15:23:15 +010032void samsung_asoc_init_dma_data(struct snd_soc_dai *dai,
33 struct s3c_dma_params *playback,
34 struct s3c_dma_params *capture);
Mark Brown85ff3c22013-08-19 22:59:05 +010035int samsung_asoc_dma_platform_register(struct device *dev);
Padmavathi Vennaa08485d2012-12-07 13:59:21 +053036
Ben Dooksc0f41bb2007-02-14 13:20:03 +010037#endif