From f725edd86b6b2415db9ae9bb6293f8300b9dbce9 Mon Sep 17 00:00:00 2001
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: Mon, 9 Nov 2020 22:53:23 +0200
Subject: [PATCH] gpiolib: Introduce gpio_set_debounce_timeout() for internal use
Git-commit: f725edd86b6b2415db9ae9bb6293f8300b9dbce9
Patch-mainline: v5.11-rc1
References: bsc#1180682
In some cases we would like to have debounce setter which doesn't fail
when a feature is not supported by a controller.
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
---
drivers/gpio/gpiolib.c | 7 +++++++
drivers/gpio/gpiolib.h | 1 +
2 files changed, 8 insertions(+)
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -3031,6 +3031,13 @@ static int gpio_set_config(struct gpio_c
return gpio_do_set_config(gc, offset, config);
}
+int gpio_set_debounce_timeout(struct gpio_desc *desc, unsigned int debounce)
+{
+ return gpio_set_config_with_argument_optional(desc,
+ PIN_CONFIG_INPUT_DEBOUNCE,
+ debounce);
+}
+
/**
* gpiod_direction_input - set the GPIO direction to input
* @desc: GPIO to set to input
--- a/drivers/gpio/gpiolib.h
+++ b/drivers/gpio/gpiolib.h
@@ -121,6 +121,7 @@ int gpiod_request(struct gpio_desc *desc
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);