mirror of
https://github.com/brain-hackers/linux-brain.git
synced 2024-06-09 07:16:21 +09:00
ASoC: ak4458: correct reset polarity
[ Upstream commit e953daeb68b1abd8a7d44902786349fdeef5c297 ] Reset (aka power off) happens when the reset gpio is made active. Change function name to ak4458_reset to match devicetree property "reset-gpios" Signed-off-by: Eliot Blennerhassett <eliot@blennerhassett.gen.nz> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/ce650f47-4ff6-e486-7846-cc3d033f3601@blennerhassett.gen.nz Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
e96d102502
commit
589cf152fe
|
@ -523,18 +523,10 @@ static struct snd_soc_dai_driver ak4497_dai = {
|
||||||
.ops = &ak4458_dai_ops,
|
.ops = &ak4458_dai_ops,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void ak4458_power_off(struct ak4458_priv *ak4458)
|
static void ak4458_reset(struct ak4458_priv *ak4458, bool active)
|
||||||
{
|
{
|
||||||
if (ak4458->reset_gpiod) {
|
if (ak4458->reset_gpiod) {
|
||||||
gpiod_set_value_cansleep(ak4458->reset_gpiod, 0);
|
gpiod_set_value_cansleep(ak4458->reset_gpiod, active);
|
||||||
usleep_range(1000, 2000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ak4458_power_on(struct ak4458_priv *ak4458)
|
|
||||||
{
|
|
||||||
if (ak4458->reset_gpiod) {
|
|
||||||
gpiod_set_value_cansleep(ak4458->reset_gpiod, 1);
|
|
||||||
usleep_range(1000, 2000);
|
usleep_range(1000, 2000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -548,7 +540,7 @@ static int ak4458_init(struct snd_soc_component *component)
|
||||||
if (ak4458->mute_gpiod)
|
if (ak4458->mute_gpiod)
|
||||||
gpiod_set_value_cansleep(ak4458->mute_gpiod, 1);
|
gpiod_set_value_cansleep(ak4458->mute_gpiod, 1);
|
||||||
|
|
||||||
ak4458_power_on(ak4458);
|
ak4458_reset(ak4458, false);
|
||||||
|
|
||||||
ret = snd_soc_component_update_bits(component, AK4458_00_CONTROL1,
|
ret = snd_soc_component_update_bits(component, AK4458_00_CONTROL1,
|
||||||
0x80, 0x80); /* ACKS bit = 1; 10000000 */
|
0x80, 0x80); /* ACKS bit = 1; 10000000 */
|
||||||
|
@ -571,7 +563,7 @@ static void ak4458_remove(struct snd_soc_component *component)
|
||||||
{
|
{
|
||||||
struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
|
struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);
|
||||||
|
|
||||||
ak4458_power_off(ak4458);
|
ak4458_reset(ak4458, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
|
@ -581,7 +573,7 @@ static int __maybe_unused ak4458_runtime_suspend(struct device *dev)
|
||||||
|
|
||||||
regcache_cache_only(ak4458->regmap, true);
|
regcache_cache_only(ak4458->regmap, true);
|
||||||
|
|
||||||
ak4458_power_off(ak4458);
|
ak4458_reset(ak4458, true);
|
||||||
|
|
||||||
if (ak4458->mute_gpiod)
|
if (ak4458->mute_gpiod)
|
||||||
gpiod_set_value_cansleep(ak4458->mute_gpiod, 0);
|
gpiod_set_value_cansleep(ak4458->mute_gpiod, 0);
|
||||||
|
@ -596,8 +588,8 @@ static int __maybe_unused ak4458_runtime_resume(struct device *dev)
|
||||||
if (ak4458->mute_gpiod)
|
if (ak4458->mute_gpiod)
|
||||||
gpiod_set_value_cansleep(ak4458->mute_gpiod, 1);
|
gpiod_set_value_cansleep(ak4458->mute_gpiod, 1);
|
||||||
|
|
||||||
ak4458_power_off(ak4458);
|
ak4458_reset(ak4458, true);
|
||||||
ak4458_power_on(ak4458);
|
ak4458_reset(ak4458, false);
|
||||||
|
|
||||||
regcache_cache_only(ak4458->regmap, false);
|
regcache_cache_only(ak4458->regmap, false);
|
||||||
regcache_mark_dirty(ak4458->regmap);
|
regcache_mark_dirty(ak4458->regmap);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user