* [PATCH v2 01/12] gpio: pca9570: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 02/12] gpio: pcf857x: " Bartosz Golaszewski
` (11 subsequent siblings)
12 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-pca9570.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-pca9570.c b/drivers/gpio/gpio-pca9570.c
index d37ba404936835bca160822ee361604827976e9b..a33246f20fd838a57abeedbbd7e58259bf073a86 100644
--- a/drivers/gpio/gpio-pca9570.c
+++ b/drivers/gpio/gpio-pca9570.c
@@ -88,7 +88,7 @@ static int pca9570_get(struct gpio_chip *chip, unsigned offset)
return !!(buffer & BIT(offset));
}
-static void pca9570_set(struct gpio_chip *chip, unsigned offset, int value)
+static int pca9570_set(struct gpio_chip *chip, unsigned int offset, int value)
{
struct pca9570 *gpio = gpiochip_get_data(chip);
u8 buffer;
@@ -110,6 +110,7 @@ static void pca9570_set(struct gpio_chip *chip, unsigned offset, int value)
out:
mutex_unlock(&gpio->lock);
+ return ret;
}
static int pca9570_probe(struct i2c_client *client)
@@ -125,7 +126,7 @@ static int pca9570_probe(struct i2c_client *client)
gpio->chip.owner = THIS_MODULE;
gpio->chip.get_direction = pca9570_get_direction;
gpio->chip.get = pca9570_get;
- gpio->chip.set = pca9570_set;
+ gpio->chip.set_rv = pca9570_set;
gpio->chip.base = -1;
gpio->chip_data = device_get_match_data(&client->dev);
gpio->chip.ngpio = gpio->chip_data->ngpio;
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH v2 02/12] gpio: pcf857x: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 01/12] gpio: pca9570: " Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 03/12] gpio: pch: " Bartosz Golaszewski
` (10 subsequent siblings)
12 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-pcf857x.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/gpio/gpio-pcf857x.c b/drivers/gpio/gpio-pcf857x.c
index 2e5f5d7f886598318b753304e7e0efca54ff8b69..a042036803336439d8e164fcfbd0263b0e84f3a4 100644
--- a/drivers/gpio/gpio-pcf857x.c
+++ b/drivers/gpio/gpio-pcf857x.c
@@ -171,21 +171,24 @@ static int pcf857x_output(struct gpio_chip *chip, unsigned int offset, int value
return status;
}
-static void pcf857x_set(struct gpio_chip *chip, unsigned int offset, int value)
+static int pcf857x_set(struct gpio_chip *chip, unsigned int offset, int value)
{
- pcf857x_output(chip, offset, value);
+ return pcf857x_output(chip, offset, value);
}
-static void pcf857x_set_multiple(struct gpio_chip *chip, unsigned long *mask,
- unsigned long *bits)
+static int pcf857x_set_multiple(struct gpio_chip *chip, unsigned long *mask,
+ unsigned long *bits)
{
struct pcf857x *gpio = gpiochip_get_data(chip);
+ int status;
mutex_lock(&gpio->lock);
gpio->out &= ~*mask;
gpio->out |= *bits & *mask;
- gpio->write(gpio->client, gpio->out);
+ status = gpio->write(gpio->client, gpio->out);
mutex_unlock(&gpio->lock);
+
+ return status;
}
/*-------------------------------------------------------------------------*/
@@ -292,8 +295,8 @@ static int pcf857x_probe(struct i2c_client *client)
gpio->chip.owner = THIS_MODULE;
gpio->chip.get = pcf857x_get;
gpio->chip.get_multiple = pcf857x_get_multiple;
- gpio->chip.set = pcf857x_set;
- gpio->chip.set_multiple = pcf857x_set_multiple;
+ gpio->chip.set_rv = pcf857x_set;
+ gpio->chip.set_multiple_rv = pcf857x_set_multiple;
gpio->chip.direction_input = pcf857x_input;
gpio->chip.direction_output = pcf857x_output;
gpio->chip.ngpio = (uintptr_t)i2c_get_match_data(client);
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH v2 03/12] gpio: pch: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 01/12] gpio: pca9570: " Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 02/12] gpio: pcf857x: " Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 8:34 ` Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 04/12] gpio: pl061: " Bartosz Golaszewski
` (9 subsequent siblings)
12 siblings, 1 reply; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-pch.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-pch.c b/drivers/gpio/gpio-pch.c
index 63f25c72eac2fb98156eb7682e780247a893d7e7..c6f313342ba06a1386d8ff8a882c9344a9e809e7 100644
--- a/drivers/gpio/gpio-pch.c
+++ b/drivers/gpio/gpio-pch.c
@@ -99,7 +99,7 @@ struct pch_gpio {
spinlock_t spinlock;
};
-static void pch_gpio_set(struct gpio_chip *gpio, unsigned int nr, int val)
+static int pch_gpio_set(struct gpio_chip *gpio, unsigned int nr, int val)
{
u32 reg_val;
struct pch_gpio *chip = gpiochip_get_data(gpio);
@@ -114,6 +114,8 @@ static void pch_gpio_set(struct gpio_chip *gpio, unsigned int nr, int val)
iowrite32(reg_val, &chip->reg->po);
spin_unlock_irqrestore(&chip->spinlock, flags);
+
+ return 0;
}
static int pch_gpio_get(struct gpio_chip *gpio, unsigned int nr)
@@ -217,7 +219,7 @@ static void pch_gpio_setup(struct pch_gpio *chip)
gpio->direction_input = pch_gpio_direction_input;
gpio->get = pch_gpio_get;
gpio->direction_output = pch_gpio_direction_output;
- gpio->set = pch_gpio_set;
+ gpio->set_rv = pch_gpio_set;
gpio->base = -1;
gpio->ngpio = gpio_pins[chip->ioh];
gpio->can_sleep = false;
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH v2 03/12] gpio: pch: use new GPIO line value setter callbacks
2025-06-19 8:33 ` [PATCH v2 03/12] gpio: pch: " Bartosz Golaszewski
@ 2025-06-19 8:34 ` Bartosz Golaszewski
0 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:34 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
Bartosz Golaszewski
On Thu, Jun 19, 2025 at 10:33 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> 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>
> ---
Forgot to pick up the trailers. :/
Reviewed-by: Andy Shevchenko <andy@kernel.org>
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v2 04/12] gpio: pl061: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
` (2 preceding siblings ...)
2025-06-19 8:33 ` [PATCH v2 03/12] gpio: pch: " Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 8:35 ` Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 05/12] gpio: pmic-eic-sprd: drop unneeded .set() callback Bartosz Golaszewski
` (8 subsequent siblings)
12 siblings, 1 reply; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-pl061.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-pl061.c b/drivers/gpio/gpio-pl061.c
index 1c273727ffa3ac54d0f1e66bd6efb784d2a8604e..98cfac4eac85295915b801a62d62c8d78f6cbc4a 100644
--- a/drivers/gpio/gpio-pl061.c
+++ b/drivers/gpio/gpio-pl061.c
@@ -115,11 +115,13 @@ static int pl061_get_value(struct gpio_chip *gc, unsigned offset)
return !!readb(pl061->base + (BIT(offset + 2)));
}
-static void pl061_set_value(struct gpio_chip *gc, unsigned offset, int value)
+static int pl061_set_value(struct gpio_chip *gc, unsigned int offset, int value)
{
struct pl061 *pl061 = gpiochip_get_data(gc);
writeb(!!value << offset, pl061->base + (BIT(offset + 2)));
+
+ return 0;
}
static int pl061_irq_type(struct irq_data *d, unsigned trigger)
@@ -328,7 +330,7 @@ static int pl061_probe(struct amba_device *adev, const struct amba_id *id)
pl061->gc.direction_input = pl061_direction_input;
pl061->gc.direction_output = pl061_direction_output;
pl061->gc.get = pl061_get_value;
- pl061->gc.set = pl061_set_value;
+ pl061->gc.set_rv = pl061_set_value;
pl061->gc.ngpio = PL061_GPIO_NR;
pl061->gc.label = dev_name(dev);
pl061->gc.parent = dev;
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH v2 04/12] gpio: pl061: use new GPIO line value setter callbacks
2025-06-19 8:33 ` [PATCH v2 04/12] gpio: pl061: " Bartosz Golaszewski
@ 2025-06-19 8:35 ` Bartosz Golaszewski
0 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:35 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
Bartosz Golaszewski
On Thu, Jun 19, 2025 at 10:33 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> 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>
> ---
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v2 05/12] gpio: pmic-eic-sprd: drop unneeded .set() callback
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
` (3 preceding siblings ...)
2025-06-19 8:33 ` [PATCH v2 04/12] gpio: pl061: " Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 8:36 ` Bartosz Golaszewski
2025-06-19 8:58 ` Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 06/12] gpio: pxa: use new GPIO line value setter callbacks Bartosz Golaszewski
` (7 subsequent siblings)
12 siblings, 2 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
The lines on this chip are input-only. GPIO core can handle the missing
.set() callback so there's no need to implement a dummy here. Drop it.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/gpio/gpio-pmic-eic-sprd.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/drivers/gpio/gpio-pmic-eic-sprd.c b/drivers/gpio/gpio-pmic-eic-sprd.c
index d9b228bea42eec53ba9d0d0945125f530a22946c..cb015fb5c9467484022723910354219e2c98d3c7 100644
--- a/drivers/gpio/gpio-pmic-eic-sprd.c
+++ b/drivers/gpio/gpio-pmic-eic-sprd.c
@@ -109,12 +109,6 @@ static int sprd_pmic_eic_direction_input(struct gpio_chip *chip,
return 0;
}
-static void sprd_pmic_eic_set(struct gpio_chip *chip, unsigned int offset,
- int value)
-{
- /* EICs are always input, nothing need to do here. */
-}
-
static int sprd_pmic_eic_set_debounce(struct gpio_chip *chip,
unsigned int offset,
unsigned int debounce)
@@ -351,7 +345,6 @@ static int sprd_pmic_eic_probe(struct platform_device *pdev)
pmic_eic->chip.request = sprd_pmic_eic_request;
pmic_eic->chip.free = sprd_pmic_eic_free;
pmic_eic->chip.set_config = sprd_pmic_eic_set_config;
- pmic_eic->chip.set = sprd_pmic_eic_set;
pmic_eic->chip.get = sprd_pmic_eic_get;
pmic_eic->chip.can_sleep = true;
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH v2 05/12] gpio: pmic-eic-sprd: drop unneeded .set() callback
2025-06-19 8:33 ` [PATCH v2 05/12] gpio: pmic-eic-sprd: drop unneeded .set() callback Bartosz Golaszewski
@ 2025-06-19 8:36 ` Bartosz Golaszewski
2025-06-19 8:53 ` Heiko Stuebner
2025-06-19 8:58 ` Bartosz Golaszewski
1 sibling, 1 reply; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:36 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
Bartosz Golaszewski
On Thu, Jun 19, 2025 at 10:33 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> The lines on this chip are input-only. GPIO core can handle the missing
> .set() callback so there's no need to implement a dummy here. Drop it.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
Baolin Wang <baolin.wang@linux.alibaba.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v2 05/12] gpio: pmic-eic-sprd: drop unneeded .set() callback
2025-06-19 8:36 ` Bartosz Golaszewski
@ 2025-06-19 8:53 ` Heiko Stuebner
0 siblings, 0 replies; 21+ messages in thread
From: Heiko Stuebner @ 2025-06-19 8:53 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Bartosz Golaszewski
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
Bartosz Golaszewski
Am Donnerstag, 19. Juni 2025, 10:36:06 Mitteleuropäische Sommerzeit schrieb Bartosz Golaszewski:
> On Thu, Jun 19, 2025 at 10:33 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> >
> > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> >
> > The lines on this chip are input-only. GPIO core can handle the missing
> > .set() callback so there's no need to implement a dummy here. Drop it.
> >
> > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> > ---
>
> Baolin Wang <baolin.wang@linux.alibaba.com>
I think re-adding that trailer broke - missing the Acked/Reviewed part.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v2 05/12] gpio: pmic-eic-sprd: drop unneeded .set() callback
2025-06-19 8:33 ` [PATCH v2 05/12] gpio: pmic-eic-sprd: drop unneeded .set() callback Bartosz Golaszewski
2025-06-19 8:36 ` Bartosz Golaszewski
@ 2025-06-19 8:58 ` Bartosz Golaszewski
1 sibling, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:58 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
Bartosz Golaszewski
On Thu, Jun 19, 2025 at 10:33 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> The lines on this chip are input-only. GPIO core can handle the missing
> .set() callback so there's no need to implement a dummy here. Drop it.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v2 06/12] gpio: pxa: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
` (4 preceding siblings ...)
2025-06-19 8:33 ` [PATCH v2 05/12] gpio: pmic-eic-sprd: drop unneeded .set() callback Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 07/12] gpio: rc5t583: " Bartosz Golaszewski
` (6 subsequent siblings)
12 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-pxa.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c
index 131ab79ebce7555313fd93b3ebd80582d1b9327d..13f7da2a9486428bb8d1d44d2caf9f21f82cbca5 100644
--- a/drivers/gpio/gpio-pxa.c
+++ b/drivers/gpio/gpio-pxa.c
@@ -315,12 +315,14 @@ static int pxa_gpio_get(struct gpio_chip *chip, unsigned offset)
return !!(gplr & GPIO_bit(offset));
}
-static void pxa_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
+static int pxa_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
{
void __iomem *base = gpio_bank_base(chip, offset);
writel_relaxed(GPIO_bit(offset),
base + (value ? GPSR_OFFSET : GPCR_OFFSET));
+
+ return 0;
}
#ifdef CONFIG_OF_GPIO
@@ -353,7 +355,7 @@ static int pxa_init_gpio_chip(struct pxa_gpio_chip *pchip, int ngpio, void __iom
pchip->chip.direction_input = pxa_gpio_direction_input;
pchip->chip.direction_output = pxa_gpio_direction_output;
pchip->chip.get = pxa_gpio_get;
- pchip->chip.set = pxa_gpio_set;
+ pchip->chip.set_rv = pxa_gpio_set;
pchip->chip.to_irq = pxa_gpio_to_irq;
pchip->chip.ngpio = ngpio;
pchip->chip.request = gpiochip_generic_request;
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH v2 07/12] gpio: rc5t583: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
` (5 preceding siblings ...)
2025-06-19 8:33 ` [PATCH v2 06/12] gpio: pxa: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 08/12] gpio: rdc321x: " Bartosz Golaszewski
` (5 subsequent siblings)
12 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-rc5t583.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/drivers/gpio/gpio-rc5t583.c b/drivers/gpio/gpio-rc5t583.c
index c34dcadaee36d5fb775d4aaa8c8f8b275f4e2382..cf3e91d235df2eefc7d0fc93a58824edd55e9aba 100644
--- a/drivers/gpio/gpio-rc5t583.c
+++ b/drivers/gpio/gpio-rc5t583.c
@@ -35,14 +35,20 @@ static int rc5t583_gpio_get(struct gpio_chip *gc, unsigned int offset)
return !!(val & BIT(offset));
}
-static void rc5t583_gpio_set(struct gpio_chip *gc, unsigned int offset, int val)
+static int rc5t583_gpio_set(struct gpio_chip *gc, unsigned int offset, int val)
{
struct rc5t583_gpio *rc5t583_gpio = gpiochip_get_data(gc);
struct device *parent = rc5t583_gpio->rc5t583->dev;
+ int ret;
+
if (val)
- rc5t583_set_bits(parent, RC5T583_GPIO_IOOUT, BIT(offset));
+ ret = rc5t583_set_bits(parent, RC5T583_GPIO_IOOUT,
+ BIT(offset));
else
- rc5t583_clear_bits(parent, RC5T583_GPIO_IOOUT, BIT(offset));
+ ret = rc5t583_clear_bits(parent, RC5T583_GPIO_IOOUT,
+ BIT(offset));
+
+ return ret;
}
static int rc5t583_gpio_dir_input(struct gpio_chip *gc, unsigned int offset)
@@ -66,7 +72,10 @@ static int rc5t583_gpio_dir_output(struct gpio_chip *gc, unsigned offset,
struct device *parent = rc5t583_gpio->rc5t583->dev;
int ret;
- rc5t583_gpio_set(gc, offset, value);
+ ret = rc5t583_gpio_set(gc, offset, value);
+ if (ret)
+ return ret;
+
ret = rc5t583_set_bits(parent, RC5T583_GPIO_IOSEL, BIT(offset));
if (ret < 0)
return ret;
@@ -109,7 +118,7 @@ static int rc5t583_gpio_probe(struct platform_device *pdev)
rc5t583_gpio->gpio_chip.free = rc5t583_gpio_free,
rc5t583_gpio->gpio_chip.direction_input = rc5t583_gpio_dir_input,
rc5t583_gpio->gpio_chip.direction_output = rc5t583_gpio_dir_output,
- rc5t583_gpio->gpio_chip.set = rc5t583_gpio_set,
+ rc5t583_gpio->gpio_chip.set_rv = rc5t583_gpio_set,
rc5t583_gpio->gpio_chip.get = rc5t583_gpio_get,
rc5t583_gpio->gpio_chip.to_irq = rc5t583_gpio_to_irq,
rc5t583_gpio->gpio_chip.ngpio = RC5T583_MAX_GPIO,
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH v2 08/12] gpio: rdc321x: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
` (6 preceding siblings ...)
2025-06-19 8:33 ` [PATCH v2 07/12] gpio: rc5t583: " Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 09/12] gpio: reg: " Bartosz Golaszewski
` (4 subsequent siblings)
12 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-rdc321x.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/gpio/gpio-rdc321x.c b/drivers/gpio/gpio-rdc321x.c
index ec7fb9220a4747fad5dfdb88e25e68d2a104e37a..a75ed8021de57db122938e4736c3ac994bcdd2d1 100644
--- a/drivers/gpio/gpio-rdc321x.c
+++ b/drivers/gpio/gpio-rdc321x.c
@@ -64,8 +64,8 @@ static void rdc_gpio_set_value_impl(struct gpio_chip *chip,
}
/* set GPIO pin to value */
-static void rdc_gpio_set_value(struct gpio_chip *chip,
- unsigned gpio, int value)
+static int rdc_gpio_set_value(struct gpio_chip *chip, unsigned int gpio,
+ int value)
{
struct rdc321x_gpio *gpch;
@@ -73,6 +73,8 @@ static void rdc_gpio_set_value(struct gpio_chip *chip,
spin_lock(&gpch->lock);
rdc_gpio_set_value_impl(chip, gpio, value);
spin_unlock(&gpch->lock);
+
+ return 0;
}
static int rdc_gpio_config(struct gpio_chip *chip,
@@ -157,7 +159,7 @@ static int rdc321x_gpio_probe(struct platform_device *pdev)
rdc321x_gpio_dev->chip.direction_input = rdc_gpio_direction_input;
rdc321x_gpio_dev->chip.direction_output = rdc_gpio_config;
rdc321x_gpio_dev->chip.get = rdc_gpio_get_value;
- rdc321x_gpio_dev->chip.set = rdc_gpio_set_value;
+ rdc321x_gpio_dev->chip.set_rv = rdc_gpio_set_value;
rdc321x_gpio_dev->chip.base = 0;
rdc321x_gpio_dev->chip.ngpio = pdata->max_gpios;
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH v2 09/12] gpio: reg: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
` (7 preceding siblings ...)
2025-06-19 8:33 ` [PATCH v2 08/12] gpio: rdc321x: " Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 14:34 ` Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 10/12] gpio: rockchip: " Bartosz Golaszewski
` (3 subsequent siblings)
12 siblings, 1 reply; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-reg.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/gpio/gpio-reg.c b/drivers/gpio/gpio-reg.c
index 73c7260d89c083a702b1d914ddca7a573a37de4a..557dd77ce30bbca6174babbcabc965cdcec57896 100644
--- a/drivers/gpio/gpio-reg.c
+++ b/drivers/gpio/gpio-reg.c
@@ -46,7 +46,7 @@ static int gpio_reg_direction_output(struct gpio_chip *gc, unsigned offset,
if (r->direction & BIT(offset))
return -ENOTSUPP;
- gc->set(gc, offset, value);
+ gc->set_rv(gc, offset, value);
return 0;
}
@@ -57,7 +57,7 @@ static int gpio_reg_direction_input(struct gpio_chip *gc, unsigned offset)
return r->direction & BIT(offset) ? 0 : -ENOTSUPP;
}
-static void gpio_reg_set(struct gpio_chip *gc, unsigned offset, int value)
+static int gpio_reg_set(struct gpio_chip *gc, unsigned int offset, int value)
{
struct gpio_reg *r = to_gpio_reg(gc);
unsigned long flags;
@@ -72,6 +72,8 @@ static void gpio_reg_set(struct gpio_chip *gc, unsigned offset, int value)
r->out = val;
writel_relaxed(val, r->reg);
spin_unlock_irqrestore(&r->lock, flags);
+
+ return 0;
}
static int gpio_reg_get(struct gpio_chip *gc, unsigned offset)
@@ -157,7 +159,7 @@ struct gpio_chip *gpio_reg_init(struct device *dev, void __iomem *reg,
r->gc.get_direction = gpio_reg_get_direction;
r->gc.direction_input = gpio_reg_direction_input;
r->gc.direction_output = gpio_reg_direction_output;
- r->gc.set = gpio_reg_set;
+ r->gc.set_rv = gpio_reg_set;
r->gc.get = gpio_reg_get;
r->gc.set_multiple = gpio_reg_set_multiple;
if (irqs)
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH v2 09/12] gpio: reg: use new GPIO line value setter callbacks
2025-06-19 8:33 ` [PATCH v2 09/12] gpio: reg: " Bartosz Golaszewski
@ 2025-06-19 14:34 ` Bartosz Golaszewski
0 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 14:34 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
Bartosz Golaszewski
On Thu, Jun 19, 2025 at 10:33 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> 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>
> ---
Ah dang it, this is still not enough as there are users under
arch/arm/ that scoop out the gpio_chip and call its set_multiple()
callback directly. Next week, I'll just apply other patches from that
series and resend this one corrected separately.
Bartosz
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v2 10/12] gpio: rockchip: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
` (8 preceding siblings ...)
2025-06-19 8:33 ` [PATCH v2 09/12] gpio: reg: " Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 8:54 ` Heiko Stuebner
2025-06-19 8:33 ` [PATCH v2 11/12] gpio: rtd: " Bartosz Golaszewski
` (2 subsequent siblings)
12 siblings, 1 reply; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-rockchip.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/gpio/gpio-rockchip.c b/drivers/gpio/gpio-rockchip.c
index 64700a003f9a17947dd38baea23a066e8c057caf..ecd60ff9e1dd1a090bfad204c8b86c4d7fb68ce7 100644
--- a/drivers/gpio/gpio-rockchip.c
+++ b/drivers/gpio/gpio-rockchip.c
@@ -177,8 +177,8 @@ static int rockchip_gpio_set_direction(struct gpio_chip *chip,
return 0;
}
-static void rockchip_gpio_set(struct gpio_chip *gc, unsigned int offset,
- int value)
+static int rockchip_gpio_set(struct gpio_chip *gc, unsigned int offset,
+ int value)
{
struct rockchip_pin_bank *bank = gpiochip_get_data(gc);
unsigned long flags;
@@ -186,6 +186,8 @@ static void rockchip_gpio_set(struct gpio_chip *gc, unsigned int offset,
raw_spin_lock_irqsave(&bank->slock, flags);
rockchip_gpio_writel_bit(bank, offset, value, bank->gpio_regs->port_dr);
raw_spin_unlock_irqrestore(&bank->slock, flags);
+
+ return 0;
}
static int rockchip_gpio_get(struct gpio_chip *gc, unsigned int offset)
@@ -325,7 +327,7 @@ static int rockchip_gpio_to_irq(struct gpio_chip *gc, unsigned int offset)
static const struct gpio_chip rockchip_gpiolib_chip = {
.request = gpiochip_generic_request,
.free = gpiochip_generic_free,
- .set = rockchip_gpio_set,
+ .set_rv = rockchip_gpio_set,
.get = rockchip_gpio_get,
.get_direction = rockchip_gpio_get_direction,
.direction_input = rockchip_gpio_direction_input,
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH v2 10/12] gpio: rockchip: use new GPIO line value setter callbacks
2025-06-19 8:33 ` [PATCH v2 10/12] gpio: rockchip: " Bartosz Golaszewski
@ 2025-06-19 8:54 ` Heiko Stuebner
0 siblings, 0 replies; 21+ messages in thread
From: Heiko Stuebner @ 2025-06-19 8:54 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Bartosz Golaszewski
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
Bartosz Golaszewski
Am Donnerstag, 19. Juni 2025, 10:33:23 Mitteleuropäische Sommerzeit schrieb 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>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
> ---
> drivers/gpio/gpio-rockchip.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpio/gpio-rockchip.c b/drivers/gpio/gpio-rockchip.c
> index 64700a003f9a17947dd38baea23a066e8c057caf..ecd60ff9e1dd1a090bfad204c8b86c4d7fb68ce7 100644
> --- a/drivers/gpio/gpio-rockchip.c
> +++ b/drivers/gpio/gpio-rockchip.c
> @@ -177,8 +177,8 @@ static int rockchip_gpio_set_direction(struct gpio_chip *chip,
> return 0;
> }
>
> -static void rockchip_gpio_set(struct gpio_chip *gc, unsigned int offset,
> - int value)
> +static int rockchip_gpio_set(struct gpio_chip *gc, unsigned int offset,
> + int value)
> {
> struct rockchip_pin_bank *bank = gpiochip_get_data(gc);
> unsigned long flags;
> @@ -186,6 +186,8 @@ static void rockchip_gpio_set(struct gpio_chip *gc, unsigned int offset,
> raw_spin_lock_irqsave(&bank->slock, flags);
> rockchip_gpio_writel_bit(bank, offset, value, bank->gpio_regs->port_dr);
> raw_spin_unlock_irqrestore(&bank->slock, flags);
> +
> + return 0;
> }
>
> static int rockchip_gpio_get(struct gpio_chip *gc, unsigned int offset)
> @@ -325,7 +327,7 @@ static int rockchip_gpio_to_irq(struct gpio_chip *gc, unsigned int offset)
> static const struct gpio_chip rockchip_gpiolib_chip = {
> .request = gpiochip_generic_request,
> .free = gpiochip_generic_free,
> - .set = rockchip_gpio_set,
> + .set_rv = rockchip_gpio_set,
> .get = rockchip_gpio_get,
> .get_direction = rockchip_gpio_get_direction,
> .direction_input = rockchip_gpio_direction_input,
>
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v2 11/12] gpio: rtd: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
` (9 preceding siblings ...)
2025-06-19 8:33 ` [PATCH v2 10/12] gpio: rockchip: " Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-19 8:33 ` [PATCH v2 12/12] gpio: sa1100: " Bartosz Golaszewski
2025-06-23 7:27 ` (subset) [PATCH v2 00/12] gpio: " Bartosz Golaszewski
12 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-rtd.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-rtd.c b/drivers/gpio/gpio-rtd.c
index bf7f008f58d703347cba14f35c19f5798ee3a949..25bbd749b019bf8a272c173a3e7373a442f72350 100644
--- a/drivers/gpio/gpio-rtd.c
+++ b/drivers/gpio/gpio-rtd.c
@@ -275,7 +275,7 @@ static int rtd_gpio_set_config(struct gpio_chip *chip, unsigned int offset,
}
}
-static void rtd_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
+static int rtd_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
{
struct rtd_gpio *data = gpiochip_get_data(chip);
u32 mask = BIT(offset % 32);
@@ -292,6 +292,8 @@ static void rtd_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
else
val &= ~mask;
writel_relaxed(val, data->base + dato_reg_offset);
+
+ return 0;
}
static int rtd_gpio_get(struct gpio_chip *chip, unsigned int offset)
@@ -563,7 +565,7 @@ static int rtd_gpio_probe(struct platform_device *pdev)
data->gpio_chip.get_direction = rtd_gpio_get_direction;
data->gpio_chip.direction_input = rtd_gpio_direction_input;
data->gpio_chip.direction_output = rtd_gpio_direction_output;
- data->gpio_chip.set = rtd_gpio_set;
+ data->gpio_chip.set_rv = rtd_gpio_set;
data->gpio_chip.get = rtd_gpio_get;
data->gpio_chip.set_config = rtd_gpio_set_config;
data->gpio_chip.parent = dev;
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH v2 12/12] gpio: sa1100: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
` (10 preceding siblings ...)
2025-06-19 8:33 ` [PATCH v2 11/12] gpio: rtd: " Bartosz Golaszewski
@ 2025-06-19 8:33 ` Bartosz Golaszewski
2025-06-23 7:27 ` (subset) [PATCH v2 00/12] gpio: " Bartosz Golaszewski
12 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-19 8:33 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Orson Zhai,
Baolin Wang, Chunyan Zhang, Robert Jarzmik, Heiko Stuebner
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-rockchip,
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/gpio/gpio-sa1100.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-sa1100.c b/drivers/gpio/gpio-sa1100.c
index 3f3ee36bc3cb19a7baf530def0575d2ff09dd3c5..e9d054d78ccb8485b9f662fcec385fe0d0edc0d7 100644
--- a/drivers/gpio/gpio-sa1100.c
+++ b/drivers/gpio/gpio-sa1100.c
@@ -43,11 +43,14 @@ static int sa1100_gpio_get(struct gpio_chip *chip, unsigned offset)
BIT(offset);
}
-static void sa1100_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
+static int sa1100_gpio_set(struct gpio_chip *chip, unsigned int offset,
+ int value)
{
int reg = value ? R_GPSR : R_GPCR;
writel_relaxed(BIT(offset), sa1100_gpio_chip(chip)->membase + reg);
+
+ return 0;
}
static int sa1100_get_direction(struct gpio_chip *chip, unsigned offset)
@@ -96,7 +99,7 @@ static struct sa1100_gpio_chip sa1100_gpio_chip = {
.get_direction = sa1100_get_direction,
.direction_input = sa1100_direction_input,
.direction_output = sa1100_direction_output,
- .set = sa1100_gpio_set,
+ .set_rv = sa1100_gpio_set,
.get = sa1100_gpio_get,
.to_irq = sa1100_to_irq,
.base = 0,
--
2.48.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: (subset) [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks
2025-06-19 8:33 [PATCH v2 00/12] gpio: use new GPIO line value setter callbacks Bartosz Golaszewski
` (11 preceding siblings ...)
2025-06-19 8:33 ` [PATCH v2 12/12] gpio: sa1100: " Bartosz Golaszewski
@ 2025-06-23 7:27 ` Bartosz Golaszewski
12 siblings, 0 replies; 21+ messages in thread
From: Bartosz Golaszewski @ 2025-06-23 7:27 UTC (permalink / raw)
To: Linus Walleij, Andy Shevchenko, Orson Zhai, Baolin Wang,
Chunyan Zhang, Robert Jarzmik, Heiko Stuebner,
Bartosz Golaszewski
Cc: Bartosz Golaszewski, linux-gpio, linux-kernel, linux-arm-kernel,
linux-rockchip
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
On Thu, 19 Jun 2025 10:33:13 +0200, Bartosz Golaszewski wrote:
> Commit 98ce1eb1fd87e ("gpiolib: introduce gpio_chip setters that return
> values") added new line setter callbacks to struct gpio_chip. They allow
> to indicate failures to callers. We're in the process of converting all
> GPIO controllers to using them before removing the old ones. This series
> converts another round of GPIO drivers.
>
>
> [...]
Applied, thanks!
[01/12] gpio: pca9570: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/40b71f1171da13664e9677fbd993d9098315d71e
[02/12] gpio: pcf857x: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/4027438be823abdcfb50ee2abed06fa4e6af4b7c
[03/12] gpio: pch: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/74260fb09cc6f6e7bb6741bedca4463079800ead
[04/12] gpio: pl061: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/201e0f24a5b73fa73606ae2261d155f00cb6d577
[05/12] gpio: pmic-eic-sprd: drop unneeded .set() callback
https://git.kernel.org/brgl/linux/c/fecdef830c442e4375a3bbdde26af385583fb05c
[06/12] gpio: pxa: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/f1ff31c8ef80f4720ebf7854e6af6204dddd9ce3
[07/12] gpio: rc5t583: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/309ea5811136a06f572c7abbeae2dcf773629a5e
[08/12] gpio: rdc321x: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/76033f1f927cd93907c1e9eb3f86e54015e4366d
[10/12] gpio: rockchip: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/6731ad96e8770595d4a6ceb07e587b07d22da110
[11/12] gpio: rtd: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/d68ddf651dd2faea5cdc6f6656148b739c38645b
[12/12] gpio: sa1100: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/cb908f3699fb137e28017a8fdf506c35762b3eb6
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
^ permalink raw reply [flat|nested] 21+ messages in thread