0001
0002
0003
0004
0005
0006
0007 #ifndef _MESON_AIU_FIFO_H
0008 #define _MESON_AIU_FIFO_H
0009
0010 struct snd_pcm_hardware;
0011 struct snd_soc_component_driver;
0012 struct snd_soc_dai_driver;
0013 struct clk;
0014 struct snd_pcm_ops;
0015 struct snd_pcm_substream;
0016 struct snd_soc_dai;
0017 struct snd_pcm_hw_params;
0018 struct platform_device;
0019
0020 struct aiu_fifo {
0021 struct snd_pcm_hardware *pcm;
0022 unsigned int mem_offset;
0023 unsigned int fifo_block;
0024 struct clk *pclk;
0025 int irq;
0026 };
0027
0028 int aiu_fifo_dai_probe(struct snd_soc_dai *dai);
0029 int aiu_fifo_dai_remove(struct snd_soc_dai *dai);
0030
0031 snd_pcm_uframes_t aiu_fifo_pointer(struct snd_soc_component *component,
0032 struct snd_pcm_substream *substream);
0033
0034 int aiu_fifo_trigger(struct snd_pcm_substream *substream, int cmd,
0035 struct snd_soc_dai *dai);
0036 int aiu_fifo_prepare(struct snd_pcm_substream *substream,
0037 struct snd_soc_dai *dai);
0038 int aiu_fifo_hw_params(struct snd_pcm_substream *substream,
0039 struct snd_pcm_hw_params *params,
0040 struct snd_soc_dai *dai);
0041 int aiu_fifo_hw_free(struct snd_pcm_substream *substream,
0042 struct snd_soc_dai *dai);
0043 int aiu_fifo_startup(struct snd_pcm_substream *substream,
0044 struct snd_soc_dai *dai);
0045 void aiu_fifo_shutdown(struct snd_pcm_substream *substream,
0046 struct snd_soc_dai *dai);
0047 int aiu_fifo_pcm_new(struct snd_soc_pcm_runtime *rtd,
0048 struct snd_soc_dai *dai);
0049
0050 #endif