mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-12 01:20:14 +00:00
gpio: da9052: use new line value setter callbacks
struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Link: https://lore.kernel.org/r/20250310-gpiochip-set-conversion-v1-14-03798bb833eb@linaro.org Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
588dfcdb16
commit
489c19cee3
@ -89,30 +89,20 @@ static int da9052_gpio_get(struct gpio_chip *gc, unsigned offset)
|
||||
}
|
||||
}
|
||||
|
||||
static void da9052_gpio_set(struct gpio_chip *gc, unsigned offset, int value)
|
||||
static int da9052_gpio_set(struct gpio_chip *gc, unsigned int offset, int value)
|
||||
{
|
||||
struct da9052_gpio *gpio = gpiochip_get_data(gc);
|
||||
int ret;
|
||||
|
||||
if (da9052_gpio_port_odd(offset)) {
|
||||
ret = da9052_reg_update(gpio->da9052, (offset >> 1) +
|
||||
DA9052_GPIO_0_1_REG,
|
||||
DA9052_GPIO_ODD_PORT_MODE,
|
||||
value << DA9052_GPIO_ODD_SHIFT);
|
||||
if (ret != 0)
|
||||
dev_err(gpio->da9052->dev,
|
||||
"Failed to updated gpio odd reg,%d",
|
||||
ret);
|
||||
} else {
|
||||
ret = da9052_reg_update(gpio->da9052, (offset >> 1) +
|
||||
DA9052_GPIO_0_1_REG,
|
||||
DA9052_GPIO_EVEN_PORT_MODE,
|
||||
value << DA9052_GPIO_EVEN_SHIFT);
|
||||
if (ret != 0)
|
||||
dev_err(gpio->da9052->dev,
|
||||
"Failed to updated gpio even reg,%d",
|
||||
ret);
|
||||
}
|
||||
if (da9052_gpio_port_odd(offset))
|
||||
return da9052_reg_update(gpio->da9052, (offset >> 1) +
|
||||
DA9052_GPIO_0_1_REG,
|
||||
DA9052_GPIO_ODD_PORT_MODE,
|
||||
value << DA9052_GPIO_ODD_SHIFT);
|
||||
|
||||
return da9052_reg_update(gpio->da9052,
|
||||
(offset >> 1) + DA9052_GPIO_0_1_REG,
|
||||
DA9052_GPIO_EVEN_PORT_MODE,
|
||||
value << DA9052_GPIO_EVEN_SHIFT);
|
||||
}
|
||||
|
||||
static int da9052_gpio_direction_input(struct gpio_chip *gc, unsigned offset)
|
||||
@ -182,7 +172,7 @@ static const struct gpio_chip reference_gp = {
|
||||
.label = "da9052-gpio",
|
||||
.owner = THIS_MODULE,
|
||||
.get = da9052_gpio_get,
|
||||
.set = da9052_gpio_set,
|
||||
.set_rv = da9052_gpio_set,
|
||||
.direction_input = da9052_gpio_direction_input,
|
||||
.direction_output = da9052_gpio_direction_output,
|
||||
.to_irq = da9052_gpio_to_irq,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user