linux/sound/soc/codecs/wcd9335.c

// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
// Copyright (c) 2017-2018, Linaro Limited

#include <linux/module.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/cleanup.h>
#include <linux/device.h>
#include <linux/wait.h>
#include <linux/bitops.h>
#include <linux/regulator/consumer.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/slimbus.h>
#include <sound/soc.h>
#include <sound/pcm_params.h>
#include <sound/soc-dapm.h>
#include <linux/of_gpio.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include <sound/tlv.h>
#include <sound/info.h>
#include "wcd9335.h"
#include "wcd-clsh-v2.h"

#include <dt-bindings/sound/qcom,wcd9335.h>

#define WCD9335_RATES_MASK
/* Fractional Rates */
#define WCD9335_FRAC_RATES_MASK
#define WCD9335_FORMATS_S16_S24_LE

/* slave port water mark level
 *   (0: 6bytes, 1: 9bytes, 2: 12 bytes, 3: 15 bytes)
 */
#define SLAVE_PORT_WATER_MARK_6BYTES
#define SLAVE_PORT_WATER_MARK_9BYTES
#define SLAVE_PORT_WATER_MARK_12BYTES
#define SLAVE_PORT_WATER_MARK_15BYTES
#define SLAVE_PORT_WATER_MARK_SHIFT
#define SLAVE_PORT_ENABLE
#define SLAVE_PORT_DISABLE
#define WCD9335_SLIM_WATER_MARK_VAL

#define WCD9335_SLIM_NUM_PORT_REG
#define WCD9335_SLIM_PGD_PORT_INT_TX_EN0

#define WCD9335_MCLK_CLK_12P288MHZ
#define WCD9335_MCLK_CLK_9P6MHZ

#define WCD9335_SLIM_CLOSE_TIMEOUT
#define WCD9335_SLIM_IRQ_OVERFLOW
#define WCD9335_SLIM_IRQ_UNDERFLOW
#define WCD9335_SLIM_IRQ_PORT_CLOSED

#define WCD9335_NUM_INTERPOLATORS
#define WCD9335_RX_START
#define WCD9335_SLIM_CH_START
#define WCD9335_MAX_MICBIAS
#define WCD9335_MAX_VALID_ADC_MUX
#define WCD9335_INVALID_ADC_MUX

#define TX_HPF_CUT_OFF_FREQ_MASK
#define CF_MIN_3DB_4HZ
#define CF_MIN_3DB_75HZ
#define CF_MIN_3DB_150HZ
#define WCD9335_DMIC_CLK_DIV_2
#define WCD9335_DMIC_CLK_DIV_3
#define WCD9335_DMIC_CLK_DIV_4
#define WCD9335_DMIC_CLK_DIV_6
#define WCD9335_DMIC_CLK_DIV_8
#define WCD9335_DMIC_CLK_DIV_16
#define WCD9335_DMIC_CLK_DRIVE_DEFAULT
#define WCD9335_AMIC_PWR_LEVEL_LP
#define WCD9335_AMIC_PWR_LEVEL_DEFAULT
#define WCD9335_AMIC_PWR_LEVEL_HP
#define WCD9335_AMIC_PWR_LVL_MASK
#define WCD9335_AMIC_PWR_LVL_SHIFT

#define WCD9335_DEC_PWR_LVL_MASK
#define WCD9335_DEC_PWR_LVL_LP
#define WCD9335_DEC_PWR_LVL_HP
#define WCD9335_DEC_PWR_LVL_DF

#define WCD9335_SLIM_RX_CH(p)

#define WCD9335_SLIM_TX_CH(p)

/* vout step value */
#define WCD9335_CALCULATE_VOUT_D(req_mv)

#define WCD9335_INTERPOLATOR_PATH(id)

#define WCD9335_ADC_MUX_PATH(id)

enum {};

enum {};

enum {};

enum wcd9335_sido_voltage {};

enum {};

enum {};

enum {};

enum {};

enum wcd_clock_type {};

enum {};

enum {};

struct wcd9335_slim_ch {};

struct wcd_slim_codec_dai_data {};

struct wcd9335_codec {};

struct wcd9335_irq {};

