linux/sound/soc/codecs/ad193x.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * AD193X Audio Codec driver supporting AD1936/7/8/9
 *
 * Copyright 2010 Analog Devices Inc.
 */

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/initval.h>
#include <sound/soc.h>
#include <sound/tlv.h>

#include "ad193x.h"

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

/*
 * AD193X volume/mute/de-emphasis etc. controls
 */
static const char * const ad193x_deemp[] =;

static SOC_ENUM_SINGLE_DECL(ad193x_deemp_enum, AD193X_DAC_CTRL2, 1,
			    ad193x_deemp);

static const DECLARE_TLV_DB_MINMAX(adau193x_tlv, -9563, 0);

static const unsigned int ad193x_sb[] =;

static struct snd_pcm_hw_constraint_list constr =;

static const struct snd_kcontrol_new ad193x_snd_controls[] =;

static const struct snd_kcontrol_new ad193x_adc_snd_controls[] =;

static const struct snd_soc_dapm_widget ad193x_dapm_widgets[] =;

static const struct snd_soc_dapm_widget ad193x_adc_widgets[] =;

static int ad193x_check_pll(struct snd_soc_dapm_widget *source,
			    struct snd_soc_dapm_widget *sink)
{}

static const struct snd_soc_dapm_route audio_paths[] =;

static const struct snd_soc_dapm_route ad193x_adc_audio_paths[] =;

static inline bool ad193x_has_adc(const struct ad193x_priv *ad193x)
{}

/*
 * DAI ops entries
 */

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

static int ad193x_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
			       unsigned int rx_mask, int slots, int width)
{}

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

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

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

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

static const struct snd_soc_dai_ops ad193x_dai_ops =;

/* codec DAI instance */
static struct snd_soc_dai_driver ad193x_dai =;

/* codec DAI instance for DAC only */
static struct snd_soc_dai_driver ad193x_no_adc_dai =;

/* codec register values to set after reset */
static void ad193x_reg_default_init(struct ad193x_priv *ad193x)
{}

static int ad193x_component_probe(struct snd_soc_component *component)
{}

static const struct snd_soc_component_driver soc_component_dev_ad193x =;

const struct regmap_config ad193x_regmap_config =;
EXPORT_SYMBOL_GPL();

int ad193x_probe(struct device *dev, struct regmap *regmap,
		 enum ad193x_type type)
{}
EXPORT_SYMBOL_GPL();

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