diff mbox series

pinctrl: meson: fix pinconf bias disable

Message ID 20181023160319.27003-1-jbrunet@baylibre.com
State Accepted
Commit e39f9dd8206ad66992ac0e6218ef1ba746f2cce9
Headers show
Series pinctrl: meson: fix pinconf bias disable | expand

Commit Message

Jerome Brunet Oct. 23, 2018, 4:03 p.m. UTC
If a bias is enabled on a pin of an Amlogic SoC, calling .pin_config_set()
with PIN_CONFIG_BIAS_DISABLE will not disable the bias. Instead it will
force a pull-down bias on the pin.

Instead of the pull type register bank, the driver should access the pull
enable register bank.

Fixes: 6ac730951104 ("pinctrl: add driver for Amlogic Meson SoCs")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>

---
 drivers/pinctrl/meson/pinctrl-meson.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.17.2

Comments

Neil Armstrong Oct. 24, 2018, 1:25 p.m. UTC | #1
On 23/10/2018 18:03, Jerome Brunet wrote:
> If a bias is enabled on a pin of an Amlogic SoC, calling .pin_config_set()

> with PIN_CONFIG_BIAS_DISABLE will not disable the bias. Instead it will

> force a pull-down bias on the pin.

> 

> Instead of the pull type register bank, the driver should access the pull

> enable register bank.

> 

> Fixes: 6ac730951104 ("pinctrl: add driver for Amlogic Meson SoCs")

> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>

> ---

>  drivers/pinctrl/meson/pinctrl-meson.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c

> index 29a458da78db..4f3ab18636a3 100644

> --- a/drivers/pinctrl/meson/pinctrl-meson.c

> +++ b/drivers/pinctrl/meson/pinctrl-meson.c

> @@ -192,7 +192,7 @@ static int meson_pinconf_set(struct pinctrl_dev *pcdev, unsigned int pin,

>  			dev_dbg(pc->dev, "pin %u: disable bias\n", pin);

>  

>  			meson_calc_reg_and_bit(bank, pin, REG_PULL, &reg, &bit);

> -			ret = regmap_update_bits(pc->reg_pull, reg,

> +			ret = regmap_update_bits(pc->reg_pullen, reg,

>  						 BIT(bit), 0);

>  			if (ret)

>  				return ret;

> 


Acked-by: Neil Armstrong <narmstrong@baylibre.com>


Nice catch !

Neil
diff mbox series

Patch

diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c
index 29a458da78db..4f3ab18636a3 100644
--- a/drivers/pinctrl/meson/pinctrl-meson.c
+++ b/drivers/pinctrl/meson/pinctrl-meson.c
@@ -192,7 +192,7 @@  static int meson_pinconf_set(struct pinctrl_dev *pcdev, unsigned int pin,
 			dev_dbg(pc->dev, "pin %u: disable bias\n", pin);
 
 			meson_calc_reg_and_bit(bank, pin, REG_PULL, &reg, &bit);
-			ret = regmap_update_bits(pc->reg_pull, reg,
+			ret = regmap_update_bits(pc->reg_pullen, reg,
 						 BIT(bit), 0);
 			if (ret)
 				return ret;