static const struct wcd9335_slim_ch wcd9335_tx_chs[WCD9335_TX_MAX] =;

static const struct wcd9335_slim_ch wcd9335_rx_chs[WCD9335_RX_MAX] =;

struct interp_sample_rate {};

static const struct interp_sample_rate int_mix_rate_val[] =;

static const struct interp_sample_rate int_prim_rate_val[] =;

struct wcd9335_reg_mask_val {};

static const struct wcd9335_reg_mask_val wcd9335_codec_reg_init[] =;

/* Cutoff frequency for high pass filter */
static const char * const cf_text[] =;

static const char * const rx_cf_text[] =;

static const char * const rx_int0_7_mix_mux_text[] =;

static const char * const rx_int_mix_mux_text[] =;

static const char * const rx_prim_mix_text[] =;

static const char * const rx_int_dem_inp_mux_text[] =;

static const char * const rx_int0_interp_mux_text[] =;

static const char * const rx_int1_interp_mux_text[] =;

static const char * const rx_int2_interp_mux_text[] =;

static const char * const rx_int3_interp_mux_text[] =;

static const char * const rx_int4_interp_mux_text[] =;

static const char * const rx_int5_interp_mux_text[] =;

static const char * const rx_int6_interp_mux_text[] =;

static const char * const rx_int7_interp_mux_text[] =;

static const char * const rx_int8_interp_mux_text[] =;

static const char * const rx_hph_mode_mux_text[] =;

static const char *const slim_rx_mux_text[] =;

static const char * const adc_mux_text[] =;

static const char * const dmic_mux_text[] =;

static const char * const dmic_mux_alt_text[] =;

static const char * const amic_mux_text[] =;

static const char * const sb_tx0_mux_text[] =;

static const char * const sb_tx1_mux_text[] =;

static const char * const sb_tx2_mux_text[] =;

static const char * const sb_tx3_mux_text[] =;

static const char * const sb_tx4_mux_text[] =;

static const char * const sb_tx5_mux_text[] =;

static const char * const sb_tx6_mux_text[] =;

static const char * const sb_tx7_mux_text[] =;

static const char * const sb_tx8_mux_text[] =;

static const DECLARE_TLV_DB_SCALE(digital_gain, -8400, 100, -8400);
static const DECLARE_TLV_DB_SCALE(line_gain, 0, 7, 1);
static const DECLARE_TLV_DB_SCALE(analog_gain, 0, 25, 1);
static const DECLARE_TLV_DB_SCALE(ear_pa_gain, 0, 150, 0);

static const struct soc_enum cf_dec0_enum =;

static const struct soc_enum cf_dec1_enum =;

static const struct soc_enum cf_dec2_enum =;

static const struct soc_enum cf_dec3_enum =;

static const struct soc_enum cf_dec4_enum =;

static const struct soc_enum cf_dec5_enum =;

static const struct soc_enum cf_dec6_enum =;

static const struct soc_enum cf_dec7_enum =;

static const struct soc_enum cf_dec8_enum =;

static const struct soc_enum cf_int0_1_enum =;

static SOC_ENUM_SINGLE_DECL(cf_int0_2_enum, WCD9335_CDC_RX0_RX_PATH_MIX_CFG, 2,
		     rx_cf_text);

static const struct soc_enum cf_int1_1_enum =;

static SOC_ENUM_SINGLE_DECL(cf_int1_2_enum, WCD9335_CDC_RX1_RX_PATH_MIX_CFG, 2,
		     rx_cf_text);

static const struct soc_enum cf_int2_1_enum =;

static SOC_ENUM_SINGLE_DECL(cf_int2_2_enum, WCD9335_CDC_RX2_RX_PATH_MIX_CFG, 2,
		     rx_cf_text);

static const struct soc_enum cf_int3_1_enum =;

static SOC_ENUM_SINGLE_DECL(cf_int3_2_enum, WCD9335_CDC_RX3_RX_PATH_MIX_CFG, 2,
		     rx_cf_text);

static const struct soc_enum cf_int4_1_enum =;

static SOC_ENUM_SINGLE_DECL(cf_int4_2_enum, WCD9335_CDC_RX4_RX_PATH_MIX_CFG, 2,
		     rx_cf_text);

