#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/initval.h>
#include <sound/soc.h>
#include <sound/tlv.h>
#include "ad193x.h"
struct ad193x_priv { … };
static const char * const ad193x_deemp[] = …;
static SOC_ENUM_SINGLE_DECL(ad193x_deemp_enum, AD193X_DAC_CTRL2, 1,
ad193x_deemp);
static const DECLARE_TLV_DB_MINMAX(adau193x_tlv, -9563, 0);
static const unsigned int ad193x_sb[] = …;
static struct snd_pcm_hw_constraint_list constr = …;
static const struct snd_kcontrol_new ad193x_snd_controls[] = …;
static const struct snd_kcontrol_new ad193x_adc_snd_controls[] = …;
static const struct snd_soc_dapm_widget ad193x_dapm_widgets[] = …;
static const struct snd_soc_dapm_widget ad193x_adc_widgets[] = …;
static int ad193x_check_pll(struct snd_soc_dapm_widget *source,
struct snd_soc_dapm_widget *sink)
{ … }
static const struct snd_soc_dapm_route audio_paths[] = …;
static const struct snd_soc_dapm_route ad193x_adc_audio_paths[] = …;
static inline bool ad193x_has_adc(const struct ad193x_priv *ad193x)
{ … }
static int ad193x_mute(struct snd_soc_dai *dai, int mute, int direction)
{ … }
static int ad193x_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
unsigned int rx_mask, int slots, int width)
{ … }
static int ad193x_set_dai_fmt(struct snd_soc_dai *codec_dai,
unsigned int fmt)
{ … }
static int ad193x_set_dai_sysclk(struct snd_soc_dai *codec_dai,
int clk_id, unsigned int freq, int dir)
{ … }
static int ad193x_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai)
{ … }
static int ad193x_startup(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{ … }
static const struct snd_soc_dai_ops ad193x_dai_ops = …;
static struct snd_soc_dai_driver ad193x_dai = …;
static struct snd_soc_dai_driver ad193x_no_adc_dai = …;
static void ad193x_reg_default_init(struct ad193x_priv *ad193x)
{ … }
static int ad193x_component_probe(struct snd_soc_component *component)
{ … }
static const struct snd_soc_component_driver soc_component_dev_ad193x = …;
const struct regmap_config ad193x_regmap_config = …;
EXPORT_SYMBOL_GPL(…);
int ad193x_probe(struct device *dev, struct regmap *regmap,
enum ad193x_type type)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;