#include <linux/bitfield.h>
#include <linux/clk.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include <sound/soc-dai.h>
#include "aiu.h"
#include "aiu-fifo.h"
#define AIU_I2S_SOURCE_DESC_MODE_8CH …
#define AIU_I2S_SOURCE_DESC_MODE_24BIT …
#define AIU_I2S_SOURCE_DESC_MODE_32BIT …
#define AIU_I2S_SOURCE_DESC_MODE_SPLIT …
#define AIU_MEM_I2S_MASKS_IRQ_BLOCK …
#define AIU_MEM_I2S_CONTROL_MODE_16BIT …
#define AIU_MEM_I2S_BUF_CNTL_INIT …
#define AIU_RST_SOFT_I2S_FAST …
#define AIU_I2S_MISC_HOLD_EN …
#define AIU_I2S_MISC_FORCE_LEFT_RIGHT …
#define AIU_FIFO_I2S_BLOCK …
static const struct snd_pcm_hardware fifo_i2s_pcm = …;
static int aiu_fifo_i2s_trigger(struct snd_pcm_substream *substream, int cmd,
struct snd_soc_dai *dai)
{ … }
static int aiu_fifo_i2s_prepare(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{ … }
static int aiu_fifo_i2s_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai)
{ … }
const struct snd_soc_dai_ops aiu_fifo_i2s_dai_ops = …;
int aiu_fifo_i2s_dai_probe(struct snd_soc_dai *dai)
{ … }