diff options
Diffstat (limited to 'target/linux/at91/patches-5.15/154-pinctrl-at91-pio4-Fix-slew-rate-disablement.patch')
-rw-r--r-- | target/linux/at91/patches-5.15/154-pinctrl-at91-pio4-Fix-slew-rate-disablement.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/target/linux/at91/patches-5.15/154-pinctrl-at91-pio4-Fix-slew-rate-disablement.patch b/target/linux/at91/patches-5.15/154-pinctrl-at91-pio4-Fix-slew-rate-disablement.patch new file mode 100644 index 0000000000..c61e6b1c90 --- /dev/null +++ b/target/linux/at91/patches-5.15/154-pinctrl-at91-pio4-Fix-slew-rate-disablement.patch @@ -0,0 +1,49 @@ +From dc07cbae6e96843d26e8f10b16e901620bd16462 Mon Sep 17 00:00:00 2001 +From: Tudor Ambarus <tudor.ambarus@microchip.com> +Date: Fri, 9 Apr 2021 11:25:22 +0300 +Subject: [PATCH 154/247] pinctrl: at91-pio4: Fix slew rate disablement + +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: c709135e576b ("pinctrl: at91-pio4: add support for slew-rate") +Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> +Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com> +Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com> +Link: https://lore.kernel.org/r/20210409082522.625168-1-tudor.ambarus@microchip.com +Signed-off-by: Linus Walleij <linus.walleij@linaro.org> +--- + drivers/pinctrl/pinctrl-at91-pio4.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- 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_s + + 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_s + 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); |