Commit 79880eba authored by Bartosz Golaszewski's avatar Bartosz Golaszewski
Browse files

gpio: twl6040: set line value in .direction_out()

It's ok for a GPIO controller to be output-only but the .direction_out()
callback must also set the requested line value.

Link: https://lore.kernel.org/r/20250707-gpiochip-set-rv-gpio-round4-v1-9-35668aaaf6d2@linaro.org


Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
parent 77ba4640
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -37,13 +37,6 @@ static int twl6040gpo_get_direction(struct gpio_chip *chip, unsigned offset)
	return GPIO_LINE_DIRECTION_OUT;
}

static int twl6040gpo_direction_out(struct gpio_chip *chip, unsigned offset,
				    int value)
{
	/* This only drives GPOs, and can't change direction */
	return 0;
}

static int twl6040gpo_set(struct gpio_chip *chip, unsigned int offset,
			  int value)
{
@@ -63,6 +56,13 @@ static int twl6040gpo_set(struct gpio_chip *chip, unsigned int offset,
	return twl6040_reg_write(twl6040, TWL6040_REG_GPOCTL, gpoctl);
}

static int twl6040gpo_direction_out(struct gpio_chip *chip, unsigned int offset,
				    int value)
{
	/* This only drives GPOs, and can't change direction */
	return twl6040gpo_set(chip, offset, value);
}

static struct gpio_chip twl6040gpo_chip = {
	.label			= "twl6040",
	.owner			= THIS_MODULE,