* [PATCH 01/12] gpio: lp873x: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 02/12] gpio: lp87565: " Bartosz Golaszewski
` (11 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-lp873x.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/gpio/gpio-lp873x.c b/drivers/gpio/gpio-lp873x.c
index 5c79ba1f229c4..1908ed302e923 100644
--- a/drivers/gpio/gpio-lp873x.c
+++ b/drivers/gpio/gpio-lp873x.c
@@ -58,14 +58,14 @@ static int lp873x_gpio_get(struct gpio_chip *chip, unsigned int offset)
return val & BIT(offset * BITS_PER_GPO);
}
-static void lp873x_gpio_set(struct gpio_chip *chip, unsigned int offset,
- int value)
+static int lp873x_gpio_set(struct gpio_chip *chip, unsigned int offset,
+ int value)
{
struct lp873x_gpio *gpio = gpiochip_get_data(chip);
- regmap_update_bits(gpio->lp873->regmap, LP873X_REG_GPO_CTRL,
- BIT(offset * BITS_PER_GPO),
- value ? BIT(offset * BITS_PER_GPO) : 0);
+ return regmap_update_bits(gpio->lp873->regmap, LP873X_REG_GPO_CTRL,
+ BIT(offset * BITS_PER_GPO),
+ value ? BIT(offset * BITS_PER_GPO) : 0);
}
static int lp873x_gpio_request(struct gpio_chip *gc, unsigned int offset)
@@ -124,7 +124,7 @@ static const struct gpio_chip template_chip = {
.direction_input = lp873x_gpio_direction_input,
.direction_output = lp873x_gpio_direction_output,
.get = lp873x_gpio_get,
- .set = lp873x_gpio_set,
+ .set_rv = lp873x_gpio_set,
.set_config = lp873x_gpio_set_config,
.base = -1,
.ngpio = 2,
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 02/12] gpio: lp87565: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 01/12] gpio: lp873x: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 03/12] gpio: lpc18xx: " Bartosz Golaszewski
` (10 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-lp87565.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/drivers/gpio/gpio-lp87565.c b/drivers/gpio/gpio-lp87565.c
index d3ce027de081f..8ea687d5d028a 100644
--- a/drivers/gpio/gpio-lp87565.c
+++ b/drivers/gpio/gpio-lp87565.c
@@ -30,13 +30,13 @@ static int lp87565_gpio_get(struct gpio_chip *chip, unsigned int offset)
return !!(val & BIT(offset));
}
-static void lp87565_gpio_set(struct gpio_chip *chip, unsigned int offset,
- int value)
+static int lp87565_gpio_set(struct gpio_chip *chip, unsigned int offset,
+ int value)
{
struct lp87565_gpio *gpio = gpiochip_get_data(chip);
- regmap_update_bits(gpio->map, LP87565_REG_GPIO_OUT,
- BIT(offset), value ? BIT(offset) : 0);
+ return regmap_update_bits(gpio->map, LP87565_REG_GPIO_OUT,
+ BIT(offset), value ? BIT(offset) : 0);
}
static int lp87565_gpio_get_direction(struct gpio_chip *chip,
@@ -69,8 +69,11 @@ static int lp87565_gpio_direction_output(struct gpio_chip *chip,
unsigned int offset, int value)
{
struct lp87565_gpio *gpio = gpiochip_get_data(chip);
+ int ret;
- lp87565_gpio_set(chip, offset, value);
+ ret = lp87565_gpio_set(chip, offset, value);
+ if (ret)
+ return ret;
return regmap_update_bits(gpio->map,
LP87565_REG_GPIO_CONFIG,
@@ -136,7 +139,7 @@ static const struct gpio_chip template_chip = {
.direction_input = lp87565_gpio_direction_input,
.direction_output = lp87565_gpio_direction_output,
.get = lp87565_gpio_get,
- .set = lp87565_gpio_set,
+ .set_rv = lp87565_gpio_set,
.set_config = lp87565_gpio_set_config,
.base = -1,
.ngpio = 3,
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 03/12] gpio: lpc18xx: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 01/12] gpio: lp873x: use new GPIO line value setter callbacks Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 02/12] gpio: lp87565: " Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 04/12] gpio: lpc32xx: " Bartosz Golaszewski
` (9 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-lpc18xx.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-lpc18xx.c b/drivers/gpio/gpio-lpc18xx.c
index 2cf9fb4637a2b..8bb8a87ec1e99 100644
--- a/drivers/gpio/gpio-lpc18xx.c
+++ b/drivers/gpio/gpio-lpc18xx.c
@@ -263,10 +263,14 @@ static int lpc18xx_gpio_pin_ic_probe(struct lpc18xx_gpio_chip *gc)
return ret;
}
-static void lpc18xx_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
+static int lpc18xx_gpio_set(struct gpio_chip *chip, unsigned int offset,
+ int value)
{
struct lpc18xx_gpio_chip *gc = gpiochip_get_data(chip);
+
writeb(value ? 1 : 0, gc->base + offset);
+
+ return 0;
}
static int lpc18xx_gpio_get(struct gpio_chip *chip, unsigned offset)
@@ -316,7 +320,7 @@ static const struct gpio_chip lpc18xx_chip = {
.free = gpiochip_generic_free,
.direction_input = lpc18xx_gpio_direction_input,
.direction_output = lpc18xx_gpio_direction_output,
- .set = lpc18xx_gpio_set,
+ .set_rv = lpc18xx_gpio_set,
.get = lpc18xx_gpio_get,
.ngpio = LPC18XX_MAX_PORTS * LPC18XX_PINS_PER_PORT,
.owner = THIS_MODULE,
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 04/12] gpio: lpc32xx: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
` (2 preceding siblings ...)
2025-05-06 9:01 ` [PATCH 03/12] gpio: lpc18xx: " Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 05/12] gpio: madera: " Bartosz Golaszewski
` (8 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-lpc32xx.c | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/drivers/gpio/gpio-lpc32xx.c b/drivers/gpio/gpio-lpc32xx.c
index c097e310c9e84..6668b8bd9f1ea 100644
--- a/drivers/gpio/gpio-lpc32xx.c
+++ b/drivers/gpio/gpio-lpc32xx.c
@@ -340,28 +340,34 @@ static int lpc32xx_gpio_dir_out_always(struct gpio_chip *chip, unsigned pin,
return 0;
}
-static void lpc32xx_gpio_set_value_p012(struct gpio_chip *chip, unsigned pin,
- int value)
+static int lpc32xx_gpio_set_value_p012(struct gpio_chip *chip,
+ unsigned int pin, int value)
{
struct lpc32xx_gpio_chip *group = gpiochip_get_data(chip);
__set_gpio_level_p012(group, pin, value);
+
+ return 0;
}
-static void lpc32xx_gpio_set_value_p3(struct gpio_chip *chip, unsigned pin,
- int value)
+static int lpc32xx_gpio_set_value_p3(struct gpio_chip *chip,
+ unsigned int pin, int value)
{
struct lpc32xx_gpio_chip *group = gpiochip_get_data(chip);
__set_gpio_level_p3(group, pin, value);
+
+ return 0;
}
-static void lpc32xx_gpo_set_value(struct gpio_chip *chip, unsigned pin,
- int value)
+static int lpc32xx_gpo_set_value(struct gpio_chip *chip, unsigned int pin,
+ int value)
{
struct lpc32xx_gpio_chip *group = gpiochip_get_data(chip);
__set_gpo_level_p3(group, pin, value);
+
+ return 0;
}
static int lpc32xx_gpo_get_value(struct gpio_chip *chip, unsigned pin)
@@ -401,7 +407,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
.direction_input = lpc32xx_gpio_dir_input_p012,
.get = lpc32xx_gpio_get_value_p012,
.direction_output = lpc32xx_gpio_dir_output_p012,
- .set = lpc32xx_gpio_set_value_p012,
+ .set_rv = lpc32xx_gpio_set_value_p012,
.request = lpc32xx_gpio_request,
.to_irq = lpc32xx_gpio_to_irq_p01,
.base = LPC32XX_GPIO_P0_GRP,
@@ -417,7 +423,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
.direction_input = lpc32xx_gpio_dir_input_p012,
.get = lpc32xx_gpio_get_value_p012,
.direction_output = lpc32xx_gpio_dir_output_p012,
- .set = lpc32xx_gpio_set_value_p012,
+ .set_rv = lpc32xx_gpio_set_value_p012,
.request = lpc32xx_gpio_request,
.to_irq = lpc32xx_gpio_to_irq_p01,
.base = LPC32XX_GPIO_P1_GRP,
@@ -433,7 +439,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
.direction_input = lpc32xx_gpio_dir_input_p012,
.get = lpc32xx_gpio_get_value_p012,
.direction_output = lpc32xx_gpio_dir_output_p012,
- .set = lpc32xx_gpio_set_value_p012,
+ .set_rv = lpc32xx_gpio_set_value_p012,
.request = lpc32xx_gpio_request,
.base = LPC32XX_GPIO_P2_GRP,
.ngpio = LPC32XX_GPIO_P2_MAX,
@@ -448,7 +454,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
.direction_input = lpc32xx_gpio_dir_input_p3,
.get = lpc32xx_gpio_get_value_p3,
.direction_output = lpc32xx_gpio_dir_output_p3,
- .set = lpc32xx_gpio_set_value_p3,
+ .set_rv = lpc32xx_gpio_set_value_p3,
.request = lpc32xx_gpio_request,
.to_irq = lpc32xx_gpio_to_irq_gpio_p3,
.base = LPC32XX_GPIO_P3_GRP,
@@ -476,7 +482,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
.chip = {
.label = "gpo_p3",
.direction_output = lpc32xx_gpio_dir_out_always,
- .set = lpc32xx_gpo_set_value,
+ .set_rv = lpc32xx_gpo_set_value,
.get = lpc32xx_gpo_get_value,
.request = lpc32xx_gpio_request,
.base = LPC32XX_GPO_P3_GRP,
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 05/12] gpio: madera: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
` (3 preceding siblings ...)
2025-05-06 9:01 ` [PATCH 04/12] gpio: lpc32xx: " Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:20 ` Charles Keepax
2025-05-06 9:01 ` [PATCH 06/12] gpio: max3191x: remove unused callbacks Bartosz Golaszewski
` (7 subsequent siblings)
12 siblings, 1 reply; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-madera.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/drivers/gpio/gpio-madera.c b/drivers/gpio/gpio-madera.c
index 8f38303fcbc4a..e73e72d62bc8d 100644
--- a/drivers/gpio/gpio-madera.c
+++ b/drivers/gpio/gpio-madera.c
@@ -87,23 +87,17 @@ static int madera_gpio_direction_out(struct gpio_chip *chip,
MADERA_GP1_LVL_MASK, reg_val);
}
-static void madera_gpio_set(struct gpio_chip *chip, unsigned int offset,
- int value)
+static int madera_gpio_set(struct gpio_chip *chip, unsigned int offset,
+ int value)
{
struct madera_gpio *madera_gpio = gpiochip_get_data(chip);
struct madera *madera = madera_gpio->madera;
unsigned int reg_offset = 2 * offset;
unsigned int reg_val = value ? MADERA_GP1_LVL : 0;
- int ret;
- ret = regmap_update_bits(madera->regmap,
- MADERA_GPIO1_CTRL_1 + reg_offset,
- MADERA_GP1_LVL_MASK, reg_val);
-
- /* set() doesn't return an error so log a warning */
- if (ret)
- dev_warn(madera->dev, "Failed to write to 0x%x (%d)\n",
- MADERA_GPIO1_CTRL_1 + reg_offset, ret);
+ return regmap_update_bits(madera->regmap,
+ MADERA_GPIO1_CTRL_1 + reg_offset,
+ MADERA_GP1_LVL_MASK, reg_val);
}
static const struct gpio_chip madera_gpio_chip = {
@@ -115,7 +109,7 @@ static const struct gpio_chip madera_gpio_chip = {
.direction_input = madera_gpio_direction_in,
.get = madera_gpio_get,
.direction_output = madera_gpio_direction_out,
- .set = madera_gpio_set,
+ .set_rv = madera_gpio_set,
.set_config = gpiochip_generic_config,
.can_sleep = true,
};
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 05/12] gpio: madera: use new GPIO line value setter callbacks
2025-05-06 9:01 ` [PATCH 05/12] gpio: madera: " Bartosz Golaszewski
@ 2025-05-06 9:20 ` Charles Keepax
0 siblings, 0 replies; 17+ messages in thread
From: Charles Keepax @ 2025-05-06 9:20 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Linus Walleij, Vladimir Zapolskiy, Piotr Wojtaszczyk,
Richard Fitzgerald, Andy Shevchenko, linux-gpio, linux-kernel,
linux-arm-kernel, linux-sound, patches, Bartosz Golaszewski
On Tue, May 06, 2025 at 11:01:48AM +0200, Bartosz Golaszewski 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: Charles Keepax <ckeepax@opensource.cirrus.com>
Thanks,
Charles
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 06/12] gpio: max3191x: remove unused callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
` (4 preceding siblings ...)
2025-05-06 9:01 ` [PATCH 05/12] gpio: madera: " Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 07/12] gpio: max730x: use new GPIO line value setter callbacks Bartosz Golaszewski
` (6 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This driver is input-only and as such doesn't need to define empty set()
and direction_output() callbacks. Remove them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/gpio/gpio-max3191x.c | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/drivers/gpio/gpio-max3191x.c b/drivers/gpio/gpio-max3191x.c
index fc0708ab5192b..6e6504ab740a4 100644
--- a/drivers/gpio/gpio-max3191x.c
+++ b/drivers/gpio/gpio-max3191x.c
@@ -103,19 +103,6 @@ static int max3191x_direction_input(struct gpio_chip *gpio, unsigned int offset)
return 0;
}
-static int max3191x_direction_output(struct gpio_chip *gpio,
- unsigned int offset, int value)
-{
- return -EINVAL;
-}
-
-static void max3191x_set(struct gpio_chip *gpio, unsigned int offset, int value)
-{ }
-
-static void max3191x_set_multiple(struct gpio_chip *gpio, unsigned long *mask,
- unsigned long *bits)
-{ }
-
static unsigned int max3191x_wordlen(struct max3191x_chip *max3191x)
{
return max3191x->mode == STATUS_BYTE_ENABLED ? 2 : 1;
@@ -421,9 +408,6 @@ static int max3191x_probe(struct spi_device *spi)
max3191x->gpio.get_direction = max3191x_get_direction;
max3191x->gpio.direction_input = max3191x_direction_input;
- max3191x->gpio.direction_output = max3191x_direction_output;
- max3191x->gpio.set = max3191x_set;
- max3191x->gpio.set_multiple = max3191x_set_multiple;
max3191x->gpio.get = max3191x_get;
max3191x->gpio.get_multiple = max3191x_get_multiple;
max3191x->gpio.set_config = max3191x_set_config;
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 07/12] gpio: max730x: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
` (5 preceding siblings ...)
2025-05-06 9:01 ` [PATCH 06/12] gpio: max3191x: remove unused callbacks Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 08/12] gpio: max732x: " Bartosz Golaszewski
` (5 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-max730x.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/gpio/gpio-max730x.c b/drivers/gpio/gpio-max730x.c
index e688c13c8cc32..75d414d8c992a 100644
--- a/drivers/gpio/gpio-max730x.c
+++ b/drivers/gpio/gpio-max730x.c
@@ -143,18 +143,21 @@ static int max7301_get(struct gpio_chip *chip, unsigned offset)
return level;
}
-static void max7301_set(struct gpio_chip *chip, unsigned offset, int value)
+static int max7301_set(struct gpio_chip *chip, unsigned int offset, int value)
{
struct max7301 *ts = gpiochip_get_data(chip);
+ int ret;
/* First 4 pins are unused in the controller */
offset += 4;
mutex_lock(&ts->lock);
- __max7301_set(ts, offset, value);
+ ret = __max7301_set(ts, offset, value);
mutex_unlock(&ts->lock);
+
+ return ret;
}
int __max730x_probe(struct max7301 *ts)
@@ -185,7 +188,7 @@ int __max730x_probe(struct max7301 *ts)
ts->chip.direction_input = max7301_direction_input;
ts->chip.get = max7301_get;
ts->chip.direction_output = max7301_direction_output;
- ts->chip.set = max7301_set;
+ ts->chip.set_rv = max7301_set;
ts->chip.ngpio = PIN_NUMBER;
ts->chip.can_sleep = true;
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 08/12] gpio: max732x: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
` (6 preceding siblings ...)
2025-05-06 9:01 ` [PATCH 07/12] gpio: max730x: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 09/12] gpio: max77620: " Bartosz Golaszewski
` (4 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-max732x.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/gpio/gpio-max732x.c b/drivers/gpio/gpio-max732x.c
index 49d362907bc7d..d5ffedb086af4 100644
--- a/drivers/gpio/gpio-max732x.c
+++ b/drivers/gpio/gpio-max732x.c
@@ -225,16 +225,19 @@ static void max732x_gpio_set_mask(struct gpio_chip *gc, unsigned off, int mask,
mutex_unlock(&chip->lock);
}
-static void max732x_gpio_set_value(struct gpio_chip *gc, unsigned off, int val)
+static int max732x_gpio_set_value(struct gpio_chip *gc, unsigned int off,
+ int val)
{
unsigned base = off & ~0x7;
uint8_t mask = 1u << (off & 0x7);
max732x_gpio_set_mask(gc, base, mask, val << (off & 0x7));
+
+ return 0;
}
-static void max732x_gpio_set_multiple(struct gpio_chip *gc,
- unsigned long *mask, unsigned long *bits)
+static int max732x_gpio_set_multiple(struct gpio_chip *gc,
+ unsigned long *mask, unsigned long *bits)
{
unsigned mask_lo = mask[0] & 0xff;
unsigned mask_hi = (mask[0] >> 8) & 0xff;
@@ -243,6 +246,8 @@ static void max732x_gpio_set_multiple(struct gpio_chip *gc,
max732x_gpio_set_mask(gc, 0, mask_lo, bits[0] & 0xff);
if (mask_hi)
max732x_gpio_set_mask(gc, 8, mask_hi, (bits[0] >> 8) & 0xff);
+
+ return 0;
}
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,
gc->direction_input = max732x_gpio_direction_input;
if (chip->dir_output) {
gc->direction_output = max732x_gpio_direction_output;
- gc->set = max732x_gpio_set_value;
- gc->set_multiple = max732x_gpio_set_multiple;
+ gc->set_rv = max732x_gpio_set_value;
+ gc->set_multiple_rv = max732x_gpio_set_multiple;
}
gc->get = max732x_gpio_get_value;
gc->can_sleep = true;
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 09/12] gpio: max77620: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
` (7 preceding siblings ...)
2025-05-06 9:01 ` [PATCH 08/12] gpio: max732x: " Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 10/12] gpio: mb86s7x: " Bartosz Golaszewski
` (3 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-max77620.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/drivers/gpio/gpio-max77620.c b/drivers/gpio/gpio-max77620.c
index 8c2a5609161fd..af7af8e40afe4 100644
--- a/drivers/gpio/gpio-max77620.c
+++ b/drivers/gpio/gpio-max77620.c
@@ -223,20 +223,17 @@ static int max77620_gpio_set_debounce(struct max77620_gpio *mgpio,
return ret;
}
-static void max77620_gpio_set(struct gpio_chip *gc, unsigned int offset,
- int value)
+static int max77620_gpio_set(struct gpio_chip *gc, unsigned int offset,
+ int value)
{
struct max77620_gpio *mgpio = gpiochip_get_data(gc);
u8 val;
- int ret;
val = (value) ? MAX77620_CNFG_GPIO_OUTPUT_VAL_HIGH :
MAX77620_CNFG_GPIO_OUTPUT_VAL_LOW;
- ret = regmap_update_bits(mgpio->rmap, GPIO_REG_ADDR(offset),
- MAX77620_CNFG_GPIO_OUTPUT_VAL_MASK, val);
- if (ret < 0)
- dev_err(mgpio->dev, "CNFG_GPIO_OUT update failed: %d\n", ret);
+ return regmap_update_bits(mgpio->rmap, GPIO_REG_ADDR(offset),
+ MAX77620_CNFG_GPIO_OUTPUT_VAL_MASK, val);
}
static int max77620_gpio_set_config(struct gpio_chip *gc, unsigned int offset,
@@ -314,7 +311,7 @@ static int max77620_gpio_probe(struct platform_device *pdev)
mgpio->gpio_chip.direction_input = max77620_gpio_dir_input;
mgpio->gpio_chip.get = max77620_gpio_get;
mgpio->gpio_chip.direction_output = max77620_gpio_dir_output;
- mgpio->gpio_chip.set = max77620_gpio_set;
+ mgpio->gpio_chip.set_rv = max77620_gpio_set;
mgpio->gpio_chip.set_config = max77620_gpio_set_config;
mgpio->gpio_chip.ngpio = MAX77620_GPIO_NR;
mgpio->gpio_chip.can_sleep = 1;
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 10/12] gpio: mb86s7x: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
` (8 preceding siblings ...)
2025-05-06 9:01 ` [PATCH 09/12] gpio: max77620: " Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 11/12] gpio: mc33880: " Bartosz Golaszewski
` (2 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-mb86s7x.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-mb86s7x.c b/drivers/gpio/gpio-mb86s7x.c
index 7ee891ef6905c..5ee2991ecdfdd 100644
--- a/drivers/gpio/gpio-mb86s7x.c
+++ b/drivers/gpio/gpio-mb86s7x.c
@@ -119,7 +119,7 @@ static int mb86s70_gpio_get(struct gpio_chip *gc, unsigned gpio)
return !!(readl(gchip->base + PDR(gpio)) & OFFSET(gpio));
}
-static void mb86s70_gpio_set(struct gpio_chip *gc, unsigned gpio, int value)
+static int mb86s70_gpio_set(struct gpio_chip *gc, unsigned int gpio, int value)
{
struct mb86s70_gpio_chip *gchip = gpiochip_get_data(gc);
unsigned long flags;
@@ -135,6 +135,8 @@ static void mb86s70_gpio_set(struct gpio_chip *gc, unsigned gpio, int value)
writel(val, gchip->base + PDR(gpio));
spin_unlock_irqrestore(&gchip->lock, flags);
+
+ return 0;
}
static int mb86s70_gpio_to_irq(struct gpio_chip *gc, unsigned int offset)
@@ -178,7 +180,7 @@ static int mb86s70_gpio_probe(struct platform_device *pdev)
gchip->gc.request = mb86s70_gpio_request;
gchip->gc.free = mb86s70_gpio_free;
gchip->gc.get = mb86s70_gpio_get;
- gchip->gc.set = mb86s70_gpio_set;
+ gchip->gc.set_rv = mb86s70_gpio_set;
gchip->gc.to_irq = mb86s70_gpio_to_irq;
gchip->gc.label = dev_name(&pdev->dev);
gchip->gc.ngpio = 32;
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 11/12] gpio: mc33880: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
` (9 preceding siblings ...)
2025-05-06 9:01 ` [PATCH 10/12] gpio: mb86s7x: " Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-06 9:01 ` [PATCH 12/12] gpio: ml-ioh: " Bartosz Golaszewski
2025-05-13 13:15 ` [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
12 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-mc33880.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/gpio/gpio-mc33880.c b/drivers/gpio/gpio-mc33880.c
index 5fb357d7b78aa..e689561041616 100644
--- a/drivers/gpio/gpio-mc33880.c
+++ b/drivers/gpio/gpio-mc33880.c
@@ -57,15 +57,18 @@ static int __mc33880_set(struct mc33880 *mc, unsigned offset, int value)
}
-static void mc33880_set(struct gpio_chip *chip, unsigned offset, int value)
+static int mc33880_set(struct gpio_chip *chip, unsigned int offset, int value)
{
struct mc33880 *mc = gpiochip_get_data(chip);
+ int ret;
mutex_lock(&mc->lock);
- __mc33880_set(mc, offset, value);
+ ret = __mc33880_set(mc, offset, value);
mutex_unlock(&mc->lock);
+
+ return ret;
}
static int mc33880_probe(struct spi_device *spi)
@@ -100,7 +103,7 @@ static int mc33880_probe(struct spi_device *spi)
mc->spi = spi;
mc->chip.label = DRIVER_NAME;
- mc->chip.set = mc33880_set;
+ mc->chip.set_rv = mc33880_set;
mc->chip.base = pdata->base;
mc->chip.ngpio = PIN_NUMBER;
mc->chip.can_sleep = true;
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 12/12] gpio: ml-ioh: use new GPIO line value setter callbacks
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
` (10 preceding siblings ...)
2025-05-06 9:01 ` [PATCH 11/12] gpio: mc33880: " Bartosz Golaszewski
@ 2025-05-06 9:01 ` Bartosz Golaszewski
2025-05-07 14:55 ` Andy Shevchenko
2025-05-13 13:15 ` [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
12 siblings, 1 reply; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-06 9:01 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Vladimir Zapolskiy,
Piotr Wojtaszczyk, Charles Keepax, Richard Fitzgerald,
Andy Shevchenko
Cc: linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches,
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-ml-ioh.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-ml-ioh.c b/drivers/gpio/gpio-ml-ioh.c
index 48e3768a830e7..12cf36f9ca63b 100644
--- a/drivers/gpio/gpio-ml-ioh.c
+++ b/drivers/gpio/gpio-ml-ioh.c
@@ -89,7 +89,7 @@ struct ioh_gpio {
static const int num_ports[] = {6, 12, 16, 16, 15, 16, 16, 12};
-static void ioh_gpio_set(struct gpio_chip *gpio, unsigned nr, int val)
+static int ioh_gpio_set(struct gpio_chip *gpio, unsigned int nr, int val)
{
u32 reg_val;
struct ioh_gpio *chip = gpiochip_get_data(gpio);
@@ -104,6 +104,8 @@ static void ioh_gpio_set(struct gpio_chip *gpio, unsigned nr, int val)
iowrite32(reg_val, &chip->reg->regs[chip->ch].po);
spin_unlock_irqrestore(&chip->spinlock, flags);
+
+ return 0;
}
static int ioh_gpio_get(struct gpio_chip *gpio, unsigned nr)
@@ -222,7 +224,7 @@ static void ioh_gpio_setup(struct ioh_gpio *chip, int num_port)
gpio->direction_input = ioh_gpio_direction_input;
gpio->get = ioh_gpio_get;
gpio->direction_output = ioh_gpio_direction_output;
- gpio->set = ioh_gpio_set;
+ gpio->set_rv = ioh_gpio_set;
gpio->dbg_show = NULL;
gpio->base = -1;
gpio->ngpio = num_port;
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 12/12] gpio: ml-ioh: use new GPIO line value setter callbacks
2025-05-06 9:01 ` [PATCH 12/12] gpio: ml-ioh: " Bartosz Golaszewski
@ 2025-05-07 14:55 ` Andy Shevchenko
0 siblings, 0 replies; 17+ messages in thread
From: Andy Shevchenko @ 2025-05-07 14:55 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Linus Walleij, Vladimir Zapolskiy, Piotr Wojtaszczyk,
Charles Keepax, Richard Fitzgerald, linux-gpio, linux-kernel,
linux-arm-kernel, linux-sound, patches, Bartosz Golaszewski
On Tue, May 06, 2025 at 11:01:55AM +0200, Bartosz Golaszewski 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.
Pushed to my review and testing queue, thanks!
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16
2025-05-06 9:01 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
` (11 preceding siblings ...)
2025-05-06 9:01 ` [PATCH 12/12] gpio: ml-ioh: " Bartosz Golaszewski
@ 2025-05-13 13:15 ` Bartosz Golaszewski
2025-05-13 13:37 ` Andy Shevchenko
12 siblings, 1 reply; 17+ messages in thread
From: Bartosz Golaszewski @ 2025-05-13 13:15 UTC (permalink / raw)
To: Linus Walleij, Vladimir Zapolskiy, Piotr Wojtaszczyk,
Charles Keepax, Richard Fitzgerald, Andy Shevchenko,
Bartosz Golaszewski
Cc: Bartosz Golaszewski, linux-gpio, linux-kernel, linux-arm-kernel,
linux-sound, patches
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
On Tue, 06 May 2025 11:01:43 +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 controllers.
>
>
> [...]
Applied, thanks!
[01/12] gpio: lp873x: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/30d15b8949828811e9df3dafc12e3d523ed6e154
[02/12] gpio: lp87565: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/978d23c1db9a303f2fab817de28087ada5859a9a
[03/12] gpio: lpc18xx: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/4f71abfef92d9e302c7c62744fa806076b3ba819
[04/12] gpio: lpc32xx: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/1a7b6b536d509203325bccd88ae42499b45f5765
[05/12] gpio: madera: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/2e6b7f5ffe08d42196b31322e6443a9874c79a03
[06/12] gpio: max3191x: remove unused callbacks
https://git.kernel.org/brgl/linux/c/75e80b69e1367b95a98107fc38351b5b865c568c
[07/12] gpio: max730x: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/1938913798082cd284ab59afcdf68c2bb5ba1686
[08/12] gpio: max732x: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/66a6d0e5a77889cbec98152dadda70dd79f1678c
[09/12] gpio: max77620: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/8f9da4401b82faa788b663402ea699ccfd756597
[10/12] gpio: mb86s7x: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/dff5a31dcbd260eb61f0128876910809f04f1e3b
[11/12] gpio: mc33880: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/51227589e8388b452b4315907d2de5f7d5a06e87
[12/12] gpio: ml-ioh: use new GPIO line value setter callbacks
https://git.kernel.org/brgl/linux/c/d3f960365b8c35449d22b780383dc9b40d96203e
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16
2025-05-13 13:15 ` [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 3 for v6.16 Bartosz Golaszewski
@ 2025-05-13 13:37 ` Andy Shevchenko
0 siblings, 0 replies; 17+ messages in thread
From: Andy Shevchenko @ 2025-05-13 13:37 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Linus Walleij, Vladimir Zapolskiy, Piotr Wojtaszczyk,
Charles Keepax, Richard Fitzgerald, Bartosz Golaszewski,
linux-gpio, linux-kernel, linux-arm-kernel, linux-sound, patches
On Tue, May 13, 2025 at 03:15:51PM +0200, Bartosz Golaszewski wrote:
> On Tue, 06 May 2025 11:01:43 +0200, Bartosz Golaszewski wrote:
> [12/12] gpio: ml-ioh: use new GPIO line value setter callbacks
> https://git.kernel.org/brgl/linux/c/d3f960365b8c35449d22b780383dc9b40d96203e
I have already picked this up.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 17+ messages in thread