Linux-libre 3.18.62-gnu
[librecmc/linux-libre.git] / sound / soc / davinci / davinci-pcm.h
1 /*
2  * ALSA PCM interface for the TI DAVINCI processor
3  *
4  * Author:      Vladimir Barinov, <vbarinov@embeddedalley.com>
5  * Copyright:   (C) 2007 MontaVista Software, Inc., <source@mvista.com>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published by the Free Software Foundation.
10  */
11
12 #ifndef _DAVINCI_PCM_H
13 #define _DAVINCI_PCM_H
14
15 #include <linux/genalloc.h>
16 #include <linux/platform_data/davinci_asp.h>
17 #include <linux/platform_data/edma.h>
18
19 struct davinci_pcm_dma_params {
20         int channel;                    /* sync dma channel ID */
21         unsigned short acnt;
22         dma_addr_t dma_addr;            /* device physical address for DMA */
23         unsigned sram_size;
24         struct gen_pool *sram_pool;     /* SRAM gen_pool for ping pong */
25         enum dma_event_q asp_chan_q;    /* event queue number for ASP channel */
26         enum dma_event_q ram_chan_q;    /* event queue number for RAM channel */
27         unsigned char data_type;        /* xfer data type */
28         unsigned char convert_mono_stereo;
29         unsigned int fifo_level;
30 };
31
32 #if IS_ENABLED(CONFIG_SND_DAVINCI_SOC)
33 int davinci_soc_platform_register(struct device *dev);
34 #else
35 static inline int davinci_soc_platform_register(struct device *dev)
36 {
37         return 0;
38 }
39 #endif /* CONFIG_SND_DAVINCI_SOC */
40
41 #endif