|
@@ -354,17 +354,18 @@ static void twl_set(struct gpio_chip *chip, unsigned offset, int value)
|
|
|
static int twl_direction_out(struct gpio_chip *chip, unsigned offset, int value)
|
|
|
{
|
|
|
struct gpio_twl4030_priv *priv = to_gpio_twl4030(chip);
|
|
|
+ int ret = -EINVAL;
|
|
|
|
|
|
mutex_lock(&priv->mutex);
|
|
|
if (offset < TWL4030_GPIO_MAX)
|
|
|
- twl4030_set_gpio_dataout(offset, value);
|
|
|
+ ret = twl4030_set_gpio_direction(offset, 0);
|
|
|
|
|
|
priv->direction |= BIT(offset);
|
|
|
mutex_unlock(&priv->mutex);
|
|
|
|
|
|
twl_set(chip, offset, value);
|
|
|
|
|
|
- return 0;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
static int twl_to_irq(struct gpio_chip *chip, unsigned offset)
|