Commit 29f1d5ca authored by Bartosz Golaszewski's avatar Bartosz Golaszewski Committed by Uwe Kleine-König
Browse files

pwm: pca9685: 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: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/r/20250408-gpiochip-set-rv-pwm-v1-1-61e5c3358a74@linaro.org


Signed-off-by: default avatarUwe Kleine-König <ukleinek@kernel.org>
parent 96d20cfd
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -263,12 +263,14 @@ static int pca9685_pwm_gpio_get(struct gpio_chip *gpio, unsigned int offset)
	return pca9685_pwm_get_duty(chip, offset) != 0;
}

static void pca9685_pwm_gpio_set(struct gpio_chip *gpio, unsigned int offset,
static int pca9685_pwm_gpio_set(struct gpio_chip *gpio, unsigned int offset,
				int value)
{
	struct pwm_chip *chip = gpiochip_get_data(gpio);

	pca9685_pwm_set_duty(chip, offset, value ? PCA9685_COUNTER_RANGE : 0);

	return 0;
}

static void pca9685_pwm_gpio_free(struct gpio_chip *gpio, unsigned int offset)
@@ -321,7 +323,7 @@ static int pca9685_pwm_gpio_probe(struct pwm_chip *chip)
	pca->gpio.direction_input = pca9685_pwm_gpio_direction_input;
	pca->gpio.direction_output = pca9685_pwm_gpio_direction_output;
	pca->gpio.get = pca9685_pwm_gpio_get;
	pca->gpio.set = pca9685_pwm_gpio_set;
	pca->gpio.set_rv = pca9685_pwm_gpio_set;
	pca->gpio.base = -1;
	pca->gpio.ngpio = PCA9685_MAXCHAN;
	pca->gpio.can_sleep = true;