mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 16:12:59 +02:00
gpio: raspberrypi-exp: use new GPIO 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. Signed-off-by: Stefan Wahren <wahrenst@gmx.net> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Link: https://lore.kernel.org/r/20250614111216.93677-1-wahrenst@gmx.net Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
bddfad9f7e
commit
3678649357
|
|
@ -175,7 +175,7 @@ static int rpi_exp_gpio_get(struct gpio_chip *gc, unsigned int off)
|
|||
return !!get.state;
|
||||
}
|
||||
|
||||
static void rpi_exp_gpio_set(struct gpio_chip *gc, unsigned int off, int val)
|
||||
static int rpi_exp_gpio_set(struct gpio_chip *gc, unsigned int off, int val)
|
||||
{
|
||||
struct rpi_exp_gpio *gpio;
|
||||
struct gpio_get_set_state set;
|
||||
|
|
@ -188,10 +188,14 @@ static void rpi_exp_gpio_set(struct gpio_chip *gc, unsigned int off, int val)
|
|||
|
||||
ret = rpi_firmware_property(gpio->fw, RPI_FIRMWARE_SET_GPIO_STATE,
|
||||
&set, sizeof(set));
|
||||
if (ret || set.gpio != 0)
|
||||
if (ret || set.gpio != 0) {
|
||||
dev_err(gc->parent,
|
||||
"Failed to set GPIO %u state (%d %x)\n", off, ret,
|
||||
set.gpio);
|
||||
return ret ? ret : -EIO;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rpi_exp_gpio_probe(struct platform_device *pdev)
|
||||
|
|
@ -228,7 +232,7 @@ static int rpi_exp_gpio_probe(struct platform_device *pdev)
|
|||
rpi_gpio->gc.direction_output = rpi_exp_gpio_dir_out;
|
||||
rpi_gpio->gc.get_direction = rpi_exp_gpio_get_direction;
|
||||
rpi_gpio->gc.get = rpi_exp_gpio_get;
|
||||
rpi_gpio->gc.set = rpi_exp_gpio_set;
|
||||
rpi_gpio->gc.set_rv = rpi_exp_gpio_set;
|
||||
rpi_gpio->gc.can_sleep = true;
|
||||
|
||||
return devm_gpiochip_add_data(dev, &rpi_gpio->gc, rpi_gpio);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user