static const struct soc_enum cf_int5_1_enum =;

static SOC_ENUM_SINGLE_DECL(cf_int5_2_enum, WCD9335_CDC_RX5_RX_PATH_MIX_CFG, 2,
		     rx_cf_text);

static const struct soc_enum cf_int6_1_enum =;

static SOC_ENUM_SINGLE_DECL(cf_int6_2_enum, WCD9335_CDC_RX6_RX_PATH_MIX_CFG, 2,
		     rx_cf_text);

static const struct soc_enum cf_int7_1_enum =;

static SOC_ENUM_SINGLE_DECL(cf_int7_2_enum, WCD9335_CDC_RX7_RX_PATH_MIX_CFG, 2,
		     rx_cf_text);

static const struct soc_enum cf_int8_1_enum =;

static SOC_ENUM_SINGLE_DECL(cf_int8_2_enum, WCD9335_CDC_RX8_RX_PATH_MIX_CFG, 2,
		     rx_cf_text);

static const struct soc_enum rx_hph_mode_mux_enum =;

static const struct soc_enum slim_rx_mux_enum =;

static const struct soc_enum rx_int0_2_mux_chain_enum =;

static const struct soc_enum rx_int1_2_mux_chain_enum =;

static const struct soc_enum rx_int2_2_mux_chain_enum =;

static const struct soc_enum rx_int3_2_mux_chain_enum =;

static const struct soc_enum rx_int4_2_mux_chain_enum =;

static const struct soc_enum rx_int5_2_mux_chain_enum =;

static const struct soc_enum rx_int6_2_mux_chain_enum =;

static const struct soc_enum rx_int7_2_mux_chain_enum =;

static const struct soc_enum rx_int8_2_mux_chain_enum =;

static const struct soc_enum rx_int0_1_mix_inp0_chain_enum =;

static const struct soc_enum rx_int0_1_mix_inp1_chain_enum =;

static const struct soc_enum rx_int0_1_mix_inp2_chain_enum =;

static const struct soc_enum rx_int1_1_mix_inp0_chain_enum =;

static const struct soc_enum rx_int1_1_mix_inp1_chain_enum =;

static const struct soc_enum rx_int1_1_mix_inp2_chain_enum =;

static const struct soc_enum rx_int2_1_mix_inp0_chain_enum =;

static const struct soc_enum rx_int2_1_mix_inp1_chain_enum =;

static const struct soc_enum rx_int2_1_mix_inp2_chain_enum =;

static const struct soc_enum rx_int3_1_mix_inp0_chain_enum =;

static const struct soc_enum rx_int3_1_mix_inp1_chain_enum =;

static const struct soc_enum rx_int3_1_mix_inp2_chain_enum =;

static const struct soc_enum rx_int4_1_mix_inp0_chain_enum =;

static const struct soc_enum rx_int4_1_mix_inp1_chain_enum =;

static const struct soc_enum rx_int4_1_mix_inp2_chain_enum =;

static const struct soc_enum rx_int5_1_mix_inp0_chain_enum =;

static const struct soc_enum rx_int5_1_mix_inp1_chain_enum =;

static const struct soc_enum rx_int5_1_mix_inp2_chain_enum =;

static const struct soc_enum rx_int6_1_mix_inp0_chain_enum =;

static const struct soc_enum rx_int6_1_mix_inp1_chain_enum =;

static const struct soc_enum rx_int6_1_mix_inp2_chain_enum =;

static const struct soc_enum rx_int7_1_mix_inp0_chain_enum =;

static const struct soc_enum rx_int7_1_mix_inp1_chain_enum =;

static const struct soc_enum rx_int7_1_mix_inp2_chain_enum =;

static const struct soc_enum rx_int8_1_mix_inp0_chain_enum =;

static const struct soc_enum rx_int8_1_mix_inp1_chain_enum =;

static const struct soc_enum rx_int8_1_mix_inp2_chain_enum =;

static const struct soc_enum rx_int0_dem_inp_mux_enum =;

static const struct soc_enum rx_int1_dem_inp_mux_enum =;

