Commit de2e87ba authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branch 'asoc/topic/ak4104' into asoc-next

parents 6234eabf a5db4d50
...@@ -51,6 +51,17 @@ struct ak4104_private { ...@@ -51,6 +51,17 @@ struct ak4104_private {
struct regmap *regmap; struct regmap *regmap;
}; };
static const struct snd_soc_dapm_widget ak4104_dapm_widgets[] = {
SND_SOC_DAPM_PGA("TXE", AK4104_REG_TX, AK4104_TX_TXE, 0, NULL, 0),
SND_SOC_DAPM_OUTPUT("TX"),
};
static const struct snd_soc_dapm_route ak4104_dapm_routes[] = {
{ "TXE", NULL, "Playback" },
{ "TX", NULL, "TXE" },
};
static int ak4104_set_dai_fmt(struct snd_soc_dai *codec_dai, static int ak4104_set_dai_fmt(struct snd_soc_dai *codec_dai,
unsigned int format) unsigned int format)
{ {
...@@ -138,29 +149,11 @@ static int ak4104_hw_params(struct snd_pcm_substream *substream, ...@@ -138,29 +149,11 @@ static int ak4104_hw_params(struct snd_pcm_substream *substream,
if (ret < 0) if (ret < 0)
return ret; return ret;
/* enable transmitter */
ret = regmap_update_bits(ak4104->regmap, AK4104_REG_TX,
AK4104_TX_TXE, AK4104_TX_TXE);
if (ret < 0)
return ret;
return 0; return 0;
} }
static int ak4104_hw_free(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
struct snd_soc_codec *codec = dai->codec;
struct ak4104_private *ak4104 = snd_soc_codec_get_drvdata(codec);
/* disable transmitter */
return regmap_update_bits(ak4104->regmap, AK4104_REG_TX,
AK4104_TX_TXE, 0);
}
static const struct snd_soc_dai_ops ak4101_dai_ops = { static const struct snd_soc_dai_ops ak4101_dai_ops = {
.hw_params = ak4104_hw_params, .hw_params = ak4104_hw_params,
.hw_free = ak4104_hw_free,
.set_fmt = ak4104_set_dai_fmt, .set_fmt = ak4104_set_dai_fmt,
}; };
...@@ -214,6 +207,11 @@ static int ak4104_remove(struct snd_soc_codec *codec) ...@@ -214,6 +207,11 @@ static int ak4104_remove(struct snd_soc_codec *codec)
static struct snd_soc_codec_driver soc_codec_device_ak4104 = { static struct snd_soc_codec_driver soc_codec_device_ak4104 = {
.probe = ak4104_probe, .probe = ak4104_probe,
.remove = ak4104_remove, .remove = ak4104_remove,
.dapm_widgets = ak4104_dapm_widgets,
.num_dapm_widgets = ARRAY_SIZE(ak4104_dapm_widgets),
.dapm_routes = ak4104_dapm_routes,
.num_dapm_routes = ARRAY_SIZE(ak4104_dapm_routes),
}; };
static const struct regmap_config ak4104_regmap = { static const struct regmap_config ak4104_regmap = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment