linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters
@ 2025-04-25  9:00 Bartosz Golaszewski
  2025-04-25  9:00 ` [PATCH 1/5] pinctrl: mediatek: airoha: use new GPIO line value setter callbacks Bartosz Golaszewski
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-25  9:00 UTC (permalink / raw)
  To: Lorenzo Bianconi, Sean Wang, Linus Walleij, Matthias Brugger,
	AngeloGioacchino Del Regno, Bartosz Golaszewski
  Cc: linux-mediatek, linux-gpio, linux-kernel, linux-arm-kernel,
	Bartosz Golaszewski

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. We're in the process of
converting all GPIO drivers to using the new API. This series converts
all the mediatek pinctrl GPIO controllers.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
Bartosz Golaszewski (5):
      pinctrl: mediatek: airoha: use new GPIO line value setter callbacks
      pinctrl: mediatek: paris: don't double-check the GPIO number
      pinctrl: mediatek: paris: use new GPIO line value setter callbacks
      pinctrl: mediatek: moore: use new GPIO line value setter callbacks
      pinctrl: mediatek: common: use new GPIO line value setter callbacks

 drivers/pinctrl/mediatek/pinctrl-airoha.c     | 19 ++++++++----------
 drivers/pinctrl/mediatek/pinctrl-moore.c      | 18 +++++++++--------
 drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 13 ++++++++----
 drivers/pinctrl/mediatek/pinctrl-paris.c      | 29 +++++++--------------------
 4 files changed, 34 insertions(+), 45 deletions(-)
---
base-commit: 393d0c54cae31317deaa9043320c5fd9454deabc
change-id: 20250425-gpiochip-set-rv-pinctrl-mediatek-1dd831a4d171

Best regards,
-- 
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/5] pinctrl: mediatek: airoha: use new GPIO line value setter callbacks
  2025-04-25  9:00 [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters Bartosz Golaszewski
@ 2025-04-25  9:00 ` Bartosz Golaszewski
  2025-04-29  7:09   ` Lorenzo Bianconi
  2025-04-25  9:00 ` [PATCH 2/5] pinctrl: mediatek: paris: don't double-check the GPIO number Bartosz Golaszewski
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-25  9:00 UTC (permalink / raw)
  To: Lorenzo Bianconi, Sean Wang, Linus Walleij, Matthias Brugger,
	AngeloGioacchino Del Regno, Bartosz Golaszewski
  Cc: linux-mediatek, linux-gpio, linux-kernel, linux-arm-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

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>
---
 drivers/pinctrl/mediatek/pinctrl-airoha.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/pinctrl/mediatek/pinctrl-airoha.c b/drivers/pinctrl/mediatek/pinctrl-airoha.c
index 5d84a778683d..b97b28ebb37a 100644
--- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
+++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
@@ -2247,15 +2247,16 @@ static int airoha_convert_pin_to_reg_offset(struct pinctrl_dev *pctrl_dev,
 }
 
 /* gpio callbacks */
-static void airoha_gpio_set(struct gpio_chip *chip, unsigned int gpio,
-			    int value)
+static int airoha_gpio_set(struct gpio_chip *chip, unsigned int gpio,
+			   int value)
 {
 	struct airoha_pinctrl *pinctrl = gpiochip_get_data(chip);
 	u32 offset = gpio % AIROHA_PIN_BANK_SIZE;
 	u8 index = gpio / AIROHA_PIN_BANK_SIZE;
 
-	regmap_update_bits(pinctrl->regmap, pinctrl->gpiochip.data[index],
-			   BIT(offset), value ? BIT(offset) : 0);
+	return regmap_update_bits(pinctrl->regmap,
+				  pinctrl->gpiochip.data[index],
+				  BIT(offset), value ? BIT(offset) : 0);
 }
 
 static int airoha_gpio_get(struct gpio_chip *chip, unsigned int gpio)
@@ -2280,9 +2281,7 @@ static int airoha_gpio_direction_output(struct gpio_chip *chip,
 	if (err)
 		return err;
 
-	airoha_gpio_set(chip, gpio, value);
-
-	return 0;
+	return airoha_gpio_set(chip, gpio, value);
 }
 
 /* irq callbacks */
@@ -2419,7 +2418,7 @@ static int airoha_pinctrl_add_gpiochip(struct airoha_pinctrl *pinctrl,
 	gc->free = gpiochip_generic_free;
 	gc->direction_input = pinctrl_gpio_direction_input;
 	gc->direction_output = airoha_gpio_direction_output;
-	gc->set = airoha_gpio_set;
+	gc->set_rv = airoha_gpio_set;
 	gc->get = airoha_gpio_get;
 	gc->base = -1;
 	gc->ngpio = AIROHA_NUM_PINS;
@@ -2715,9 +2714,7 @@ static int airoha_pinconf_set_pin_value(struct pinctrl_dev *pctrl_dev,
 	if (pin < 0)
 		return pin;
 
-	airoha_gpio_set(&pinctrl->gpiochip.chip, pin, value);
-
-	return 0;
+	return airoha_gpio_set(&pinctrl->gpiochip.chip, pin, value);
 }
 
 static int airoha_pinconf_set(struct pinctrl_dev *pctrl_dev,

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/5] pinctrl: mediatek: paris: don't double-check the GPIO number
  2025-04-25  9:00 [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters Bartosz Golaszewski
  2025-04-25  9:00 ` [PATCH 1/5] pinctrl: mediatek: airoha: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-04-25  9:00 ` Bartosz Golaszewski
  2025-04-25  9:00 ` [PATCH 3/5] pinctrl: mediatek: paris: use new GPIO line value setter callbacks Bartosz Golaszewski
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-25  9:00 UTC (permalink / raw)
  To: Lorenzo Bianconi, Sean Wang, Linus Walleij, Matthias Brugger,
	AngeloGioacchino Del Regno, Bartosz Golaszewski
  Cc: linux-mediatek, linux-gpio, linux-kernel, linux-arm-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

GPIO core already makes sure we don't pass invalid GPIO numbers down to
the driver callbacks. Remove needless checks from the driver.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/pinctrl/mediatek/pinctrl-paris.c | 19 -------------------
 1 file changed, 19 deletions(-)

diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c
index 87e958d827bf..852ce0ac7ff9 100644
--- a/drivers/pinctrl/mediatek/pinctrl-paris.c
+++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
@@ -840,9 +840,6 @@ static int mtk_gpio_get_direction(struct gpio_chip *chip, unsigned int gpio)
 	const struct mtk_pin_desc *desc;
 	int value, err;
 
-	if (gpio >= hw->soc->npins)
-		return -EINVAL;
-
 	/*
 	 * "Virtual" GPIOs are always and only used for interrupts
 	 * Since they are only used for interrupts, they are always inputs
@@ -868,9 +865,6 @@ static int mtk_gpio_get(struct gpio_chip *chip, unsigned int gpio)
 	const struct mtk_pin_desc *desc;
 	int value, err;
 
-	if (gpio >= hw->soc->npins)
-		return -EINVAL;
-
 	desc = (const struct mtk_pin_desc *)&hw->soc->pins[gpio];
 
 	err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DI, &value);
@@ -885,9 +879,6 @@ static void mtk_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
 	struct mtk_pinctrl *hw = gpiochip_get_data(chip);
 	const struct mtk_pin_desc *desc;
 
-	if (gpio >= hw->soc->npins)
-		return;
-
 	desc = (const struct mtk_pin_desc *)&hw->soc->pins[gpio];
 
 	mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_DO, !!value);
@@ -895,22 +886,12 @@ static void mtk_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
 
 static int mtk_gpio_direction_input(struct gpio_chip *chip, unsigned int gpio)
 {
-	struct mtk_pinctrl *hw = gpiochip_get_data(chip);
-
-	if (gpio >= hw->soc->npins)
-		return -EINVAL;
-
 	return pinctrl_gpio_direction_input(chip, gpio);
 }
 
 static int mtk_gpio_direction_output(struct gpio_chip *chip, unsigned int gpio,
 				     int value)
 {
-	struct mtk_pinctrl *hw = gpiochip_get_data(chip);
-
-	if (gpio >= hw->soc->npins)
-		return -EINVAL;
-
 	mtk_gpio_set(chip, gpio, value);
 
 	return pinctrl_gpio_direction_output(chip, gpio);

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/5] pinctrl: mediatek: paris: use new GPIO line value setter callbacks
  2025-04-25  9:00 [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters Bartosz Golaszewski
  2025-04-25  9:00 ` [PATCH 1/5] pinctrl: mediatek: airoha: use new GPIO line value setter callbacks Bartosz Golaszewski
  2025-04-25  9:00 ` [PATCH 2/5] pinctrl: mediatek: paris: don't double-check the GPIO number Bartosz Golaszewski
@ 2025-04-25  9:00 ` Bartosz Golaszewski
  2025-04-25  9:01 ` [PATCH 4/5] pinctrl: mediatek: moore: " Bartosz Golaszewski
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-25  9:00 UTC (permalink / raw)
  To: Lorenzo Bianconi, Sean Wang, Linus Walleij, Matthias Brugger,
	AngeloGioacchino Del Regno, Bartosz Golaszewski
  Cc: linux-mediatek, linux-gpio, linux-kernel, linux-arm-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

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>
---
 drivers/pinctrl/mediatek/pinctrl-paris.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c
index 852ce0ac7ff9..89ef4e530fcc 100644
--- a/drivers/pinctrl/mediatek/pinctrl-paris.c
+++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
@@ -874,14 +874,14 @@ static int mtk_gpio_get(struct gpio_chip *chip, unsigned int gpio)
 	return !!value;
 }
 
-static void mtk_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
+static int mtk_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
 {
 	struct mtk_pinctrl *hw = gpiochip_get_data(chip);
 	const struct mtk_pin_desc *desc;
 
 	desc = (const struct mtk_pin_desc *)&hw->soc->pins[gpio];
 
-	mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_DO, !!value);
+	return mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_DO, !!value);
 }
 
 static int mtk_gpio_direction_input(struct gpio_chip *chip, unsigned int gpio)
@@ -892,7 +892,11 @@ static int mtk_gpio_direction_input(struct gpio_chip *chip, unsigned int gpio)
 static int mtk_gpio_direction_output(struct gpio_chip *chip, unsigned int gpio,
 				     int value)
 {
-	mtk_gpio_set(chip, gpio, value);
+	int ret;
+
+	ret = mtk_gpio_set(chip, gpio, value);
+	if (ret)
+		return ret;
 
 	return pinctrl_gpio_direction_output(chip, gpio);
 }
@@ -945,7 +949,7 @@ static int mtk_build_gpiochip(struct mtk_pinctrl *hw)
 	chip->direction_input	= mtk_gpio_direction_input;
 	chip->direction_output	= mtk_gpio_direction_output;
 	chip->get		= mtk_gpio_get;
-	chip->set		= mtk_gpio_set;
+	chip->set_rv		= mtk_gpio_set;
 	chip->to_irq		= mtk_gpio_to_irq;
 	chip->set_config	= mtk_gpio_set_config;
 	chip->base		= -1;

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/5] pinctrl: mediatek: moore: use new GPIO line value setter callbacks
  2025-04-25  9:00 [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters Bartosz Golaszewski
                   ` (2 preceding siblings ...)
  2025-04-25  9:00 ` [PATCH 3/5] pinctrl: mediatek: paris: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-04-25  9:01 ` Bartosz Golaszewski
  2025-04-25  9:01 ` [PATCH 5/5] pinctrl: mediatek: common: " Bartosz Golaszewski
  2025-05-09  8:05 ` [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters Linus Walleij
  5 siblings, 0 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-25  9:01 UTC (permalink / raw)
  To: Lorenzo Bianconi, Sean Wang, Linus Walleij, Matthias Brugger,
	AngeloGioacchino Del Regno, Bartosz Golaszewski
  Cc: linux-mediatek, linux-gpio, linux-kernel, linux-arm-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

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>
---
 drivers/pinctrl/mediatek/pinctrl-moore.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/pinctrl/mediatek/pinctrl-moore.c b/drivers/pinctrl/mediatek/pinctrl-moore.c
index aad4891223d3..827d0f191031 100644
--- a/drivers/pinctrl/mediatek/pinctrl-moore.c
+++ b/drivers/pinctrl/mediatek/pinctrl-moore.c
@@ -496,24 +496,26 @@ static int mtk_gpio_get(struct gpio_chip *chip, unsigned int gpio)
 	return !!value;
 }
 
-static void mtk_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
+static int mtk_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
 {
 	struct mtk_pinctrl *hw = gpiochip_get_data(chip);
 	const struct mtk_pin_desc *desc;
 
 	desc = (const struct mtk_pin_desc *)&hw->soc->pins[gpio];
-	if (!desc->name) {
-		dev_err(hw->dev, "Failed to set gpio %d\n", gpio);
-		return;
-	}
+	if (!desc->name)
+		return -ENOTSUPP;
 
-	mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_DO, !!value);
+	return mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_DO, !!value);
 }
 
 static int mtk_gpio_direction_output(struct gpio_chip *chip, unsigned int gpio,
 				     int value)
 {
-	mtk_gpio_set(chip, gpio, value);
+	int ret;
+
+	ret = mtk_gpio_set(chip, gpio, value);
+	if (ret)
+		return ret;
 
 	return pinctrl_gpio_direction_output(chip, gpio);
 }
@@ -567,7 +569,7 @@ static int mtk_build_gpiochip(struct mtk_pinctrl *hw)
 	chip->direction_input	= pinctrl_gpio_direction_input;
 	chip->direction_output	= mtk_gpio_direction_output;
 	chip->get		= mtk_gpio_get;
-	chip->set		= mtk_gpio_set;
+	chip->set_rv		= mtk_gpio_set;
 	chip->to_irq		= mtk_gpio_to_irq;
 	chip->set_config	= mtk_gpio_set_config;
 	chip->base		= -1;

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/5] pinctrl: mediatek: common: use new GPIO line value setter callbacks
  2025-04-25  9:00 [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters Bartosz Golaszewski
                   ` (3 preceding siblings ...)
  2025-04-25  9:01 ` [PATCH 4/5] pinctrl: mediatek: moore: " Bartosz Golaszewski
@ 2025-04-25  9:01 ` Bartosz Golaszewski
  2025-05-09  8:05 ` [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters Linus Walleij
  5 siblings, 0 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-25  9:01 UTC (permalink / raw)
  To: Lorenzo Bianconi, Sean Wang, Linus Walleij, Matthias Brugger,
	AngeloGioacchino Del Regno, Bartosz Golaszewski
  Cc: linux-mediatek, linux-gpio, linux-kernel, linux-arm-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

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>
---
 drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
index 8596f3541265..de7bebb9a6cd 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
@@ -86,7 +86,7 @@ static int mtk_pmx_gpio_set_direction(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static void mtk_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
+static int mtk_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
 {
 	unsigned int reg_addr;
 	unsigned int bit;
@@ -100,7 +100,7 @@ static void mtk_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 	else
 		reg_addr = CLR_ADDR(reg_addr, pctl);
 
-	regmap_write(mtk_get_regmap(pctl, offset), reg_addr, bit);
+	return regmap_write(mtk_get_regmap(pctl, offset), reg_addr, bit);
 }
 
 static int mtk_pconf_set_ies_smt(struct mtk_pinctrl *pctl, unsigned pin,
@@ -809,7 +809,12 @@ static const struct pinmux_ops mtk_pmx_ops = {
 static int mtk_gpio_direction_output(struct gpio_chip *chip,
 					unsigned offset, int value)
 {
-	mtk_gpio_set(chip, offset, value);
+	int ret;
+
+	ret = mtk_gpio_set(chip, offset, value);
+	if (ret)
+		return ret;
+
 	return pinctrl_gpio_direction_output(chip, offset);
 }
 
@@ -893,7 +898,7 @@ static const struct gpio_chip mtk_gpio_chip = {
 	.direction_input	= pinctrl_gpio_direction_input,
 	.direction_output	= mtk_gpio_direction_output,
 	.get			= mtk_gpio_get,
-	.set			= mtk_gpio_set,
+	.set_rv			= mtk_gpio_set,
 	.to_irq			= mtk_gpio_to_irq,
 	.set_config		= mtk_gpio_set_config,
 };

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/5] pinctrl: mediatek: airoha: use new GPIO line value setter callbacks
  2025-04-25  9:00 ` [PATCH 1/5] pinctrl: mediatek: airoha: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-04-29  7:09   ` Lorenzo Bianconi
  0 siblings, 0 replies; 8+ messages in thread
From: Lorenzo Bianconi @ 2025-04-29  7:09 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: Sean Wang, Linus Walleij, Matthias Brugger,
	AngeloGioacchino Del Regno, linux-mediatek, linux-gpio,
	linux-kernel, linux-arm-kernel, Bartosz Golaszewski

[-- Attachment #1: Type: text/plain, Size: 2629 bytes --]

> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> 
> 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>

> ---
>  drivers/pinctrl/mediatek/pinctrl-airoha.c | 19 ++++++++-----------
>  1 file changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/pinctrl/mediatek/pinctrl-airoha.c b/drivers/pinctrl/mediatek/pinctrl-airoha.c
> index 5d84a778683d..b97b28ebb37a 100644
> --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
> +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
> @@ -2247,15 +2247,16 @@ static int airoha_convert_pin_to_reg_offset(struct pinctrl_dev *pctrl_dev,
>  }
>  
>  /* gpio callbacks */
> -static void airoha_gpio_set(struct gpio_chip *chip, unsigned int gpio,
> -			    int value)
> +static int airoha_gpio_set(struct gpio_chip *chip, unsigned int gpio,
> +			   int value)
>  {
>  	struct airoha_pinctrl *pinctrl = gpiochip_get_data(chip);
>  	u32 offset = gpio % AIROHA_PIN_BANK_SIZE;
>  	u8 index = gpio / AIROHA_PIN_BANK_SIZE;
>  
> -	regmap_update_bits(pinctrl->regmap, pinctrl->gpiochip.data[index],
> -			   BIT(offset), value ? BIT(offset) : 0);
> +	return regmap_update_bits(pinctrl->regmap,
> +				  pinctrl->gpiochip.data[index],
> +				  BIT(offset), value ? BIT(offset) : 0);
>  }
>  
>  static int airoha_gpio_get(struct gpio_chip *chip, unsigned int gpio)
> @@ -2280,9 +2281,7 @@ static int airoha_gpio_direction_output(struct gpio_chip *chip,
>  	if (err)
>  		return err;
>  
> -	airoha_gpio_set(chip, gpio, value);
> -
> -	return 0;
> +	return airoha_gpio_set(chip, gpio, value);
>  }
>  
>  /* irq callbacks */
> @@ -2419,7 +2418,7 @@ static int airoha_pinctrl_add_gpiochip(struct airoha_pinctrl *pinctrl,
>  	gc->free = gpiochip_generic_free;
>  	gc->direction_input = pinctrl_gpio_direction_input;
>  	gc->direction_output = airoha_gpio_direction_output;
> -	gc->set = airoha_gpio_set;
> +	gc->set_rv = airoha_gpio_set;
>  	gc->get = airoha_gpio_get;
>  	gc->base = -1;
>  	gc->ngpio = AIROHA_NUM_PINS;
> @@ -2715,9 +2714,7 @@ static int airoha_pinconf_set_pin_value(struct pinctrl_dev *pctrl_dev,
>  	if (pin < 0)
>  		return pin;
>  
> -	airoha_gpio_set(&pinctrl->gpiochip.chip, pin, value);
> -
> -	return 0;
> +	return airoha_gpio_set(&pinctrl->gpiochip.chip, pin, value);
>  }
>  
>  static int airoha_pinconf_set(struct pinctrl_dev *pctrl_dev,
> 
> -- 
> 2.45.2
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters
  2025-04-25  9:00 [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters Bartosz Golaszewski
                   ` (4 preceding siblings ...)
  2025-04-25  9:01 ` [PATCH 5/5] pinctrl: mediatek: common: " Bartosz Golaszewski
@ 2025-05-09  8:05 ` Linus Walleij
  5 siblings, 0 replies; 8+ messages in thread
From: Linus Walleij @ 2025-05-09  8:05 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: Lorenzo Bianconi, Sean Wang, Matthias Brugger,
	AngeloGioacchino Del Regno, linux-mediatek, linux-gpio,
	linux-kernel, linux-arm-kernel, Bartosz Golaszewski

On Fri, Apr 25, 2025 at 11:01 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:

> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. We're in the process of
> converting all GPIO drivers to using the new API. This series converts
> all the mediatek pinctrl GPIO controllers.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

All 5 patches applied!

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-05-09  8:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-25  9:00 [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters Bartosz Golaszewski
2025-04-25  9:00 ` [PATCH 1/5] pinctrl: mediatek: airoha: use new GPIO line value setter callbacks Bartosz Golaszewski
2025-04-29  7:09   ` Lorenzo Bianconi
2025-04-25  9:00 ` [PATCH 2/5] pinctrl: mediatek: paris: don't double-check the GPIO number Bartosz Golaszewski
2025-04-25  9:00 ` [PATCH 3/5] pinctrl: mediatek: paris: use new GPIO line value setter callbacks Bartosz Golaszewski
2025-04-25  9:01 ` [PATCH 4/5] pinctrl: mediatek: moore: " Bartosz Golaszewski
2025-04-25  9:01 ` [PATCH 5/5] pinctrl: mediatek: common: " Bartosz Golaszewski
2025-05-09  8:05 ` [PATCH 0/5] pinctrl: mediatek: convert GPIO chips to using new value setters Linus Walleij

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).