static const struct soc_enum rx_int2_dem_inp_mux_enum =;

static const struct soc_enum rx_int0_interp_mux_enum =;

static const struct soc_enum rx_int1_interp_mux_enum =;

static const struct soc_enum rx_int2_interp_mux_enum =;

static const struct soc_enum rx_int3_interp_mux_enum =;

static const struct soc_enum rx_int4_interp_mux_enum =;

static const struct soc_enum rx_int5_interp_mux_enum =;

static const struct soc_enum rx_int6_interp_mux_enum =;

static const struct soc_enum rx_int7_interp_mux_enum =;

static const struct soc_enum rx_int8_interp_mux_enum =;

static const struct soc_enum tx_adc_mux0_chain_enum =;

static const struct soc_enum tx_adc_mux1_chain_enum =;

static const struct soc_enum tx_adc_mux2_chain_enum =;

static const struct soc_enum tx_adc_mux3_chain_enum =;

static const struct soc_enum tx_adc_mux4_chain_enum =;

static const struct soc_enum tx_adc_mux5_chain_enum =;

static const struct soc_enum tx_adc_mux6_chain_enum =;

static const struct soc_enum tx_adc_mux7_chain_enum =;

static const struct soc_enum tx_adc_mux8_chain_enum =;

static const struct soc_enum tx_dmic_mux0_enum =;

static const struct soc_enum tx_dmic_mux1_enum =;

static const struct soc_enum tx_dmic_mux2_enum =;

static const struct soc_enum tx_dmic_mux3_enum =;

static const struct soc_enum tx_dmic_mux4_enum =;

static const struct soc_enum tx_dmic_mux5_enum =;

static const struct soc_enum tx_dmic_mux6_enum =;

static const struct soc_enum tx_dmic_mux7_enum =;

static const struct soc_enum tx_dmic_mux8_enum =;

static const struct soc_enum tx_amic_mux0_enum =;

static const struct soc_enum tx_amic_mux1_enum =;

static const struct soc_enum tx_amic_mux2_enum =;

static const struct soc_enum tx_amic_mux3_enum =;

static const struct soc_enum tx_amic_mux4_enum =;

static const struct soc_enum tx_amic_mux5_enum =;

static const struct soc_enum tx_amic_mux6_enum =;

static const struct soc_enum tx_amic_mux7_enum =;

static const struct soc_enum tx_amic_mux8_enum =;

static const struct soc_enum sb_tx0_mux_enum =;

static const struct soc_enum sb_tx1_mux_enum =;

static const struct soc_enum sb_tx2_mux_enum =;

static const struct soc_enum sb_tx3_mux_enum =;

static const struct soc_enum sb_tx4_mux_enum =;

static const struct soc_enum sb_tx5_mux_enum =;

static const struct soc_enum sb_tx6_mux_enum =;

static const struct soc_enum sb_tx7_mux_enum =;

static const struct soc_enum sb_tx8_mux_enum =;

static const struct snd_kcontrol_new rx_int0_2_mux =;

static const struct snd_kcontrol_new rx_int1_2_mux =;

static const struct snd_kcontrol_new rx_int2_2_mux =;

static const struct snd_kcontrol_new rx_int3_2_mux =;

static const struct snd_kcontrol_new rx_int4_2_mux =;

static const struct snd_kcontrol_new rx_int5_2_mux =;

static const struct snd_kcontrol_new rx_int6_2_mux =;

static const struct snd_kcontrol_new rx_int7_2_mux =;

static const struct snd_kcontrol_new rx_int8_2_mux =;

static const struct snd_kcontrol_new rx_int0_1_mix_inp0_mux =;

static const struct snd_kcontrol_new rx_int0_1_mix_inp1_mux =;

static const struct snd_kcontrol_new rx_int0_1_mix_inp2_mux =;

static const struct snd_kcontrol_new rx_int1_1_mix_inp0_mux =;

static const struct snd_kcontrol_new rx_int1_1_mix_inp1_mux =;

static const struct snd_kcontrol_new rx_int1_1_mix_inp2_mux =;

static const struct snd_kcontrol_new rx_int2_1_mix_inp0_mux =;

