mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-19 00:55:18 +00:00
ASoC: cs42l51: replace codec to component
Now we can replace Codec to Component. Let's do it. Note: xxx_codec_xxx() -> xxx_component_xxx() .idle_bias_off = 0 -> .idle_bias_on = 1 .ignore_pmdown_time = 0 -> .use_pmdown_time = 1 - -> .endianness = 1 - -> .non_legacy_dai_naming = 1 Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
7928b2cbe5
commit
1fa49856cb
2 changed files with 41 additions and 48 deletions
|
@ -35,20 +35,12 @@ static int cs42l51_i2c_probe(struct i2c_client *i2c,
|
||||||
return cs42l51_probe(&i2c->dev, devm_regmap_init_i2c(i2c, &config));
|
return cs42l51_probe(&i2c->dev, devm_regmap_init_i2c(i2c, &config));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cs42l51_i2c_remove(struct i2c_client *i2c)
|
|
||||||
{
|
|
||||||
snd_soc_unregister_codec(&i2c->dev);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct i2c_driver cs42l51_i2c_driver = {
|
static struct i2c_driver cs42l51_i2c_driver = {
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "cs42l51",
|
.name = "cs42l51",
|
||||||
.of_match_table = cs42l51_of_match,
|
.of_match_table = cs42l51_of_match,
|
||||||
},
|
},
|
||||||
.probe = cs42l51_i2c_probe,
|
.probe = cs42l51_i2c_probe,
|
||||||
.remove = cs42l51_i2c_remove,
|
|
||||||
.id_table = cs42l51_i2c_id,
|
.id_table = cs42l51_i2c_id,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -54,8 +54,8 @@ struct cs42l51_private {
|
||||||
static int cs42l51_get_chan_mix(struct snd_kcontrol *kcontrol,
|
static int cs42l51_get_chan_mix(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
|
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||||
unsigned long value = snd_soc_read(codec, CS42L51_PCM_MIXER)&3;
|
unsigned long value = snd_soc_component_read32(component, CS42L51_PCM_MIXER)&3;
|
||||||
|
|
||||||
switch (value) {
|
switch (value) {
|
||||||
default:
|
default:
|
||||||
|
@ -82,7 +82,7 @@ static int cs42l51_get_chan_mix(struct snd_kcontrol *kcontrol,
|
||||||
static int cs42l51_set_chan_mix(struct snd_kcontrol *kcontrol,
|
static int cs42l51_set_chan_mix(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
|
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||||
unsigned char val;
|
unsigned char val;
|
||||||
|
|
||||||
switch (ucontrol->value.enumerated.item[0]) {
|
switch (ucontrol->value.enumerated.item[0]) {
|
||||||
|
@ -98,7 +98,7 @@ static int cs42l51_set_chan_mix(struct snd_kcontrol *kcontrol,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
snd_soc_write(codec, CS42L51_PCM_MIXER, val);
|
snd_soc_component_write(component, CS42L51_PCM_MIXER, val);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -153,17 +153,17 @@ static const struct snd_kcontrol_new cs42l51_snd_controls[] = {
|
||||||
static int cs42l51_pdn_event(struct snd_soc_dapm_widget *w,
|
static int cs42l51_pdn_event(struct snd_soc_dapm_widget *w,
|
||||||
struct snd_kcontrol *kcontrol, int event)
|
struct snd_kcontrol *kcontrol, int event)
|
||||||
{
|
{
|
||||||
struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
|
struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
|
||||||
|
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case SND_SOC_DAPM_PRE_PMD:
|
case SND_SOC_DAPM_PRE_PMD:
|
||||||
snd_soc_update_bits(codec, CS42L51_POWER_CTL1,
|
snd_soc_component_update_bits(component, CS42L51_POWER_CTL1,
|
||||||
CS42L51_POWER_CTL1_PDN,
|
CS42L51_POWER_CTL1_PDN,
|
||||||
CS42L51_POWER_CTL1_PDN);
|
CS42L51_POWER_CTL1_PDN);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
case SND_SOC_DAPM_POST_PMD:
|
case SND_SOC_DAPM_POST_PMD:
|
||||||
snd_soc_update_bits(codec, CS42L51_POWER_CTL1,
|
snd_soc_component_update_bits(component, CS42L51_POWER_CTL1,
|
||||||
CS42L51_POWER_CTL1_PDN, 0);
|
CS42L51_POWER_CTL1_PDN, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -263,8 +263,8 @@ static const struct snd_soc_dapm_route cs42l51_routes[] = {
|
||||||
static int cs42l51_set_dai_fmt(struct snd_soc_dai *codec_dai,
|
static int cs42l51_set_dai_fmt(struct snd_soc_dai *codec_dai,
|
||||||
unsigned int format)
|
unsigned int format)
|
||||||
{
|
{
|
||||||
struct snd_soc_codec *codec = codec_dai->codec;
|
struct snd_soc_component *component = codec_dai->component;
|
||||||
struct cs42l51_private *cs42l51 = snd_soc_codec_get_drvdata(codec);
|
struct cs42l51_private *cs42l51 = snd_soc_component_get_drvdata(component);
|
||||||
|
|
||||||
switch (format & SND_SOC_DAIFMT_FORMAT_MASK) {
|
switch (format & SND_SOC_DAIFMT_FORMAT_MASK) {
|
||||||
case SND_SOC_DAIFMT_I2S:
|
case SND_SOC_DAIFMT_I2S:
|
||||||
|
@ -273,7 +273,7 @@ static int cs42l51_set_dai_fmt(struct snd_soc_dai *codec_dai,
|
||||||
cs42l51->audio_mode = format & SND_SOC_DAIFMT_FORMAT_MASK;
|
cs42l51->audio_mode = format & SND_SOC_DAIFMT_FORMAT_MASK;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dev_err(codec->dev, "invalid DAI format\n");
|
dev_err(component->dev, "invalid DAI format\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,7 +285,7 @@ static int cs42l51_set_dai_fmt(struct snd_soc_dai *codec_dai,
|
||||||
cs42l51->func = MODE_SLAVE_AUTO;
|
cs42l51->func = MODE_SLAVE_AUTO;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dev_err(codec->dev, "Unknown master/slave configuration\n");
|
dev_err(component->dev, "Unknown master/slave configuration\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -326,8 +326,8 @@ static struct cs42l51_ratios slave_auto_ratios[] = {
|
||||||
static int cs42l51_set_dai_sysclk(struct snd_soc_dai *codec_dai,
|
static int cs42l51_set_dai_sysclk(struct snd_soc_dai *codec_dai,
|
||||||
int clk_id, unsigned int freq, int dir)
|
int clk_id, unsigned int freq, int dir)
|
||||||
{
|
{
|
||||||
struct snd_soc_codec *codec = codec_dai->codec;
|
struct snd_soc_component *component = codec_dai->component;
|
||||||
struct cs42l51_private *cs42l51 = snd_soc_codec_get_drvdata(codec);
|
struct cs42l51_private *cs42l51 = snd_soc_component_get_drvdata(component);
|
||||||
|
|
||||||
cs42l51->mclk = freq;
|
cs42l51->mclk = freq;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -337,8 +337,8 @@ static int cs42l51_hw_params(struct snd_pcm_substream *substream,
|
||||||
struct snd_pcm_hw_params *params,
|
struct snd_pcm_hw_params *params,
|
||||||
struct snd_soc_dai *dai)
|
struct snd_soc_dai *dai)
|
||||||
{
|
{
|
||||||
struct snd_soc_codec *codec = dai->codec;
|
struct snd_soc_component *component = dai->component;
|
||||||
struct cs42l51_private *cs42l51 = snd_soc_codec_get_drvdata(codec);
|
struct cs42l51_private *cs42l51 = snd_soc_component_get_drvdata(component);
|
||||||
int ret;
|
int ret;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
unsigned int rate;
|
unsigned int rate;
|
||||||
|
@ -370,12 +370,12 @@ static int cs42l51_hw_params(struct snd_pcm_substream *substream,
|
||||||
|
|
||||||
if (i == nr_ratios) {
|
if (i == nr_ratios) {
|
||||||
/* We did not find a matching ratio */
|
/* We did not find a matching ratio */
|
||||||
dev_err(codec->dev, "could not find matching ratio\n");
|
dev_err(component->dev, "could not find matching ratio\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
intf_ctl = snd_soc_read(codec, CS42L51_INTF_CTL);
|
intf_ctl = snd_soc_component_read32(component, CS42L51_INTF_CTL);
|
||||||
power_ctl = snd_soc_read(codec, CS42L51_MIC_POWER_CTL);
|
power_ctl = snd_soc_component_read32(component, CS42L51_MIC_POWER_CTL);
|
||||||
|
|
||||||
intf_ctl &= ~(CS42L51_INTF_CTL_MASTER | CS42L51_INTF_CTL_ADC_I2S
|
intf_ctl &= ~(CS42L51_INTF_CTL_MASTER | CS42L51_INTF_CTL_ADC_I2S
|
||||||
| CS42L51_INTF_CTL_DAC_FORMAT(7));
|
| CS42L51_INTF_CTL_DAC_FORMAT(7));
|
||||||
|
@ -418,24 +418,24 @@ static int cs42l51_hw_params(struct snd_pcm_substream *substream,
|
||||||
fmt = CS42L51_DAC_DIF_RJ24;
|
fmt = CS42L51_DAC_DIF_RJ24;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dev_err(codec->dev, "unknown format\n");
|
dev_err(component->dev, "unknown format\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
intf_ctl |= CS42L51_INTF_CTL_DAC_FORMAT(fmt);
|
intf_ctl |= CS42L51_INTF_CTL_DAC_FORMAT(fmt);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dev_err(codec->dev, "unknown format\n");
|
dev_err(component->dev, "unknown format\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ratios[i].mclk)
|
if (ratios[i].mclk)
|
||||||
power_ctl |= CS42L51_MIC_POWER_CTL_MCLK_DIV2;
|
power_ctl |= CS42L51_MIC_POWER_CTL_MCLK_DIV2;
|
||||||
|
|
||||||
ret = snd_soc_write(codec, CS42L51_INTF_CTL, intf_ctl);
|
ret = snd_soc_component_write(component, CS42L51_INTF_CTL, intf_ctl);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = snd_soc_write(codec, CS42L51_MIC_POWER_CTL, power_ctl);
|
ret = snd_soc_component_write(component, CS42L51_MIC_POWER_CTL, power_ctl);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -444,18 +444,18 @@ static int cs42l51_hw_params(struct snd_pcm_substream *substream,
|
||||||
|
|
||||||
static int cs42l51_dai_mute(struct snd_soc_dai *dai, int mute)
|
static int cs42l51_dai_mute(struct snd_soc_dai *dai, int mute)
|
||||||
{
|
{
|
||||||
struct snd_soc_codec *codec = dai->codec;
|
struct snd_soc_component *component = dai->component;
|
||||||
int reg;
|
int reg;
|
||||||
int mask = CS42L51_DAC_OUT_CTL_DACA_MUTE|CS42L51_DAC_OUT_CTL_DACB_MUTE;
|
int mask = CS42L51_DAC_OUT_CTL_DACA_MUTE|CS42L51_DAC_OUT_CTL_DACB_MUTE;
|
||||||
|
|
||||||
reg = snd_soc_read(codec, CS42L51_DAC_OUT_CTL);
|
reg = snd_soc_component_read32(component, CS42L51_DAC_OUT_CTL);
|
||||||
|
|
||||||
if (mute)
|
if (mute)
|
||||||
reg |= mask;
|
reg |= mask;
|
||||||
else
|
else
|
||||||
reg &= ~mask;
|
reg &= ~mask;
|
||||||
|
|
||||||
return snd_soc_write(codec, CS42L51_DAC_OUT_CTL, reg);
|
return snd_soc_component_write(component, CS42L51_DAC_OUT_CTL, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct snd_soc_dai_ops cs42l51_dai_ops = {
|
static const struct snd_soc_dai_ops cs42l51_dai_ops = {
|
||||||
|
@ -484,7 +484,7 @@ static struct snd_soc_dai_driver cs42l51_dai = {
|
||||||
.ops = &cs42l51_dai_ops,
|
.ops = &cs42l51_dai_ops,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int cs42l51_codec_probe(struct snd_soc_codec *codec)
|
static int cs42l51_component_probe(struct snd_soc_component *component)
|
||||||
{
|
{
|
||||||
int ret, reg;
|
int ret, reg;
|
||||||
|
|
||||||
|
@ -497,24 +497,25 @@ static int cs42l51_codec_probe(struct snd_soc_codec *codec)
|
||||||
*/
|
*/
|
||||||
reg = CS42L51_DAC_CTL_DATA_SEL(1)
|
reg = CS42L51_DAC_CTL_DATA_SEL(1)
|
||||||
| CS42L51_DAC_CTL_AMUTE | CS42L51_DAC_CTL_DACSZ(0);
|
| CS42L51_DAC_CTL_AMUTE | CS42L51_DAC_CTL_DACSZ(0);
|
||||||
ret = snd_soc_write(codec, CS42L51_DAC_CTL, reg);
|
ret = snd_soc_component_write(component, CS42L51_DAC_CTL, reg);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct snd_soc_codec_driver soc_codec_device_cs42l51 = {
|
static const struct snd_soc_component_driver soc_component_device_cs42l51 = {
|
||||||
.probe = cs42l51_codec_probe,
|
.probe = cs42l51_component_probe,
|
||||||
|
.controls = cs42l51_snd_controls,
|
||||||
.component_driver = {
|
.num_controls = ARRAY_SIZE(cs42l51_snd_controls),
|
||||||
.controls = cs42l51_snd_controls,
|
.dapm_widgets = cs42l51_dapm_widgets,
|
||||||
.num_controls = ARRAY_SIZE(cs42l51_snd_controls),
|
.num_dapm_widgets = ARRAY_SIZE(cs42l51_dapm_widgets),
|
||||||
.dapm_widgets = cs42l51_dapm_widgets,
|
.dapm_routes = cs42l51_routes,
|
||||||
.num_dapm_widgets = ARRAY_SIZE(cs42l51_dapm_widgets),
|
.num_dapm_routes = ARRAY_SIZE(cs42l51_routes),
|
||||||
.dapm_routes = cs42l51_routes,
|
.idle_bias_on = 1,
|
||||||
.num_dapm_routes = ARRAY_SIZE(cs42l51_routes),
|
.use_pmdown_time = 1,
|
||||||
},
|
.endianness = 1,
|
||||||
|
.non_legacy_dai_naming = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct regmap_config cs42l51_regmap = {
|
const struct regmap_config cs42l51_regmap = {
|
||||||
|
@ -555,8 +556,8 @@ int cs42l51_probe(struct device *dev, struct regmap *regmap)
|
||||||
dev_info(dev, "Cirrus Logic CS42L51, Revision: %02X\n",
|
dev_info(dev, "Cirrus Logic CS42L51, Revision: %02X\n",
|
||||||
val & CS42L51_CHIP_REV_MASK);
|
val & CS42L51_CHIP_REV_MASK);
|
||||||
|
|
||||||
ret = snd_soc_register_codec(dev,
|
ret = devm_snd_soc_register_component(dev,
|
||||||
&soc_codec_device_cs42l51, &cs42l51_dai, 1);
|
&soc_component_device_cs42l51, &cs42l51_dai, 1);
|
||||||
error:
|
error:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue