linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Input: convert GPIO chips to using new value setters
@ 2025-04-07  7:19 Bartosz Golaszewski
  2025-04-07  7:19 ` [PATCH 1/3] Input: ad7879 - use new GPIO line value setter callbacks Bartosz Golaszewski
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-07  7:19 UTC (permalink / raw)
  To: Michael Hennerich, Dmitry Torokhov, Linus Walleij,
	Bartosz Golaszewski
  Cc: linux-input, linux-kernel, linux-gpio, 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 GPIO controllers under drivers/input/.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
Bartosz Golaszewski (3):
      Input: ad7879 - use new GPIO line value setter callbacks
      Input: adp5588 - use new GPIO line value setter callbacks
      Input: adp5589 - use new GPIO line value setter callbacks

 drivers/input/keyboard/adp5588-keys.c |  9 +++++----
 drivers/input/keyboard/adp5589-keys.c | 11 ++++++-----
 drivers/input/touchscreen/ad7879.c    | 11 +++++++----
 3 files changed, 18 insertions(+), 13 deletions(-)
---
base-commit: 0af2f6be1b4281385b618cb86ad946eded089ac8
change-id: 20250331-gpiochip-set-rv-input-bc12818c5732

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


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

* [PATCH 1/3] Input: ad7879 - use new GPIO line value setter callbacks
  2025-04-07  7:19 [PATCH 0/3] Input: convert GPIO chips to using new value setters Bartosz Golaszewski
@ 2025-04-07  7:19 ` Bartosz Golaszewski
  2025-04-07  7:19 ` [PATCH 2/3] Input: adp5588 " Bartosz Golaszewski
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-07  7:19 UTC (permalink / raw)
  To: Michael Hennerich, Dmitry Torokhov, Linus Walleij,
	Bartosz Golaszewski
  Cc: linux-input, linux-kernel, linux-gpio, 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/input/touchscreen/ad7879.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/input/touchscreen/ad7879.c b/drivers/input/touchscreen/ad7879.c
index f661e199b63c..12fc39f9e784 100644
--- a/drivers/input/touchscreen/ad7879.c
+++ b/drivers/input/touchscreen/ad7879.c
@@ -444,10 +444,11 @@ static int ad7879_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
 	return !!(val & AD7879_GPIO_DATA);
 }
 
-static void ad7879_gpio_set_value(struct gpio_chip *chip,
-				  unsigned gpio, int value)
+static int ad7879_gpio_set_value(struct gpio_chip *chip, unsigned int gpio,
+				 int value)
 {
 	struct ad7879 *ts = gpiochip_get_data(chip);
+	int ret;
 
 	mutex_lock(&ts->mutex);
 	if (value)
@@ -455,8 +456,10 @@ static void ad7879_gpio_set_value(struct gpio_chip *chip,
 	else
 		ts->cmd_crtl2 &= ~AD7879_GPIO_DATA;
 
-	ad7879_write(ts, AD7879_REG_CTRL2, ts->cmd_crtl2);
+	ret = ad7879_write(ts, AD7879_REG_CTRL2, ts->cmd_crtl2);
 	mutex_unlock(&ts->mutex);
+
+	return ret;
 }
 
 static int ad7879_gpio_add(struct ad7879 *ts)
@@ -472,7 +475,7 @@ static int ad7879_gpio_add(struct ad7879 *ts)
 	ts->gc.direction_input = ad7879_gpio_direction_input;
 	ts->gc.direction_output = ad7879_gpio_direction_output;
 	ts->gc.get = ad7879_gpio_get_value;
-	ts->gc.set = ad7879_gpio_set_value;
+	ts->gc.set_rv = ad7879_gpio_set_value;
 	ts->gc.can_sleep = 1;
 	ts->gc.base = -1;
 	ts->gc.ngpio = 1;

-- 
2.45.2


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

* [PATCH 2/3] Input: adp5588 - use new GPIO line value setter callbacks
  2025-04-07  7:19 [PATCH 0/3] Input: convert GPIO chips to using new value setters Bartosz Golaszewski
  2025-04-07  7:19 ` [PATCH 1/3] Input: ad7879 - use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-04-07  7:19 ` Bartosz Golaszewski
  2025-04-07  7:19 ` [PATCH 3/3] Input: adp5589 " Bartosz Golaszewski
  2025-04-15  8:31 ` [PATCH 0/3] Input: convert GPIO chips to using new value setters Linus Walleij
  3 siblings, 0 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-07  7:19 UTC (permalink / raw)
  To: Michael Hennerich, Dmitry Torokhov, Linus Walleij,
	Bartosz Golaszewski
  Cc: linux-input, linux-kernel, linux-gpio, 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/input/keyboard/adp5588-keys.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/input/keyboard/adp5588-keys.c b/drivers/input/keyboard/adp5588-keys.c
index dc734974ce06..2b2aca08423a 100644
--- a/drivers/input/keyboard/adp5588-keys.c
+++ b/drivers/input/keyboard/adp5588-keys.c
@@ -232,8 +232,8 @@ static int adp5588_gpio_get_value(struct gpio_chip *chip, unsigned int off)
 	return !!(val & bit);
 }
 
-static void adp5588_gpio_set_value(struct gpio_chip *chip,
-				   unsigned int off, int val)
+static int adp5588_gpio_set_value(struct gpio_chip *chip, unsigned int off,
+				  int val)
 {
 	struct adp5588_kpad *kpad = gpiochip_get_data(chip);
 	unsigned int bank = ADP5588_BANK(kpad->gpiomap[off]);
@@ -246,7 +246,8 @@ static void adp5588_gpio_set_value(struct gpio_chip *chip,
 	else
 		kpad->dat_out[bank] &= ~bit;
 
-	adp5588_write(kpad->client, GPIO_DAT_OUT1 + bank, kpad->dat_out[bank]);
+	return adp5588_write(kpad->client, GPIO_DAT_OUT1 + bank,
+			     kpad->dat_out[bank]);
 }
 
 static int adp5588_gpio_set_config(struct gpio_chip *chip,  unsigned int off,
@@ -424,7 +425,7 @@ static int adp5588_gpio_add(struct adp5588_kpad *kpad)
 	kpad->gc.direction_input = adp5588_gpio_direction_input;
 	kpad->gc.direction_output = adp5588_gpio_direction_output;
 	kpad->gc.get = adp5588_gpio_get_value;
-	kpad->gc.set = adp5588_gpio_set_value;
+	kpad->gc.set_rv = adp5588_gpio_set_value;
 	kpad->gc.set_config = adp5588_gpio_set_config;
 	kpad->gc.can_sleep = 1;
 

-- 
2.45.2


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

* [PATCH 3/3] Input: adp5589 - use new GPIO line value setter callbacks
  2025-04-07  7:19 [PATCH 0/3] Input: convert GPIO chips to using new value setters Bartosz Golaszewski
  2025-04-07  7:19 ` [PATCH 1/3] Input: ad7879 - use new GPIO line value setter callbacks Bartosz Golaszewski
  2025-04-07  7:19 ` [PATCH 2/3] Input: adp5588 " Bartosz Golaszewski
@ 2025-04-07  7:19 ` Bartosz Golaszewski
  2025-04-15  9:06   ` Nuno Sá
  2025-04-15  8:31 ` [PATCH 0/3] Input: convert GPIO chips to using new value setters Linus Walleij
  3 siblings, 1 reply; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-07  7:19 UTC (permalink / raw)
  To: Michael Hennerich, Dmitry Torokhov, Linus Walleij,
	Bartosz Golaszewski
  Cc: linux-input, linux-kernel, linux-gpio, 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/input/keyboard/adp5589-keys.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/input/keyboard/adp5589-keys.c b/drivers/input/keyboard/adp5589-keys.c
