]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/gpio/gpio-ep93xx.c
Merge branches 'for-4.11/upstream-fixes', 'for-4.12/accutouch', 'for-4.12/cp2112...
[mirror_ubuntu-artful-kernel.git] / drivers / gpio / gpio-ep93xx.c
index d054219e18b930d1cc0df7880066fd3e8b3b0ed1..45d384039e9b1ca13c410fbbcfc3091a51e6bfb0 100644 (file)
@@ -291,15 +291,20 @@ static struct ep93xx_gpio_bank ep93xx_gpio_banks[] = {
        EP93XX_GPIO_BANK("H", 0x40, 0x44, 56, false),
 };
 
-static int ep93xx_gpio_set_debounce(struct gpio_chip *chip,
-                                   unsigned offset, unsigned debounce)
+static int ep93xx_gpio_set_config(struct gpio_chip *chip, unsigned offset,
+                                 unsigned long config)
 {
        int gpio = chip->base + offset;
        int irq = gpio_to_irq(gpio);
+       u32 debounce;
+
+       if (pinconf_to_config_param(config) != PIN_CONFIG_INPUT_DEBOUNCE)
+               return -ENOTSUPP;
 
        if (irq < 0)
                return -EINVAL;
 
+       debounce = pinconf_to_config_argument(config);
        ep93xx_gpio_int_debounce(irq, debounce ? true : false);
 
        return 0;
@@ -335,7 +340,7 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc, struct device *dev,
        gc->base = bank->base;
 
        if (bank->has_debounce) {
-               gc->set_debounce = ep93xx_gpio_set_debounce;
+               gc->set_config = ep93xx_gpio_set_config;
                gc->to_irq = ep93xx_gpio_to_irq;
        }