#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/regmap.h>
#include <linux/regulator/consumer.h>
#include <linux/reset.h>
#include <sound/soc.h>
#include <sound/tlv.h>
#define BLOCK_EN …
#define LORN_EN …
#define LORP_EN …
#define LOLN_EN …
#define LOLP_EN …
#define DACR_EN …
#define DACL_EN …
#define DACR_INV …
#define DACL_INV …
#define DACR_SRC …
#define DACL_SRC …
#define REFP_BUF_EN …
#define BIAS_CURRENT_EN …
#define VMID_GEN_FAST …
#define VMID_GEN_EN …
#define I2S_MODE …
#define VOL_CTRL0 …
#define GAIN_H …
#define GAIN_L …
#define VOL_CTRL1 …
#define DAC_MONO …
#define RAMP_RATE …
#define VC_RAMP_MODE …
#define MUTE_MODE …
#define UNMUTE_MODE …
#define DAC_SOFT_MUTE …
#define DACR_VC …
#define DACL_VC …
#define LINEOUT_CFG …
#define LORN_POL …
#define LORP_POL …
#define LOLN_POL …
#define LOLP_POL …
#define POWER_CFG …
struct t9015 { … };
static int t9015_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
{ … }
static const struct snd_soc_dai_ops t9015_dai_ops = …;
static struct snd_soc_dai_driver t9015_dai = …;
static const DECLARE_TLV_DB_MINMAX_MUTE(dac_vol_tlv, -9525, 0);
static const char * const ramp_rate_txt[] = …;
static SOC_ENUM_SINGLE_DECL(ramp_rate_enum, VOL_CTRL1, RAMP_RATE,
ramp_rate_txt);
static const char * const dacr_in_txt[] = …;
static SOC_ENUM_SINGLE_DECL(dacr_in_enum, BLOCK_EN, DACR_SRC, dacr_in_txt);
static const char * const dacl_in_txt[] = …;
static SOC_ENUM_SINGLE_DECL(dacl_in_enum, BLOCK_EN, DACL_SRC, dacl_in_txt);
static const char * const mono_txt[] = …;
static SOC_ENUM_SINGLE_DECL(mono_enum, VOL_CTRL1, DAC_MONO, mono_txt);
static const struct snd_kcontrol_new t9015_snd_controls[] = …;
static const struct snd_kcontrol_new t9015_right_dac_mux = …;
static const struct snd_kcontrol_new t9015_left_dac_mux = …;
static const struct snd_soc_dapm_widget t9015_dapm_widgets[] = …;
static const struct snd_soc_dapm_route t9015_dapm_routes[] = …;
static int t9015_set_bias_level(struct snd_soc_component *component,
enum snd_soc_bias_level level)
{ … }
static const struct snd_soc_component_driver t9015_codec_driver = …;
static const struct regmap_config t9015_regmap_config = …;
static int t9015_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id t9015_ids[] __maybe_unused = …;
MODULE_DEVICE_TABLE(of, t9015_ids);
static struct platform_driver t9015_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;