diff mbox series

[v5,08/17] gpiolib: Extract gpio_set_debounce_timeout() for internal use

Message ID 20201109205332.19592-9-andriy.shevchenko@linux.intel.com
State New
Headers show
Series gpiolib: acpi: pin configuration fixes | expand

Commit Message

Andy Shevchenko Nov. 9, 2020, 8:53 p.m. UTC
In some cases we would like to have debounce setter which doesn't fail
when feature is not supported by a controller.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/gpio/gpiolib.c | 7 +++++++
 drivers/gpio/gpiolib.h | 1 +
 2 files changed, 8 insertions(+)

Comments

Mika Westerberg Nov. 11, 2020, 3:39 p.m. UTC | #1
On Mon, Nov 09, 2020 at 10:53:23PM +0200, Andy Shevchenko wrote:
> In some cases we would like to have debounce setter which doesn't fail
> when feature is not supported by a controller.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  drivers/gpio/gpiolib.c | 7 +++++++
>  drivers/gpio/gpiolib.h | 1 +
>  2 files changed, 8 insertions(+)
> 
> diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> index 4558af08df23..9d23fbf1f7cd 100644
> --- a/drivers/gpio/gpiolib.c
> +++ b/drivers/gpio/gpiolib.c
> @@ -2162,6 +2162,13 @@ static int gpio_set_bias(struct gpio_desc *desc)
>  	return gpio_set_config_with_argument_optional(desc, bias, arg);
>  }
>  
> +int gpio_set_debounce_timeout(struct gpio_desc *desc, unsigned int debounce)
> +{
> +	enum pin_config_param mode = PIN_CONFIG_PERSIST_STATE;
> +
> +	return gpio_set_config_with_argument_optional(desc, mode, debounce);

Again I think mode variable is pretty useless here and does not improve
readability.
Andy Shevchenko Nov. 11, 2020, 3:46 p.m. UTC | #2
On Wed, Nov 11, 2020 at 5:40 PM Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:
> On Mon, Nov 09, 2020 at 10:53:23PM +0200, Andy Shevchenko wrote:

...

> Again I think mode variable is pretty useless here and does not improve
> readability.

You mean something like

    return gpio_set_config_with_argument_optional(desc,
                PIN_CONFIG_INPUT_DEBOUNCE, debounce);

is better?
Mika Westerberg Nov. 11, 2020, 3:52 p.m. UTC | #3
On Wed, Nov 11, 2020 at 05:46:55PM +0200, Andy Shevchenko wrote:
> On Wed, Nov 11, 2020 at 5:40 PM Mika Westerberg
> <mika.westerberg@linux.intel.com> wrote:
> > On Mon, Nov 09, 2020 at 10:53:23PM +0200, Andy Shevchenko wrote:
> 
> ...
> 
> > Again I think mode variable is pretty useless here and does not improve
> > readability.
> 
> You mean something like
> 
>     return gpio_set_config_with_argument_optional(desc,
>                 PIN_CONFIG_INPUT_DEBOUNCE, debounce);
> 
> is better?

Yes.
Andy Shevchenko Nov. 11, 2020, 4:15 p.m. UTC | #4
On Wed, Nov 11, 2020 at 5:54 PM Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:
> On Wed, Nov 11, 2020 at 05:46:55PM +0200, Andy Shevchenko wrote:
> > On Wed, Nov 11, 2020 at 5:40 PM Mika Westerberg
> > <mika.westerberg@linux.intel.com> wrote:
> > > On Mon, Nov 09, 2020 at 10:53:23PM +0200, Andy Shevchenko wrote:

...

> > > Again I think mode variable is pretty useless here and does not improve
> > > readability.
> >
> > You mean something like
> >
> >     return gpio_set_config_with_argument_optional(desc,
> >                 PIN_CONFIG_INPUT_DEBOUNCE, debounce);
> >
> > is better?

Hmm... Not sure I can agree with this, but I can change.
diff mbox series

Patch

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 4558af08df23..9d23fbf1f7cd 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -2162,6 +2162,13 @@  static int gpio_set_bias(struct gpio_desc *desc)
 	return gpio_set_config_with_argument_optional(desc, bias, arg);
 }
 
+int gpio_set_debounce_timeout(struct gpio_desc *desc, unsigned int debounce)
+{
+	enum pin_config_param mode = PIN_CONFIG_PERSIST_STATE;
+
+	return gpio_set_config_with_argument_optional(desc, mode, debounce);
+}
+
 /**
  * gpiod_direction_input - set the GPIO direction to input
  * @desc:	GPIO to set to input
diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h
index 16bc5731673c..9b1a1c782704 100644
--- a/drivers/gpio/gpiolib.h
+++ b/drivers/gpio/gpiolib.h
@@ -136,6 +136,7 @@  int gpiod_request(struct gpio_desc *desc, const char *label);
 void gpiod_free(struct gpio_desc *desc);
 int gpiod_configure_flags(struct gpio_desc *desc, const char *con_id,
 		unsigned long lflags, enum gpiod_flags dflags);
+int gpio_set_debounce_timeout(struct gpio_desc *desc, unsigned int debounce);
 int gpiod_hog(struct gpio_desc *desc, const char *name,
 		unsigned long lflags, enum gpiod_flags dflags);