blob: fb09a1c5f75b24dece4fb50d507f8ddbcd0aace9 [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
Jassi Brarfaa31772009-11-17 16:53:23 +090015struct s3c_dma_params {
Graeme Gregory7f1bc262007-04-17 12:35:18 +020016 struct s3c2410_dma_client *client; /* stream identifier */
17 int channel; /* Channel ID */
Ben Dooksc0f41bb2007-02-14 13:20:03 +010018 dma_addr_t dma_addr;
Graeme Gregory7f1bc262007-04-17 12:35:18 +020019 int dma_size; /* Size of the DMA transfer */
Boojin Kim344b4c42011-09-02 09:44:43 +090020 unsigned ch;
21 struct samsung_dma_ops *ops;
Padmavathi Venna40476f62013-01-18 17:17:01 +053022 char *ch_name;
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);
29void samsung_asoc_dma_platform_unregister(struct device *dev);
Padmavathi Vennaa08485d2012-12-07 13:59:21 +053030
Ben Dooksc0f41bb2007-02-14 13:20:03 +010031#endif