ASoC: tlv320aic26: 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:
Kuninori Morimoto 2018-01-29 04:13:13 +00:00 committed by Mark Brown
parent 7928b2cbe5
commit 1514613a7a
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -30,7 +30,7 @@ MODULE_LICENSE("GPL");
struct aic26 { struct aic26 {
struct spi_device *spi; struct spi_device *spi;
struct regmap *regmap; struct regmap *regmap;
struct snd_soc_codec *codec; struct snd_soc_component *component;
int master; int master;
int datfm; int datfm;
int mclk; int mclk;
@ -64,8 +64,8 @@ static int aic26_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 aic26 *aic26 = snd_soc_codec_get_drvdata(codec); struct aic26 *aic26 = snd_soc_component_get_drvdata(component);
int fsref, divisor, wlen, pval, jval, dval, qval; int fsref, divisor, wlen, pval, jval, dval, qval;
u16 reg; u16 reg;
@ -112,20 +112,20 @@ static int aic26_hw_params(struct snd_pcm_substream *substream,
dev_dbg(&aic26->spi->dev, "Setting PLLM to %d.%04d\n", jval, dval); dev_dbg(&aic26->spi->dev, "Setting PLLM to %d.%04d\n", jval, dval);
qval = 0; qval = 0;
reg = 0x8000 | qval << 11 | pval << 8 | jval << 2; reg = 0x8000 | qval << 11 | pval << 8 | jval << 2;
snd_soc_write(codec, AIC26_REG_PLL_PROG1, reg); snd_soc_component_write(component, AIC26_REG_PLL_PROG1, reg);
reg = dval << 2; reg = dval << 2;
snd_soc_write(codec, AIC26_REG_PLL_PROG2, reg); snd_soc_component_write(component, AIC26_REG_PLL_PROG2, reg);
/* Audio Control 3 (master mode, fsref rate) */ /* Audio Control 3 (master mode, fsref rate) */
if (aic26->master) if (aic26->master)
reg = 0x0800; reg = 0x0800;
if (fsref == 48000) if (fsref == 48000)
reg = 0x2000; reg = 0x2000;
snd_soc_update_bits(codec, AIC26_REG_AUDIO_CTRL3, 0xf800, reg); snd_soc_component_update_bits(component, AIC26_REG_AUDIO_CTRL3, 0xf800, reg);
/* Audio Control 1 (FSref divisor) */ /* Audio Control 1 (FSref divisor) */
reg = wlen | aic26->datfm | (divisor << 3) | divisor; reg = wlen | aic26->datfm | (divisor << 3) | divisor;
snd_soc_update_bits(codec, AIC26_REG_AUDIO_CTRL1, 0xfff, reg); snd_soc_component_update_bits(component, AIC26_REG_AUDIO_CTRL1, 0xfff, reg);
return 0; return 0;
} }
@ -135,8 +135,8 @@ static int aic26_hw_params(struct snd_pcm_substream *substream,
*/ */
static int aic26_mute(struct snd_soc_dai *dai, int mute) static int aic26_mute(struct snd_soc_dai *dai, int mute)
{ {
struct snd_soc_codec *codec = dai->codec; struct snd_soc_component *component = dai->component;
struct aic26 *aic26 = snd_soc_codec_get_drvdata(codec); struct aic26 *aic26 = snd_soc_component_get_drvdata(component);
u16 reg; u16 reg;
dev_dbg(&aic26->spi->dev, "aic26_mute(dai=%p, mute=%i)\n", dev_dbg(&aic26->spi->dev, "aic26_mute(dai=%p, mute=%i)\n",
@ -146,7 +146,7 @@ static int aic26_mute(struct snd_soc_dai *dai, int mute)
reg = 0x8080; reg = 0x8080;
else else
reg = 0; reg = 0;
snd_soc_update_bits(codec, AIC26_REG_DAC_GAIN, 0x8000, reg); snd_soc_component_update_bits(component, AIC26_REG_DAC_GAIN, 0x8000, reg);
return 0; return 0;
} }
@ -154,8 +154,8 @@ static int aic26_mute(struct snd_soc_dai *dai, int mute)
static int aic26_set_sysclk(struct snd_soc_dai *codec_dai, static int aic26_set_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 aic26 *aic26 = snd_soc_codec_get_drvdata(codec); struct aic26 *aic26 = snd_soc_component_get_drvdata(component);
dev_dbg(&aic26->spi->dev, "aic26_set_sysclk(dai=%p, clk_id==%i," dev_dbg(&aic26->spi->dev, "aic26_set_sysclk(dai=%p, clk_id==%i,"
" freq=%i, dir=%i)\n", " freq=%i, dir=%i)\n",
@ -171,8 +171,8 @@ static int aic26_set_sysclk(struct snd_soc_dai *codec_dai,
static int aic26_set_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) static int aic26_set_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
{ {
struct snd_soc_codec *codec = codec_dai->codec; struct snd_soc_component *component = codec_dai->component;
struct aic26 *aic26 = snd_soc_codec_get_drvdata(codec); struct aic26 *aic26 = snd_soc_component_get_drvdata(component);
dev_dbg(&aic26->spi->dev, "aic26_set_fmt(dai=%p, fmt==%i)\n", dev_dbg(&aic26->spi->dev, "aic26_set_fmt(dai=%p, fmt==%i)\n",
codec_dai, fmt); codec_dai, fmt);
@ -265,7 +265,7 @@ static ssize_t aic26_keyclick_show(struct device *dev,
struct aic26 *aic26 = dev_get_drvdata(dev); struct aic26 *aic26 = dev_get_drvdata(dev);
int val, amp, freq, len; int val, amp, freq, len;
val = snd_soc_read(aic26->codec, AIC26_REG_AUDIO_CTRL2); val = snd_soc_component_read32(aic26->component, AIC26_REG_AUDIO_CTRL2);
amp = (val >> 12) & 0x7; amp = (val >> 12) & 0x7;
freq = (125 << ((val >> 8) & 0x7)) >> 1; freq = (125 << ((val >> 8) & 0x7)) >> 1;
len = 2 * (1 + ((val >> 4) & 0xf)); len = 2 * (1 + ((val >> 4) & 0xf));
@ -280,7 +280,7 @@ static ssize_t aic26_keyclick_set(struct device *dev,
{ {
struct aic26 *aic26 = dev_get_drvdata(dev); struct aic26 *aic26 = dev_get_drvdata(dev);
snd_soc_update_bits(aic26->codec, AIC26_REG_AUDIO_CTRL2, snd_soc_component_update_bits(aic26->component, AIC26_REG_AUDIO_CTRL2,
0x8000, 0x800); 0x8000, 0x800);
return count; return count;
@ -291,44 +291,46 @@ static DEVICE_ATTR(keyclick, 0644, aic26_keyclick_show, aic26_keyclick_set);
/* --------------------------------------------------------------------- /* ---------------------------------------------------------------------
* SoC CODEC portion of driver: probe and release routines * SoC CODEC portion of driver: probe and release routines
*/ */
static int aic26_probe(struct snd_soc_codec *codec) static int aic26_probe(struct snd_soc_component *component)
{ {
struct aic26 *aic26 = dev_get_drvdata(codec->dev); struct aic26 *aic26 = dev_get_drvdata(component->dev);
int ret, reg; int ret, reg;
aic26->codec = codec; aic26->component = component;
/* Reset the codec to power on defaults */ /* Reset the codec to power on defaults */
snd_soc_write(codec, AIC26_REG_RESET, 0xBB00); snd_soc_component_write(component, AIC26_REG_RESET, 0xBB00);
/* Power up CODEC */ /* Power up CODEC */
snd_soc_write(codec, AIC26_REG_POWER_CTRL, 0); snd_soc_component_write(component, AIC26_REG_POWER_CTRL, 0);
/* Audio Control 3 (master mode, fsref rate) */ /* Audio Control 3 (master mode, fsref rate) */
reg = snd_soc_read(codec, AIC26_REG_AUDIO_CTRL3); reg = snd_soc_component_read32(component, AIC26_REG_AUDIO_CTRL3);
reg &= ~0xf800; reg &= ~0xf800;
reg |= 0x0800; /* set master mode */ reg |= 0x0800; /* set master mode */
snd_soc_write(codec, AIC26_REG_AUDIO_CTRL3, reg); snd_soc_component_write(component, AIC26_REG_AUDIO_CTRL3, reg);
/* Register the sysfs files for debugging */ /* Register the sysfs files for debugging */
/* Create SysFS files */ /* Create SysFS files */
ret = device_create_file(codec->dev, &dev_attr_keyclick); ret = device_create_file(component->dev, &dev_attr_keyclick);
if (ret) if (ret)
dev_info(codec->dev, "error creating sysfs files\n"); dev_info(component->dev, "error creating sysfs files\n");
return 0; return 0;
} }
static const struct snd_soc_codec_driver aic26_soc_codec_dev = { static const struct snd_soc_component_driver aic26_soc_component_dev = {
.probe = aic26_probe, .probe = aic26_probe,
.component_driver = { .controls = aic26_snd_controls,
.controls = aic26_snd_controls, .num_controls = ARRAY_SIZE(aic26_snd_controls),
.num_controls = ARRAY_SIZE(aic26_snd_controls), .dapm_widgets = tlv320aic26_dapm_widgets,
.dapm_widgets = tlv320aic26_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(tlv320aic26_dapm_widgets),
.num_dapm_widgets = ARRAY_SIZE(tlv320aic26_dapm_widgets), .dapm_routes = tlv320aic26_dapm_routes,
.dapm_routes = tlv320aic26_dapm_routes, .num_dapm_routes = ARRAY_SIZE(tlv320aic26_dapm_routes),
.num_dapm_routes = ARRAY_SIZE(tlv320aic26_dapm_routes), .idle_bias_on = 1,
}, .use_pmdown_time = 1,
.endianness = 1,
.non_legacy_dai_naming = 1,
}; };
static const struct regmap_config aic26_regmap = { static const struct regmap_config aic26_regmap = {
@ -361,23 +363,16 @@ static int aic26_spi_probe(struct spi_device *spi)
dev_set_drvdata(&spi->dev, aic26); dev_set_drvdata(&spi->dev, aic26);
aic26->master = 1; aic26->master = 1;
ret = snd_soc_register_codec(&spi->dev, ret = devm_snd_soc_register_component(&spi->dev,
&aic26_soc_codec_dev, &aic26_dai, 1); &aic26_soc_component_dev, &aic26_dai, 1);
return ret; return ret;
} }
static int aic26_spi_remove(struct spi_device *spi)
{
snd_soc_unregister_codec(&spi->dev);
return 0;
}
static struct spi_driver aic26_spi = { static struct spi_driver aic26_spi = {
.driver = { .driver = {
.name = "tlv320aic26-codec", .name = "tlv320aic26-codec",
}, },
.probe = aic26_spi_probe, .probe = aic26_spi_probe,
.remove = aic26_spi_remove,
}; };
module_spi_driver(aic26_spi); module_spi_driver(aic26_spi);