static const struct snd_kcontrol_new rx_int2_1_mix_inp1_mux =;

static const struct snd_kcontrol_new rx_int2_1_mix_inp2_mux =;

static const struct snd_kcontrol_new rx_int3_1_mix_inp0_mux =;

static const struct snd_kcontrol_new rx_int3_1_mix_inp1_mux =;

static const struct snd_kcontrol_new rx_int3_1_mix_inp2_mux =;

static const struct snd_kcontrol_new rx_int4_1_mix_inp0_mux =;

static const struct snd_kcontrol_new rx_int4_1_mix_inp1_mux =;

static const struct snd_kcontrol_new rx_int4_1_mix_inp2_mux =;

static const struct snd_kcontrol_new rx_int5_1_mix_inp0_mux =;

static const struct snd_kcontrol_new rx_int5_1_mix_inp1_mux =;

static const struct snd_kcontrol_new rx_int5_1_mix_inp2_mux =;

static const struct snd_kcontrol_new rx_int6_1_mix_inp0_mux =;

static const struct snd_kcontrol_new rx_int6_1_mix_inp1_mux =;

static const struct snd_kcontrol_new rx_int6_1_mix_inp2_mux =;

static const struct snd_kcontrol_new rx_int7_1_mix_inp0_mux =;

static const struct snd_kcontrol_new rx_int7_1_mix_inp1_mux =;

static const struct snd_kcontrol_new rx_int7_1_mix_inp2_mux =;

static const struct snd_kcontrol_new rx_int8_1_mix_inp0_mux =;

static const struct snd_kcontrol_new rx_int8_1_mix_inp1_mux =;

static const struct snd_kcontrol_new rx_int8_1_mix_inp2_mux =;

static const struct snd_kcontrol_new rx_int0_interp_mux =;

static const struct snd_kcontrol_new rx_int1_interp_mux =;

static const struct snd_kcontrol_new rx_int2_interp_mux =;

static const struct snd_kcontrol_new rx_int3_interp_mux =;

static const struct snd_kcontrol_new rx_int4_interp_mux =;

static const struct snd_kcontrol_new rx_int5_interp_mux =;

static const struct snd_kcontrol_new rx_int6_interp_mux =;

static const struct snd_kcontrol_new rx_int7_interp_mux =;

static const struct snd_kcontrol_new rx_int8_interp_mux =;

static const struct snd_kcontrol_new tx_dmic_mux0 =;

static const struct snd_kcontrol_new tx_dmic_mux1 =;

static const struct snd_kcontrol_new tx_dmic_mux2 =;

static const struct snd_kcontrol_new tx_dmic_mux3 =;

static const struct snd_kcontrol_new tx_dmic_mux4 =;

static const struct snd_kcontrol_new tx_dmic_mux5 =;

static const struct snd_kcontrol_new tx_dmic_mux6 =;

static const struct snd_kcontrol_new tx_dmic_mux7 =;

static const struct snd_kcontrol_new tx_dmic_mux8 =;

static const struct snd_kcontrol_new tx_amic_mux0 =;

static const struct snd_kcontrol_new tx_amic_mux1 =;

static const struct snd_kcontrol_new tx_amic_mux2 =;

static const struct snd_kcontrol_new tx_amic_mux3 =;

static const struct snd_kcontrol_new tx_amic_mux4 =;

static const struct snd_kcontrol_new tx_amic_mux5 =;

static const struct snd_kcontrol_new tx_amic_mux6 =;

static const struct snd_kcontrol_new tx_amic_mux7 =;

static const struct snd_kcontrol_new tx_amic_mux8 =;

static const struct snd_kcontrol_new sb_tx0_mux =;

static const struct snd_kcontrol_new sb_tx1_mux =;

static const struct snd_kcontrol_new sb_tx2_mux =;

static const struct snd_kcontrol_new sb_tx3_mux =;

static const struct snd_kcontrol_new sb_tx4_mux =;

static const struct snd_kcontrol_new sb_tx5_mux =;

static const struct snd_kcontrol_new sb_tx6_mux =;

static const struct snd_kcontrol_new sb_tx7_mux =;

static const struct snd_kcontrol_new sb_tx8_mux =;

