Commit 15b52f10 authored by Mark Brown's avatar Mark Brown

ASoC: Convert the WM5100 revision A updates to a regmap patch

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 55f7f090
...@@ -1310,10 +1310,7 @@ static const struct snd_soc_dapm_route wm5100_dapm_routes[] = { ...@@ -1310,10 +1310,7 @@ static const struct snd_soc_dapm_route wm5100_dapm_routes[] = {
{ "PWM2", NULL, "PWM2 Driver" }, { "PWM2", NULL, "PWM2 Driver" },
}; };
static struct { static const __devinitdata struct reg_default wm5100_reva_patches[] = {
int reg;
int val;
} wm5100_reva_patches[] = {
{ WM5100_AUDIO_IF_1_10, 0 }, { WM5100_AUDIO_IF_1_10, 0 },
{ WM5100_AUDIO_IF_1_11, 1 }, { WM5100_AUDIO_IF_1_11, 1 },
{ WM5100_AUDIO_IF_1_12, 2 }, { WM5100_AUDIO_IF_1_12, 2 },
...@@ -1376,31 +1373,6 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec, ...@@ -1376,31 +1373,6 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec,
} }
regcache_cache_only(wm5100->regmap, false); regcache_cache_only(wm5100->regmap, false);
switch (wm5100->rev) {
case 0:
regcache_cache_bypass(wm5100->regmap, true);
snd_soc_write(codec, 0x11, 0x3);
snd_soc_write(codec, 0x203, 0xc);
snd_soc_write(codec, 0x206, 0);
snd_soc_write(codec, 0x207, 0xf0);
snd_soc_write(codec, 0x208, 0x3c);
snd_soc_write(codec, 0x209, 0);
snd_soc_write(codec, 0x211, 0x20d8);
snd_soc_write(codec, 0x11, 0);
for (i = 0;
i < ARRAY_SIZE(wm5100_reva_patches);
i++)
snd_soc_write(codec,
wm5100_reva_patches[i].reg,
wm5100_reva_patches[i].val);
regcache_cache_bypass(wm5100->regmap, false);
break;
default:
break;
}
regcache_sync(wm5100->regmap); regcache_sync(wm5100->regmap);
} }
break; break;
...@@ -2703,6 +2675,22 @@ static __devinit int wm5100_i2c_probe(struct i2c_client *i2c, ...@@ -2703,6 +2675,22 @@ static __devinit int wm5100_i2c_probe(struct i2c_client *i2c,
goto err_reset; goto err_reset;
} }
switch (wm5100->rev) {
case 0:
ret = regmap_register_patch(wm5100->regmap,
wm5100_reva_patches,
ARRAY_SIZE(wm5100_reva_patches));
if (ret != 0) {
dev_err(&i2c->dev, "Failed to register patches: %d\n",
ret);
goto err_reset;
}
break;
default:
break;
}
wm5100_init_gpio(i2c); wm5100_init_gpio(i2c);
for (i = 0; i < ARRAY_SIZE(wm5100->pdata.gpio_defaults); i++) { for (i = 0; i < ARRAY_SIZE(wm5100->pdata.gpio_defaults); i++) {
......
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