Skip to content

Commit

Permalink
ASoC: ak4458: correct reset polarity
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Linus Walleij <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
  • Loading branch information
eliotb authored and broonie committed Jan 25, 2021
1 parent 1d8fe06 commit e953dae
Showing 1 changed file with 7 additions and 15 deletions.
22 changes: 7 additions & 15 deletions sound/soc/codecs/ak4458.c
Original file line number Diff line number Diff line change
Expand Up @@ -595,18 +595,10 @@ static struct snd_soc_dai_driver ak4497_dai = {
.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) {
gpiod_set_value_cansleep(ak4458->reset_gpiod, 0);
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);
gpiod_set_value_cansleep(ak4458->reset_gpiod, active);
usleep_range(1000, 2000);
}
}
Expand All @@ -620,7 +612,7 @@ static int ak4458_init(struct snd_soc_component *component)
if (ak4458->mute_gpiod)
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,
0x80, 0x80); /* ACKS bit = 1; 10000000 */
Expand Down Expand Up @@ -650,7 +642,7 @@ static void ak4458_remove(struct snd_soc_component *component)
{
struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component);

ak4458_power_off(ak4458);
ak4458_reset(ak4458, true);
}

#ifdef CONFIG_PM
Expand All @@ -660,7 +652,7 @@ static int __maybe_unused ak4458_runtime_suspend(struct device *dev)

regcache_cache_only(ak4458->regmap, true);

ak4458_power_off(ak4458);
ak4458_reset(ak4458, true);

if (ak4458->mute_gpiod)
gpiod_set_value_cansleep(ak4458->mute_gpiod, 0);
Expand All @@ -685,8 +677,8 @@ static int __maybe_unused ak4458_runtime_resume(struct device *dev)
if (ak4458->mute_gpiod)
gpiod_set_value_cansleep(ak4458->mute_gpiod, 1);

ak4458_power_off(ak4458);
ak4458_power_on(ak4458);
ak4458_reset(ak4458, true);
ak4458_reset(ak4458, false);

regcache_cache_only(ak4458->regmap, false);
regcache_mark_dirty(ak4458->regmap);
Expand Down

0 comments on commit e953dae

Please sign in to comment.