#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/pm.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#include <linux/regulator/consumer.h>
#include <sound/core.h>
#include <sound/initval.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include <sound/tlv.h>
#include "es8328.h"
static const unsigned int rates_12288[] = …;
static const int ratios_12288[] = …;
static const struct snd_pcm_hw_constraint_list constraints_12288 = …;
static const unsigned int rates_11289[] = …;
static const int ratios_11289[] = …;
static const struct snd_pcm_hw_constraint_list constraints_11289 = …;
enum sgtl5000_regulator_supplies { … };
static const char * const supply_names[ES8328_SUPPLY_NUM] = …;
#define ES8328_RATES …
#define ES8328_FORMATS …
struct es8328_priv { … };
static const char * const adcpol_txt[] = …;
static SOC_ENUM_SINGLE_DECL(adcpol,
ES8328_ADCCONTROL6, 6, adcpol_txt);
static const DECLARE_TLV_DB_SCALE(play_tlv, -3000, 100, 0);
static const DECLARE_TLV_DB_SCALE(dac_adc_tlv, -9600, 50, 0);
static const DECLARE_TLV_DB_SCALE(bypass_tlv, -1500, 300, 0);
static const DECLARE_TLV_DB_SCALE(mic_tlv, 0, 300, 0);
static const struct { … } deemph_settings[] = …;
static int es8328_set_deemph(struct snd_soc_component *component)
{ … }
static int es8328_get_deemph(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int es8328_put_deemph(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static const struct snd_kcontrol_new es8328_snd_controls[] = …;
static const char * const es8328_line_texts[] = …;
static const struct soc_enum es8328_lline_enum = …;
static const struct snd_kcontrol_new es8328_left_line_controls = …;
static const struct soc_enum es8328_rline_enum = …;
static const struct snd_kcontrol_new es8328_right_line_controls = …;
static const struct snd_kcontrol_new es8328_left_mixer_controls[] = …;
static const struct snd_kcontrol_new es8328_right_mixer_controls[] = …;
static const char * const es8328_pga_sel[] = …;
static const struct soc_enum es8328_lpga_enum = …;
static const struct snd_kcontrol_new es8328_left_pga_controls = …;
static const struct soc_enum es8328_rpga_enum = …;
static const struct snd_kcontrol_new es8328_right_pga_controls = …;
static const char * const es8328_diff_sel[] = …;
static SOC_ENUM_SINGLE_DECL(diffmux,
ES8328_ADCCONTROL3, 7, es8328_diff_sel);
static const struct snd_kcontrol_new es8328_diffmux_controls = …;
static const char * const es8328_mono_mux[] = …;
static SOC_ENUM_SINGLE_DECL(monomux,
ES8328_ADCCONTROL3, 3, es8328_mono_mux);
static const struct snd_kcontrol_new es8328_monomux_controls = …;
static const struct snd_soc_dapm_widget es8328_dapm_widgets[] = …;
static const struct snd_soc_dapm_route es8328_dapm_routes[] = …;
static int es8328_mute(struct snd_soc_dai *dai, int mute, int direction)
{ … }
static int es8328_startup(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{ … }
static int es8328_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai)
{ … }
static int es8328_set_sysclk(struct snd_soc_dai *codec_dai,
int clk_id, unsigned int freq, int dir)
{ … }
static int es8328_set_dai_fmt(struct snd_soc_dai *codec_dai,
unsigned int fmt)
{ … }
static int es8328_set_bias_level(struct snd_soc_component *component,
enum snd_soc_bias_level level)
{ … }
static const struct snd_soc_dai_ops es8328_dai_ops = …;
static struct snd_soc_dai_driver es8328_dai = …;
static int es8328_suspend(struct snd_soc_component *component)
{ … }
static int es8328_resume(struct snd_soc_component *component)
{ … }
static int es8328_component_probe(struct snd_soc_component *component)
{ … }
static void es8328_remove(struct snd_soc_component *component)
{ … }
const struct regmap_config es8328_regmap_config = …;
EXPORT_SYMBOL_GPL(…);
static const struct snd_soc_component_driver es8328_component_driver = …;
int es8328_probe(struct device *dev, struct regmap *regmap)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;