static int slim_rx_mux_get(struct snd_kcontrol *kc,
			   struct snd_ctl_elem_value *ucontrol)
{}

static int slim_rx_mux_put(struct snd_kcontrol *kc,
			   struct snd_ctl_elem_value *ucontrol)
{}

static int slim_tx_mixer_get(struct snd_kcontrol *kc,
			     struct snd_ctl_elem_value *ucontrol)
{}

static int slim_tx_mixer_put(struct snd_kcontrol *kc,
			     struct snd_ctl_elem_value *ucontrol)
{}

static const struct snd_kcontrol_new slim_rx_mux[WCD9335_RX_MAX] =;

static const struct snd_kcontrol_new aif1_cap_mixer[] =;

static const struct snd_kcontrol_new aif2_cap_mixer[] =;

static const struct snd_kcontrol_new aif3_cap_mixer[] =;

static int wcd9335_put_dec_enum(struct snd_kcontrol *kc,
				struct snd_ctl_elem_value *ucontrol)
{}

static int wcd9335_int_dem_inp_mux_put(struct snd_kcontrol *kc,
				 struct snd_ctl_elem_value *ucontrol)
{}

static const struct snd_kcontrol_new rx_int0_dem_inp_mux =;

static const struct snd_kcontrol_new rx_int1_dem_inp_mux =;

static const struct snd_kcontrol_new rx_int2_dem_inp_mux =;

static const struct snd_kcontrol_new tx_adc_mux0 =;

static const struct snd_kcontrol_new tx_adc_mux1 =;

static const struct snd_kcontrol_new tx_adc_mux2 =;

static const struct snd_kcontrol_new tx_adc_mux3 =;

static const struct snd_kcontrol_new tx_adc_mux4 =;

static const struct snd_kcontrol_new tx_adc_mux5 =;

static const struct snd_kcontrol_new tx_adc_mux6 =;

static const struct snd_kcontrol_new tx_adc_mux7 =;

static const struct snd_kcontrol_new tx_adc_mux8 =;

static int wcd9335_set_mix_interpolator_rate(struct snd_soc_dai *dai,
					     int rate_val,
					     u32 rate)
{}

static int wcd9335_set_prim_interpolator_rate(struct snd_soc_dai *dai,
					      u8 rate_val,
					      u32 rate)
{}

static int wcd9335_set_interpolator_rate(struct snd_soc_dai *dai, u32 rate)
{}

static int wcd9335_slim_set_hw_params(struct wcd9335_codec *wcd,
				 struct wcd_slim_codec_dai_data *dai_data,
				 int direction)
{}

static int wcd9335_set_decimator_rate(struct snd_soc_dai *dai,
				      u8 rate_val, u32 rate)
{}

static int wcd9335_hw_params(struct snd_pcm_substream *substream,
			   struct snd_pcm_hw_params *params,
			   struct snd_soc_dai *dai)
{}

static int wcd9335_trigger(struct snd_pcm_substream *substream, int cmd,
			   struct snd_soc_dai *dai)
{}

static int wcd9335_set_channel_map(struct snd_soc_dai *dai,
				   unsigned int tx_num,
				   const unsigned int *tx_slot,
				   unsigned int rx_num,
				   const unsigned int *rx_slot)
{}

static int wcd9335_get_channel_map(const struct snd_soc_dai *dai,
				   unsigned int *tx_num, unsigned int *tx_slot,
				   unsigned int *rx_num, unsigned int *rx_slot)
{}

static const struct snd_soc_dai_ops wcd9335_dai_ops =;

static struct snd_soc_dai_driver wcd9335_slim_dais[] =;

static int wcd9335_get_compander(struct snd_kcontrol *kc,
			       struct snd_ctl_elem_value *ucontrol)
{}

static int wcd9335_set_compander(struct snd_kcontrol *kc,
				 struct snd_ctl_elem_value *ucontrol)
{}

static int wcd9335_rx_hph_mode_get(struct snd_kcontrol *kc,
				 struct snd_ctl_elem_value *ucontrol)
{}

static int wcd9335_rx_hph_mode_put(struct snd_kcontrol *kc,
				 struct snd_ctl_elem_value *ucontrol)
{}

