Skip to content

Commit

Permalink
mxc_gpio: Correct the GPIO handling in gpio_direction_output()
Browse files Browse the repository at this point in the history
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.

Signed-off-by: Dirk Behme <[email protected]>
Acked-by: Stefano Babic <[email protected]>
  • Loading branch information
dirkbehme authored and sbabic committed Jul 24, 2013
1 parent 5434caf commit 04c79cb
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/gpio/mxc_gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

0 comments on commit 04c79cb

Please sign in to comment.