From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Tue, 16 Jul 2013 09:22:29 +0200 Subject: [U-Boot] [PATCH] mxc_gpio: Correct the GPIO handling in gpio_direction_output() In-Reply-To: <1373896707-4204-1-git-send-email-dirk.behme@de.bosch.com> References: <1373896707-4204-1-git-send-email-dirk.behme@de.bosch.com> Message-ID: <51E4F4B5.8040301@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 15/07/2013 15:58, Dirk Behme wrote: > Setting the direction and an output value should be done by > > First, set the desired output value. > > Then, switch to output. > > If this is done in the inverse order, like at the moment, > there can be a glitch on the GPIO line while switching first > the old output value and aftwards the new one. > > Fix this by inverting the order of the direction/set_value > calls. Right, thanks to fix this ! > > Signed-off-by: Dirk Behme > --- > drivers/gpio/mxc_gpio.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c > index a388064..1d820d4 100644 > --- a/drivers/gpio/mxc_gpio.c > +++ b/drivers/gpio/mxc_gpio.c > @@ -143,10 +143,10 @@ int gpio_direction_input(unsigned gpio) > > int gpio_direction_output(unsigned gpio, int value) > { > - int ret = mxc_gpio_direction(gpio, MXC_GPIO_DIRECTION_OUT); > + int ret = gpio_set_value(gpio, value); > > if (ret < 0) > return ret; > > - return gpio_set_value(gpio, value); > + return mxc_gpio_direction(gpio, MXC_GPIO_DIRECTION_OUT); > } > Acked-by: Stefano Babic 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 =====================================================================