static const struct snd_kcontrol_new wcd9335_snd_controls[] =;

static const struct snd_soc_dapm_route wcd9335_audio_map[] =;

static int wcd9335_micbias_control(struct snd_soc_component *component,
				   int micb_num, int req, bool is_dapm)
{}

static int __wcd9335_codec_enable_micbias(struct snd_soc_dapm_widget *w,
					int event)
{}

static int wcd9335_codec_enable_micbias(struct snd_soc_dapm_widget *w,
		struct snd_kcontrol *kc, int event)
{}

static void wcd9335_codec_set_tx_hold(struct snd_soc_component *comp,
				      u16 amic_reg, bool set)
{}

static int wcd9335_codec_enable_adc(struct snd_soc_dapm_widget *w,
		struct snd_kcontrol *kc, int event)
{}

static int wcd9335_codec_find_amic_input(struct snd_soc_component *comp,
					 int adc_mux_n)
{}

static u16 wcd9335_codec_get_amic_pwlvl_reg(struct snd_soc_component *comp,
					    int amic)
{}

static int wcd9335_codec_enable_dec(struct snd_soc_dapm_widget *w,
	struct snd_kcontrol *kc, int event)
{}

static u8 wcd9335_get_dmic_clk_val(struct snd_soc_component *component,
				 u32 mclk_rate)
{}

static int wcd9335_codec_enable_dmic(struct snd_soc_dapm_widget *w,
		struct snd_kcontrol *kc, int event)
{}

static void wcd9335_codec_enable_int_port(struct wcd_slim_codec_dai_data *dai,
					struct snd_soc_component *component)
{}

static int wcd9335_codec_enable_slim(struct snd_soc_dapm_widget *w,
				       struct snd_kcontrol *kc,
				       int event)
{}

static int wcd9335_codec_enable_mix_path(struct snd_soc_dapm_widget *w,
		struct snd_kcontrol *kc, int event)
{}

static u16 wcd9335_interp_get_primary_reg(u16 reg, u16 *ind)
{}

static void wcd9335_codec_hd2_control(struct snd_soc_component *component,
				    u16 prim_int_reg, int event)
{}

static int wcd9335_codec_enable_prim_interpolator(
						struct snd_soc_component *comp,
						u16 reg, int event)
{}

static int wcd9335_config_compander(struct snd_soc_component *component,
				    int interp_n, int event)
{}

static int wcd9335_codec_enable_interpolator(struct snd_soc_dapm_widget *w,
		struct snd_kcontrol *kc, int event)
{}

static void wcd9335_codec_hph_mode_gain_opt(struct snd_soc_component *component,
					    u8 gain)
{}

static void wcd9335_codec_hph_lohifi_config(struct snd_soc_component *comp,
					  int event)
{}

static void wcd9335_codec_hph_lp_config(struct snd_soc_component *comp,
				      int event)
{}

static void wcd9335_codec_hph_hifi_config(struct snd_soc_component *comp,
					int event)
{}

static void wcd9335_codec_hph_mode_config(struct snd_soc_component *component,
					  int event, int mode)
{}

static int wcd9335_codec_hphl_dac_event(struct snd_soc_dapm_widget *w,
					struct snd_kcontrol *kc,
					int event)
{}

static int wcd9335_codec_lineout_dac_event(struct snd_soc_dapm_widget *w,
					   struct snd_kcontrol *kc, int event)
{}

static int wcd9335_codec_ear_dac_event(struct snd_soc_dapm_widget *w,
				       struct snd_kcontrol *kc, int event)
{}

static void wcd9335_codec_hph_post_pa_config(struct wcd9335_codec *wcd,
					     int mode, int event)
{}

static int wcd9335_codec_hphr_dac_event(struct snd_soc_dapm_widget *w,
				      struct snd_kcontrol *kc,
				      int event)
{}

static int wcd9335_codec_enable_hphl_pa(struct snd_soc_dapm_widget *w,
				      struct snd_kcontrol *kc,
				      int event)
{}

static int wcd9335_codec_enable_lineout_pa(struct snd_soc_dapm_widget *w,
					 struct snd_kcontrol *kc,
					 int event)
{}

