Skip to content

Commit

Permalink
ASoC: pcm3168a: Update the RST gpio handling to align with documentation
Browse files Browse the repository at this point in the history
The RST (reset-gpios) is low active so the driver must handle it
accordingly.

Add comments to explain clearly how the line is used.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Link: https://lore.kernel.org/r/20191120131753.6831-3-peter.ujfalusi@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Peter Ujfalusi authored and Mark Brown committed Nov 20, 2019
1 parent 103e5d7 commit 4ec48e7
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions sound/soc/codecs/pcm3168a.c
Original file line number Diff line number Diff line change
Expand Up @@ -707,11 +707,15 @@ int pcm3168a_probe(struct device *dev, struct regmap *regmap)
dev_set_drvdata(dev, pcm3168a);

/*
* Request the RST gpio line as non exclusive as the same reset line
* might be connected to multiple pcm3168a codec
* Request the reset (connected to RST pin) gpio line as non exclusive
* as the same reset line might be connected to multiple pcm3168a codec
*
* The RST is low active, we want the GPIO line to be high initially, so
* request the initial level to LOW which in practice means DEASSERTED:
* The deasserted level of GPIO_ACTIVE_LOW is HIGH.
*/
pcm3168a->gpio_rst = devm_gpiod_get_optional(dev, "rst",
GPIOD_OUT_HIGH |
pcm3168a->gpio_rst = devm_gpiod_get_optional(dev, "reset",
GPIOD_OUT_LOW |
GPIOD_FLAGS_BIT_NONEXCLUSIVE);
if (IS_ERR(pcm3168a->gpio_rst)) {
ret = PTR_ERR(pcm3168a->gpio_rst);
Expand Down Expand Up @@ -814,7 +818,13 @@ void pcm3168a_remove(struct device *dev)
{
struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev);

gpiod_set_value_cansleep(pcm3168a->gpio_rst, 0);
/*
* The RST is low active, we want the GPIO line to be low when the
* driver is removed, so set level to 1 which in practice means
* ASSERTED:
* The asserted level of GPIO_ACTIVE_LOW is LOW.
*/
gpiod_set_value_cansleep(pcm3168a->gpio_rst, 1);
pm_runtime_disable(dev);
#ifndef CONFIG_PM
pcm3168a_disable(dev);
Expand Down

0 comments on commit 4ec48e7

Please sign in to comment.