Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
0002 /*
0003  * Copyright (c) 2020 BayLibre, SAS.
0004  * Author: Jerome Brunet <jbrunet@baylibre.com>
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 /* _MESON_AIU_FIFO_H */