linux/sound/soc/codecs/ak4535.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * ak4535.c  --  AK4535 ALSA Soc Audio driver
 *
 * Copyright 2005 Openedhand Ltd.
 *
 * Author: Richard Purdie <[email protected]>
 *
 * Based on wm8753.c by Liam Girdwood
 */

#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/pm.h>
#include <linux/i2c.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include <sound/initval.h>

#include "ak4535.h"

/* codec private data */
struct ak4535_priv {};

/*
 * ak4535 register cache
 */
static const struct reg_default ak4535_reg_defaults[] =;

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

static const char *ak4535_mono_gain[] =;
static const char *ak4535_mono_out[] =;
static const char *ak4535_hp_out[] =;
static const char *ak4535_deemp[] =;
static const char *ak4535_mic_select[] =;

static const struct soc_enum ak4535_enum[] =;

static const struct snd_kcontrol_new ak4535_snd_controls[] =;

/* Mono 1 Mixer */
static const struct snd_kcontrol_new ak4535_mono1_mixer_controls[] =;

/* Stereo Mixer */
static const struct snd_kcontrol_new ak4535_stereo_mixer_controls[] =;

/* Input Mixer */
static const struct snd_kcontrol_new ak4535_input_mixer_controls[] =;

/* Input mux */
static const struct snd_kcontrol_new ak4535_input_mux_control =;

/* HP L switch */
static const struct snd_kcontrol_new ak4535_hpl_control =;

/* HP R switch */
static const struct snd_kcontrol_new ak4535_hpr_control =;

/* mono 2 switch */
static const struct snd_kcontrol_new ak4535_mono2_control =;

/* Line out switch */
static const struct snd_kcontrol_new ak4535_line_control =;

/* ak4535 dapm widgets */
static const struct snd_soc_dapm_widget ak4535_dapm_widgets[] =;

static const struct snd_soc_dapm_route ak4535_audio_map[] =;

static int ak4535_set_dai_sysclk(struct snd_soc_dai *codec_dai,
	int clk_id, unsigned int freq, int dir)
{}

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

static int ak4535_set_dai_fmt(struct snd_soc_dai *codec_dai,
		unsigned int fmt)
{}

static int ak4535_mute(struct snd_soc_dai *dai, int mute, int direction)
{}

static int ak4535_set_bias_level(struct snd_soc_component *component,
	enum snd_soc_bias_level level)
{}

#define AK4535_RATES

static const struct snd_soc_dai_ops ak4535_dai_ops =;

static struct snd_soc_dai_driver ak4535_dai =;

static int ak4535_resume(struct snd_soc_component *component)
{}

static const struct regmap_config ak4535_regmap =;

static const struct snd_soc_component_driver soc_component_dev_ak4535 =;

static int ak4535_i2c_probe(struct i2c_client *i2c)
{}

static const struct i2c_device_id ak4535_i2c_id[] =;
MODULE_DEVICE_TABLE(i2c, ak4535_i2c_id);

static struct i2c_driver ak4535_i2c_driver =;

module_i2c_driver();

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_LICENSE();