static void wcd9335_codec_init_flyback(struct snd_soc_component *component)
{}

static int wcd9335_codec_enable_rx_bias(struct snd_soc_dapm_widget *w,
		struct snd_kcontrol *kc, int event)
{}

static int wcd9335_codec_enable_hphr_pa(struct snd_soc_dapm_widget *w,
					struct snd_kcontrol *kc, int event)
{}

static int wcd9335_codec_enable_ear_pa(struct snd_soc_dapm_widget *w,
				       struct snd_kcontrol *kc, int event)
{}

static irqreturn_t wcd9335_slimbus_irq(int irq, void *data)
{}

static const struct wcd9335_irq wcd9335_irqs[] =;

static int wcd9335_setup_irqs(struct wcd9335_codec *wcd)
{}

static void wcd9335_teardown_irqs(struct wcd9335_codec *wcd)
{}

static void wcd9335_cdc_sido_ccl_enable(struct wcd9335_codec *wcd,
					bool ccl_flag)
{}

static int wcd9335_enable_master_bias(struct wcd9335_codec *wcd)
{}

static int wcd9335_enable_mclk(struct wcd9335_codec *wcd)
{}

static int wcd9335_disable_mclk(struct wcd9335_codec *wcd)
{}

static int wcd9335_disable_master_bias(struct wcd9335_codec *wcd)
{}

static int wcd9335_cdc_req_mclk_enable(struct wcd9335_codec *wcd,
				     bool enable)
{}

static void wcd9335_codec_apply_sido_voltage(struct wcd9335_codec *wcd,
					     enum wcd9335_sido_voltage req_mv)
{}

static int wcd9335_codec_update_sido_voltage(struct wcd9335_codec *wcd,
					     enum wcd9335_sido_voltage req_mv)
{}

static int _wcd9335_codec_enable_mclk(struct snd_soc_component *component,
				      int enable)
{}

static int wcd9335_codec_enable_mclk(struct snd_soc_dapm_widget *w,
				     struct snd_kcontrol *kc, int event)
{}

static const struct snd_soc_dapm_widget wcd9335_dapm_widgets[] =;

static void wcd9335_enable_sido_buck(struct snd_soc_component *component)
{}

static int wcd9335_enable_efuse_sensing(struct snd_soc_component *comp)
{}

static void wcd9335_codec_init(struct snd_soc_component *component)
{}

static int wcd9335_codec_probe(struct snd_soc_component *component)
{}

static void wcd9335_codec_remove(struct snd_soc_component *comp)
{}

static int wcd9335_codec_set_sysclk(struct snd_soc_component *comp,
				    int clk_id, int source,
				    unsigned int freq, int dir)
{}

static const struct snd_soc_component_driver wcd9335_component_drv =;

static int wcd9335_probe(struct wcd9335_codec *wcd)
{}

static const struct regmap_range_cfg wcd9335_ranges[] =;

static bool wcd9335_is_volatile_register(struct device *dev, unsigned int reg)
{}

static const struct regmap_config wcd9335_regmap_config =;

static const struct regmap_range_cfg wcd9335_ifc_ranges[] =;

static const struct regmap_config wcd9335_ifc_regmap_config =;

static const struct regmap_irq wcd9335_codec_irqs[] =;

static const unsigned int wcd9335_config_regs[] =;

static const struct regmap_irq_chip wcd9335_regmap_irq1_chip =;

static int wcd9335_parse_dt(struct wcd9335_codec *wcd)
{}

static int wcd9335_power_on_reset(struct wcd9335_codec *wcd)
{}

static int wcd9335_bring_up(struct wcd9335_codec *wcd)
{}

static int wcd9335_irq_init(struct wcd9335_codec *wcd)
{}

static int wcd9335_slim_probe(struct slim_device *slim)
{}

static int wcd9335_slim_status(struct slim_device *sdev,
			       enum slim_device_status status)
{}

static const struct slim_device_id wcd9335_slim_id[] =;
MODULE_DEVICE_TABLE(slim, wcd9335_slim_id);

static struct slim_driver wcd9335_slim_driver =;

module_slim_driver();
MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_ALIAS();