[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b85dae59-d3fa-33fe-9b38-b441169d0765@microchip.com>
Date: Fri, 9 Apr 2021 09:59:42 +0000
From: <Claudiu.Beznea@...rochip.com>
To: <Tudor.Ambarus@...rochip.com>, <Ludovic.Desroches@...rochip.com>,
<linus.walleij@...aro.org>
CC: <Nicolas.Ferre@...rochip.com>, <alexandre.belloni@...tlin.com>,
<linux-arm-kernel@...ts.infradead.org>,
<linux-gpio@...r.kernel.org>, <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] pinctrl: at91-pio4: Fix slew rate disablement
On 09.04.2021 11:25, Tudor Ambarus wrote:
> The slew rate was enabled by default for each configuration of the
> pin. In case the pin had more than one configuration, even if
> we set the slew rate as disabled in the device tree, the next pin
> configuration would set again the slew rate enabled by default,
> overwriting the slew rate disablement.
> Instead of enabling the slew rate by default for each pin configuration,
> enable the slew rate by default just once per pin, regardless of the
> number of configurations. This way the slew rate disablement will also
> work for cases where pins have multiple configurations.
>
> Fixes: 440b144978ba ("pinctrl: at91-pio4: add support for slew-rate")
> Signed-off-by: Tudor Ambarus <tudor.ambarus@...rochip.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@...rochip.com>
> ---
> drivers/pinctrl/pinctrl-at91-pio4.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/pinctrl/pinctrl-at91-pio4.c b/drivers/pinctrl/pinctrl-at91-pio4.c
> index a5d328808e4c..4c01d8471ffa 100644
> --- a/drivers/pinctrl/pinctrl-at91-pio4.c
> +++ b/drivers/pinctrl/pinctrl-at91-pio4.c
> @@ -801,6 +801,10 @@ static int atmel_conf_pin_config_group_set(struct pinctrl_dev *pctldev,
>
> conf = atmel_pin_config_read(pctldev, pin_id);
>
> + /* Keep slew rate enabled by default. */
> + if (atmel_pioctrl->slew_rate_support)
> + conf |= ATMEL_PIO_SR_MASK;
> +
> for (i = 0; i < num_configs; i++) {
> unsigned int param = pinconf_to_config_param(configs[i]);
> unsigned int arg = pinconf_to_config_argument(configs[i]);
> @@ -808,10 +812,6 @@ static int atmel_conf_pin_config_group_set(struct pinctrl_dev *pctldev,
> dev_dbg(pctldev->dev, "%s: pin=%u, config=0x%lx\n",
> __func__, pin_id, configs[i]);
>
> - /* Keep slew rate enabled by default. */
> - if (atmel_pioctrl->slew_rate_support)
> - conf |= ATMEL_PIO_SR_MASK;
> -
> switch (param) {
> case PIN_CONFIG_BIAS_DISABLE:
> conf &= (~ATMEL_PIO_PUEN_MASK);
>
Powered by blists - more mailing lists