#include <linux/i2c.h>
#include <linux/firmware.h>
#include <linux/regmap.h>
#include <sound/soc.h>
#include "aw88261.h"
#include "aw88395/aw88395_data_type.h"
#include "aw88395/aw88395_device.h"
static const struct regmap_config aw88261_remap_config = …;
static void aw88261_dev_set_volume(struct aw_device *aw_dev, unsigned int value)
{ … }
static void aw88261_dev_fade_in(struct aw_device *aw_dev)
{ … }
static void aw88261_dev_fade_out(struct aw_device *aw_dev)
{ … }
static void aw88261_dev_i2s_tx_enable(struct aw_device *aw_dev, bool flag)
{ … }
static void aw88261_dev_pwd(struct aw_device *aw_dev, bool pwd)
{ … }
static void aw88261_dev_amppd(struct aw_device *aw_dev, bool amppd)
{ … }
static void aw88261_dev_mute(struct aw_device *aw_dev, bool is_mute)
{ … }
static void aw88261_dev_clear_int_status(struct aw_device *aw_dev)
{ … }
static int aw88261_dev_get_iis_status(struct aw_device *aw_dev)
{ … }
static int aw88261_dev_check_mode1_pll(struct aw_device *aw_dev)
{ … }
static int aw88261_dev_check_mode2_pll(struct aw_device *aw_dev)
{ … }
static int aw88261_dev_check_syspll(struct aw_device *aw_dev)
{ … }
static int aw88261_dev_check_sysst(struct aw_device *aw_dev)
{ … }
static void aw88261_dev_uls_hmute(struct aw_device *aw_dev, bool uls_hmute)
{ … }
static void aw88261_reg_force_set(struct aw88261 *aw88261)
{ … }
static int aw88261_dev_get_icalk(struct aw_device *aw_dev, int16_t *icalk)
{ … }
static int aw88261_dev_get_vcalk(struct aw_device *aw_dev, int16_t *vcalk)
{ … }
static int aw88261_dev_set_vcalb(struct aw_device *aw_dev)
{ … }
static int aw88261_dev_reg_update(struct aw88261 *aw88261,
unsigned char *data, unsigned int len)
{ … }
static int aw88261_dev_get_prof_name(struct aw_device *aw_dev, int index, char **prof_name)
{ … }
static int aw88261_dev_get_prof_data(struct aw_device *aw_dev, int index,
struct aw_prof_desc **prof_desc)
{ … }
static int aw88261_dev_fw_update(struct aw88261 *aw88261)
{ … }
static int aw88261_dev_start(struct aw88261 *aw88261)
{ … }
static int aw88261_dev_stop(struct aw_device *aw_dev)
{ … }
static int aw88261_reg_update(struct aw88261 *aw88261, bool force)
{ … }
static void aw88261_start_pa(struct aw88261 *aw88261)
{ … }
static void aw88261_startup_work(struct work_struct *work)
{ … }
static void aw88261_start(struct aw88261 *aw88261, bool sync_start)
{ … }
static struct snd_soc_dai_driver aw88261_dai[] = …;
static int aw88261_get_fade_in_time(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int aw88261_set_fade_in_time(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int aw88261_get_fade_out_time(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int aw88261_set_fade_out_time(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int aw88261_dev_set_profile_index(struct aw_device *aw_dev, int index)
{ … }
static int aw88261_profile_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{ … }
static int aw88261_profile_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int aw88261_profile_set(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int aw88261_volume_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int aw88261_volume_set(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int aw88261_get_fade_step(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static int aw88261_set_fade_step(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{ … }
static const struct snd_kcontrol_new aw88261_controls[] = …;
static int aw88261_playback_event(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *k, int event)
{ … }
static const struct snd_soc_dapm_widget aw88261_dapm_widgets[] = …;
static const struct snd_soc_dapm_route aw88261_audio_map[] = …;
static int aw88261_frcset_check(struct aw88261 *aw88261)
{ … }
static int aw88261_dev_init(struct aw88261 *aw88261, struct aw_container *aw_cfg)
{ … }
static int aw88261_request_firmware_file(struct aw88261 *aw88261)
{ … }
static int aw88261_codec_probe(struct snd_soc_component *component)
{ … }
static void aw88261_codec_remove(struct snd_soc_component *aw_codec)
{ … }
static const struct snd_soc_component_driver soc_codec_dev_aw88261 = …;
static void aw88261_parse_channel_dt(struct aw88261 *aw88261)
{ … }
static int aw88261_init(struct aw88261 **aw88261, struct i2c_client *i2c, struct regmap *regmap)
{ … }
static int aw88261_i2c_probe(struct i2c_client *i2c)
{ … }
static const struct i2c_device_id aw88261_i2c_id[] = …;
MODULE_DEVICE_TABLE(i2c, aw88261_i2c_id);
static struct i2c_driver aw88261_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;