index 81d0876ee358..986a789f1ec3 100644
--- a/drivers/input/keyboard/adp5589-keys.c
+++ b/drivers/input/keyboard/adp5589-keys.c
@@ -404,8 +404,8 @@ static int adp5589_gpio_get_value(struct gpio_chip *chip, unsigned off)
 	return !!(val & bit);
 }
 
-static void adp5589_gpio_set_value(struct gpio_chip *chip,
-				   unsigned off, int val)
+static int adp5589_gpio_set_value(struct gpio_chip *chip, unsigned int off,
+				  int val)
 {
 	struct adp5589_kpad *kpad = gpiochip_get_data(chip);
 	unsigned int bank = kpad->var->bank(kpad->gpiomap[off]);
@@ -418,8 +418,9 @@ static void adp5589_gpio_set_value(struct gpio_chip *chip,
 	else
 		kpad->dat_out[bank] &= ~bit;
 
-	adp5589_write(kpad->client, kpad->var->reg(ADP5589_GPO_DATA_OUT_A) +
-		      bank, kpad->dat_out[bank]);
+	return adp5589_write(kpad->client,
+			     kpad->var->reg(ADP5589_GPO_DATA_OUT_A) + bank,
+			     kpad->dat_out[bank]);
 }
 
 static int adp5589_gpio_direction_input(struct gpio_chip *chip, unsigned off)
@@ -520,7 +521,7 @@ static int adp5589_gpio_add(struct adp5589_kpad *kpad)
 	kpad->gc.direction_input = adp5589_gpio_direction_input;
 	kpad->gc.direction_output = adp5589_gpio_direction_output;
 	kpad->gc.get = adp5589_gpio_get_value;
-	kpad->gc.set = adp5589_gpio_set_value;
+	kpad->gc.set_rv = adp5589_gpio_set_value;
 	kpad->gc.can_sleep = 1;
 
 	kpad->gc.base = gpio_data->gpio_start;

-- 
2.45.2


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

* Re: [PATCH 0/3] Input: convert GPIO chips to using new value setters
  2025-04-07  7:19 [PATCH 0/3] Input: convert GPIO chips to using new value setters Bartosz Golaszewski
                   ` (2 preceding siblings ...)
  2025-04-07  7:19 ` [PATCH 3/3] Input: adp5589 " Bartosz Golaszewski
@ 2025-04-15  8:31 ` Linus Walleij
  3 siblings, 0 replies; 8+ messages in thread
From: Linus Walleij @ 2025-04-15  8:31 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: Michael Hennerich, Dmitry Torokhov, linux-input, linux-kernel,
	linux-gpio, Bartosz Golaszewski

On Mon, Apr 7, 2025 at 9:19 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 GPIO controllers under drivers/input/.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

The series:
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

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

* Re: [PATCH 3/3] Input: adp5589 - use new GPIO line value setter callbacks
  2025-04-07  7:19 ` [PATCH 3/3] Input: adp5589 " Bartosz Golaszewski
@ 2025-04-15  9:06   ` Nuno Sá
  2025-04-17 12:31     ` Bartosz Golaszewski
  0 siblings, 1 reply; 8+ messages in thread
From: Nuno Sá @ 2025-04-15  9:06 UTC (permalink / raw)
  To: Bartosz Golaszewski, Michael Hennerich, Dmitry Torokhov,
	Linus Walleij
  Cc: linux-input, linux-kernel, linux-gpio, Bartosz Golaszewski

On Mon, 2025-04-07 at 09:19 +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>
> ---

Let's maybe drop this one? I'll send a new version of this [1] that will drop
this driver...

BTW, I can already change my v2 and use .set_rv()...

[1]: https://lore.kernel.org/linux-input/20250313-dev-adp5589-fw-v1-13-20e80d4bd4ea@analog.com/

- Nuno Sá

>  drivers/input/keyboard/adp5589-keys.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/input/keyboard/adp5589-keys.c
> b/drivers/input/keyboard/adp5589-keys.c
> index 81d0876ee358..986a789f1ec3 100644
> --- a/drivers/input/keyboard/adp5589-keys.c
> +++ b/drivers/input/keyboard/adp5589-keys.c
> @@ -404,8 +404,8 @@ static int adp5589_gpio_get_value(struct gpio_chip *chip,
> unsigned off)
>  	return !!(val & bit);
>  }
>  
> -static void adp5589_gpio_set_value(struct gpio_chip *chip,
> -				   unsigned off, int val)
> +static int adp5589_gpio_set_value(struct gpio_chip *chip, unsigned int off,
> +				  int val)
>  {
>  	struct adp5589_kpad *kpad = gpiochip_get_data(chip);
>  	unsigned int bank = kpad->var->bank(kpad->gpiomap[off]);
> @@ -418,8 +418,9 @@ static void adp5589_gpio_set_value(struct gpio_chip *chip,
>  	else
>  		kpad->dat_out[bank] &= ~bit;
>  
> -	adp5589_write(kpad->client, kpad->var->reg(ADP5589_GPO_DATA_OUT_A) +
> -		      bank, kpad->dat_out[bank]);
> +	return adp5589_write(kpad->client,
> +			     kpad->var->reg(ADP5589_GPO_DATA_OUT_A) + bank,
> +			     kpad->dat_out[bank]);
>  }
>  
>  static int adp5589_gpio_direction_input(struct gpio_chip *chip, unsigned off)
> @@ -520,7 +521,7 @@ static int adp5589_gpio_add(struct adp5589_kpad *kpad)
>  	kpad->gc.direction_input = adp5589_gpio_direction_input;
>  	kpad->gc.direction_output = adp5589_gpio_direction_output;
>  	kpad->gc.get = adp5589_gpio_get_value;
> -	kpad->gc.set = adp5589_gpio_set_value;
> +	kpad->gc.set_rv = adp5589_gpio_set_value;
>  	kpad->gc.can_sleep = 1;
>  
>  	kpad->gc.base = gpio_data->gpio_start;

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

* Re: [PATCH 3/3] Input: adp5589 - use new GPIO line value setter callbacks
  2025-04-15  9:06   ` Nuno Sá
@ 2025-04-17 12:31     ` Bartosz Golaszewski
  2025-04-22  9:01       ` Bartosz Golaszewski
  0 siblings, 1 reply; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-17 12:31 UTC (permalink / raw)
  To: Nuno Sá
  Cc: Michael Hennerich, Dmitry Torokhov, Linus Walleij, linux-input,
	linux-kernel, linux-gpio, Bartosz Golaszewski

On Tue, Apr 15, 2025 at 11:06 AM Nuno Sá <noname.nuno@gmail.com> wrote:
>
> On Mon, 2025-04-07 at 09:19 +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>
> > ---
>
> Let's maybe drop this one? I'll send a new version of this [1] that will drop
> this driver...
>
> BTW, I can already change my v2 and use .set_rv()...
>
> [1]: https://lore.kernel.org/linux-input/20250313-dev-adp5589-fw-v1-13-20e80d4bd4ea@analog.com/
>

Sure, as long as the new variant is used, I don't care.

Bart

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

* Re: [PATCH 3/3] Input: adp5589 - use new GPIO line value setter callbacks
  2025-04-17 12:31     ` Bartosz Golaszewski
@ 2025-04-22  9:01       ` Bartosz Golaszewski
  0 siblings, 0 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2025-04-22  9:01 UTC (permalink / raw)
  To: Nuno Sá, Dmitry Torokhov
  Cc: Michael Hennerich, Linus Walleij, linux-input, linux-kernel,
	linux-gpio, Bartosz Golaszewski

On Thu, Apr 17, 2025 at 2:31 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> On Tue, Apr 15, 2025 at 11:06 AM Nuno Sá <noname.nuno@gmail.com> wrote:
> >
> > On Mon, 2025-04-07 at 09:19 +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>
> > > ---
> >
> > Let's maybe drop this one? I'll send a new version of this [1] that will drop
> > this driver...
> >
> > BTW, I can already change my v2 and use .set_rv()...
> >
> > [1]: https://lore.kernel.org/linux-input/20250313-dev-adp5589-fw-v1-13-20e80d4bd4ea@analog.com/
> >
>
> Sure, as long as the new variant is used, I don't care.
>
> Bart

Dmitry,

Can you still pick up patches 1 and 2 please?

Bartosz

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

end of thread, other threads:[~2025-04-22  9:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-07  7:19 [PATCH 0/3] Input: convert GPIO chips to using new value setters Bartosz Golaszewski
2025-04-07  7:19 ` [PATCH 1/3] Input: ad7879 - use new GPIO line value setter callbacks Bartosz Golaszewski
2025-04-07  7:19 ` [PATCH 2/3] Input: adp5588 " Bartosz Golaszewski
2025-04-07  7:19 ` [PATCH 3/3] Input: adp5589 " Bartosz Golaszewski
2025-04-15  9:06   ` Nuno Sá
2025-04-17 12:31     ` Bartosz Golaszewski
2025-04-22  9:01       ` Bartosz Golaszewski
2025-04-15  8:31 ` [PATCH 0/3] Input: 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).