ASoC: pcm3168a: Update the RST gpio handling to align with documentation
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>
This commit is contained in:
Родитель
103e5d734a
Коммит
4ec48e7cbe
|
@ -707,11 +707,15 @@ int pcm3168a_probe(struct device *dev, struct regmap *regmap)
|
||||||
dev_set_drvdata(dev, pcm3168a);
|
dev_set_drvdata(dev, pcm3168a);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Request the RST gpio line as non exclusive as the same reset line
|
* Request the reset (connected to RST pin) gpio line as non exclusive
|
||||||
* might be connected to multiple pcm3168a codec
|
* 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",
|
pcm3168a->gpio_rst = devm_gpiod_get_optional(dev, "reset",
|
||||||
GPIOD_OUT_HIGH |
|
GPIOD_OUT_LOW |
|
||||||
GPIOD_FLAGS_BIT_NONEXCLUSIVE);
|
GPIOD_FLAGS_BIT_NONEXCLUSIVE);
|
||||||
if (IS_ERR(pcm3168a->gpio_rst)) {
|
if (IS_ERR(pcm3168a->gpio_rst)) {
|
||||||
ret = PTR_ERR(pcm3168a->gpio_rst);
|
ret = PTR_ERR(pcm3168a->gpio_rst);
|
||||||
|
@ -814,7 +818,13 @@ void pcm3168a_remove(struct device *dev)
|
||||||
{
|
{
|
||||||
struct pcm3168a_priv *pcm3168a = dev_get_drvdata(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);
|
pm_runtime_disable(dev);
|
||||||
#ifndef CONFIG_PM
|
#ifndef CONFIG_PM
|
||||||
pcm3168a_disable(dev);
|
pcm3168a_disable(dev);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче