2018-10-23 16:08:43

by Jerome Brunet

[permalink] [raw]
Subject: [PATCH] pinctrl: meson: fix pinconf bias disable

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 <[email protected]>
---
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;
--
2.17.2



2018-10-24 13:26:01

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: meson: fix pinconf bias disable

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 <[email protected]>
> ---
> 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 <[email protected]>

Nice catch !

Neil

2018-10-31 09:47:08

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: meson: fix pinconf bias disable

On Tue, Oct 23, 2018 at 6:03 PM Jerome Brunet <[email protected]> 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 <[email protected]>

Patch applied for fixes with Neil's ACK.

Yours,
Linus Walleij