#include <linux/clk.h>
#include <linux/mfd/syscon.h>
#include <sound/asoundef.h>
#include <sound/soc.h>
#include "uniperif.h"
#define SYS_CFG_AUDIO_GLUE …
#define UNIPERIF_PLAYER_CLK_ADJ_MIN …
#define UNIPERIF_PLAYER_CLK_ADJ_MAX …
#define UNIPERIF_PLAYER_I2S_OUT …
static const struct snd_pcm_hardware uni_player_pcm_hw = …;
static irqreturn_t uni_player_irq_handler(int irq, void *dev_id)
{ … }
static int uni_player_clk_set_rate(struct uniperif *player, unsigned long rate)
{ … }
static void uni_player_set_channel_status(struct uniperif *player,
struct snd_pcm_runtime *runtime)
{ … }
static int uni_player_prepare_iec958(struct uniperif *player,
struct snd_pcm_runtime *runtime)
{ … }
static int uni_player_prepare_pcm(struct uniperif *player,
struct snd_pcm_runtime *runtime)
{ … }
static int uni_player_prepare_tdm(struct uniperif *player,
struct snd_pcm_runtime *runtime)
{ … }
static int uni_player_ctl_iec958_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ … }
static int uni_player_ctl_iec958_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int uni_player_ctl_iec958_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static struct snd_kcontrol_new uni_player_iec958_ctl = …;
static int snd_sti_clk_adjustment_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ … }
static int snd_sti_clk_adjustment_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int snd_sti_clk_adjustment_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static struct snd_kcontrol_new uni_player_clk_adj_ctl = …;
static struct snd_kcontrol_new *snd_sti_pcm_ctl[] = …;
static struct snd_kcontrol_new *snd_sti_iec_ctl[] = …;
static int uni_player_startup(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{ … }
static int uni_player_set_sysclk(struct snd_soc_dai *dai, int clk_id,
unsigned int freq, int dir)
{ … }
static int uni_player_prepare(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{ … }
static int uni_player_start(struct uniperif *player)
{ … }
static int uni_player_stop(struct uniperif *player)
{ … }
int uni_player_resume(struct uniperif *player)
{ … }
EXPORT_SYMBOL_GPL(…);
static int uni_player_trigger(struct snd_pcm_substream *substream,
int cmd, struct snd_soc_dai *dai)
{ … }
static void uni_player_shutdown(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{ … }
static int uni_player_parse_dt_audio_glue(struct platform_device *pdev,
struct uniperif *player)
{ … }
static const struct snd_soc_dai_ops uni_player_dai_ops = …;
int uni_player_init(struct platform_device *pdev,
struct uniperif *player)
{ … }
EXPORT_SYMBOL_GPL(…);