Skip to content

Commit 7464c88

Browse files
Bartosz GolaszewskiLinus Walleij
authored andcommitted
pinctrl: mediatek: airoha: 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: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Acked-by: Lorenzo Bianconi <lorenzo@kernel.org> Link: https://lore.kernel.org/20250425-gpiochip-set-rv-pinctrl-mediatek-v1-1-93e6a01855e7@linaro.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
1 parent 781411f commit 7464c88

1 file changed

Lines changed: 8 additions & 11 deletions

File tree

drivers/pinctrl/mediatek/pinctrl-airoha.c

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2266,15 +2266,16 @@ static int airoha_convert_pin_to_reg_offset(struct pinctrl_dev *pctrl_dev,
22662266
}
22672267

22682268
/* gpio callbacks */
2269-
static void airoha_gpio_set(struct gpio_chip *chip, unsigned int gpio,
2270-
int value)
2269+
static int airoha_gpio_set(struct gpio_chip *chip, unsigned int gpio,
2270+
int value)
22712271
{
22722272
struct airoha_pinctrl *pinctrl = gpiochip_get_data(chip);
22732273
u32 offset = gpio % AIROHA_PIN_BANK_SIZE;
22742274
u8 index = gpio / AIROHA_PIN_BANK_SIZE;
22752275

2276-
regmap_update_bits(pinctrl->regmap, pinctrl->gpiochip.data[index],
2277-
BIT(offset), value ? BIT(offset) : 0);
2276+
return regmap_update_bits(pinctrl->regmap,
2277+
pinctrl->gpiochip.data[index],
2278+
BIT(offset), value ? BIT(offset) : 0);
22782279
}
22792280

22802281
static int airoha_gpio_get(struct gpio_chip *chip, unsigned int gpio)
@@ -2299,9 +2300,7 @@ static int airoha_gpio_direction_output(struct gpio_chip *chip,
22992300
if (err)
23002301
return err;
23012302

2302-
airoha_gpio_set(chip, gpio, value);
2303-
2304-
return 0;
2303+
return airoha_gpio_set(chip, gpio, value);
23052304
}
23062305

23072306
/* irq callbacks */
@@ -2438,7 +2437,7 @@ static int airoha_pinctrl_add_gpiochip(struct airoha_pinctrl *pinctrl,
24382437
gc->free = gpiochip_generic_free;
24392438
gc->direction_input = pinctrl_gpio_direction_input;
24402439
gc->direction_output = airoha_gpio_direction_output;
2441-
gc->set = airoha_gpio_set;
2440+
gc->set_rv = airoha_gpio_set;
24422441
gc->get = airoha_gpio_get;
24432442
gc->base = -1;
24442443
gc->ngpio = AIROHA_NUM_PINS;
@@ -2734,9 +2733,7 @@ static int airoha_pinconf_set_pin_value(struct pinctrl_dev *pctrl_dev,
27342733
if (pin < 0)
27352734
return pin;
27362735

2737-
airoha_gpio_set(&pinctrl->gpiochip.chip, pin, value);
2738-
2739-
return 0;
2736+
return airoha_gpio_set(&pinctrl->gpiochip.chip, pin, value);
27402737
}
27412738

27422739
static int airoha_pinconf_set(struct pinctrl_dev *pctrl_dev,

0 commit comments

Comments
 (0)