Skip to content

Commit 66a6d0e

Browse files
author
Bartosz Golaszewski
committed
gpio: max732x: 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. Link: https://lore.kernel.org/r/20250506-gpiochip-set-rv-gpio-part3-v1-8-0fbdea5a9667@linaro.org Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
1 parent 1938913 commit 66a6d0e

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

drivers/gpio/gpio-max732x.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -225,16 +225,19 @@ static void max732x_gpio_set_mask(struct gpio_chip *gc, unsigned off, int mask,
225225
mutex_unlock(&chip->lock);
226226
}
227227

228-
static void max732x_gpio_set_value(struct gpio_chip *gc, unsigned off, int val)
228+
static int max732x_gpio_set_value(struct gpio_chip *gc, unsigned int off,
229+
int val)
229230
{
230231
unsigned base = off & ~0x7;
231232
uint8_t mask = 1u << (off & 0x7);
232233

233234
max732x_gpio_set_mask(gc, base, mask, val << (off & 0x7));
235+
236+
return 0;
234237
}
235238

236-
static void max732x_gpio_set_multiple(struct gpio_chip *gc,
237-
unsigned long *mask, unsigned long *bits)
239+
static int max732x_gpio_set_multiple(struct gpio_chip *gc,
240+
unsigned long *mask, unsigned long *bits)
238241
{
239242
unsigned mask_lo = mask[0] & 0xff;
240243
unsigned mask_hi = (mask[0] >> 8) & 0xff;
@@ -243,6 +246,8 @@ static void max732x_gpio_set_multiple(struct gpio_chip *gc,
243246
max732x_gpio_set_mask(gc, 0, mask_lo, bits[0] & 0xff);
244247
if (mask_hi)
245248
max732x_gpio_set_mask(gc, 8, mask_hi, (bits[0] >> 8) & 0xff);
249+
250+
return 0;
246251
}
247252

248253
static int max732x_gpio_direction_input(struct gpio_chip *gc, unsigned off)
@@ -580,8 +585,8 @@ static int max732x_setup_gpio(struct max732x_chip *chip,
580585
gc->direction_input = max732x_gpio_direction_input;
581586
if (chip->dir_output) {
582587
gc->direction_output = max732x_gpio_direction_output;
583-
gc->set = max732x_gpio_set_value;
584-
gc->set_multiple = max732x_gpio_set_multiple;
588+
gc->set_rv = max732x_gpio_set_value;
589+
gc->set_multiple_rv = max732x_gpio_set_multiple;
585590
}
586591
gc->get = max732x_gpio_get_value;
587592
gc->can_sleep = true;

0 commit comments

Comments
 (0)