[PATCH 2/2] gpio: stm32: correct the bias management

Patrice CHOTARD patrice.chotard at st.com
Wed Nov 25 10:43:55 CET 2020


Hi Patrick

On 10/28/20 10:49 AM, Patrick Delaunay wrote:
> Use the bias configuration for all the GPIO configurations and not
> only for input GPIO, as indicated in Reference manual
> (Table 81. Port bit configuration table).
>
> Fixes: 43efbb6a3ebf0223f9eab8d45916f602d876319f ("gpio: stm32: add ops get_dir_flags")
> Fixes: f13ff88b61c32ac8f0e9068c41328b265ef619eb ("gpio: stm32: add ops set_dir_flags")
> Signed-off-by: Patrick Delaunay <patrick.delaunay at st.com>
> ---
>
>  drivers/gpio/stm32_gpio.c | 28 ++++++++++++++--------------
>  1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpio/stm32_gpio.c b/drivers/gpio/stm32_gpio.c
> index b885cfb57e..51e1efd701 100644
> --- a/drivers/gpio/stm32_gpio.c
> +++ b/drivers/gpio/stm32_gpio.c
> @@ -212,11 +212,11 @@ static int stm32_gpio_set_dir_flags(struct udevice *dev, unsigned int offset,
>  
>  	} else if (flags & GPIOD_IS_IN) {
>  		stm32_gpio_set_moder(regs, idx, STM32_GPIO_MODE_IN);
> -		if (flags & GPIOD_PULL_UP)
> -			stm32_gpio_set_pupd(regs, idx, STM32_GPIO_PUPD_UP);
> -		else if (flags & GPIOD_PULL_DOWN)
> -			stm32_gpio_set_pupd(regs, idx, STM32_GPIO_PUPD_DOWN);
>  	}
> +	if (flags & GPIOD_PULL_UP)
> +		stm32_gpio_set_pupd(regs, idx, STM32_GPIO_PUPD_UP);
> +	else if (flags & GPIOD_PULL_DOWN)
> +		stm32_gpio_set_pupd(regs, idx, STM32_GPIO_PUPD_DOWN);
>  
>  	return 0;
>  }
> @@ -243,16 +243,16 @@ static int stm32_gpio_get_dir_flags(struct udevice *dev, unsigned int offset,
>  		break;
>  	case STM32_GPIO_MODE_IN:
>  		dir_flags |= GPIOD_IS_IN;
> -		switch (stm32_gpio_get_pupd(regs, idx)) {
> -		case STM32_GPIO_PUPD_UP:
> -			dir_flags |= GPIOD_PULL_UP;
> -			break;
> -		case STM32_GPIO_PUPD_DOWN:
> -			dir_flags |= GPIOD_PULL_DOWN;
> -			break;
> -		default:
> -			break;
> -		}
> +		break;
> +	default:
> +		break;
> +	}
> +	switch (stm32_gpio_get_pupd(regs, idx)) {
> +	case STM32_GPIO_PUPD_UP:
> +		dir_flags |= GPIOD_PULL_UP;
> +		break;
> +	case STM32_GPIO_PUPD_DOWN:
> +		dir_flags |= GPIOD_PULL_DOWN;
>  		break;
>  	default:
>  		break;

Reviewed-by: Patrice Chotard <patrice.chotard at st.com>

Thanks

Patrice


More information about the U-Boot mailing list