[U-Boot] [PATCH] mxs_gpio: fix the handling in gpio_direction_output()

Stefano Babic sbabic at denx.de
Mon Nov 4 10:08:02 CET 2013


Hi Michael,

On 03/11/2013 22:59, Michael Heimpold wrote:
> Setting the direction and an output value should be done by
> 1) set the desired output value,
> 2) switch to output.
> 
> If this is done in the inverse order, there can be a glitch on
> the GPIO line.
> 
> This patch fixes this by using the order as described above.
> 
> Signed-off-by: Michael Heimpold <mhei at heimpold.de>
> ---
>  drivers/gpio/mxs_gpio.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpio/mxs_gpio.c b/drivers/gpio/mxs_gpio.c
> index d9a7a3a..da0199b 100644
> --- a/drivers/gpio/mxs_gpio.c
> +++ b/drivers/gpio/mxs_gpio.c
> @@ -95,10 +95,10 @@ int gpio_direction_output(unsigned gpio, int value)
>  	struct mxs_register_32 *reg =
>  		(struct mxs_register_32 *)(MXS_PINCTRL_BASE + offset);
>  
> -	writel(1 << PAD_PIN(gpio), &reg->reg_set);
> -
>  	gpio_set_value(gpio, value);
>  
> +	writel(1 << PAD_PIN(gpio), &reg->reg_set);
> +

Yes, we had the same fix for mxc (commit
04c79cbd5f8f773aa7823feec6e77862e7e6426f)

Acked-by: Stefano Babic <sbabic at denx.de>

Best regards,
Stefano Babic


-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list