pinctrl / gpio: Introduce .set_config() callback for GPIO chips
[linux-2.6-block.git] / drivers / gpio / gpio-bcm-kona.c
index 3d1cf018e8e7e27c8d7baf06a9755c7ae6a5e429..41d0ac1425803eeeb5098c7a6f73d1c35aa17ce1 100644 (file)
@@ -308,6 +308,18 @@ static int bcm_kona_gpio_set_debounce(struct gpio_chip *chip, unsigned gpio,
        return 0;
 }
 
+static int bcm_kona_gpio_set_config(struct gpio_chip *chip, unsigned gpio,
+                                   unsigned long config)
+{
+       u32 debounce;
+
+       if (pinconf_to_config_param(config) != PIN_CONFIG_INPUT_DEBOUNCE)
+               return -ENOTSUPP;
+
+       debounce = pinconf_to_config_argument(config);
+       return bcm_kona_gpio_set_debounce(chip, gpio, debounce);
+}
+
 static const struct gpio_chip template_chip = {
        .label = "bcm-kona-gpio",
        .owner = THIS_MODULE,
@@ -318,7 +330,7 @@ static const struct gpio_chip template_chip = {
        .get = bcm_kona_gpio_get,
        .direction_output = bcm_kona_gpio_direction_output,
        .set = bcm_kona_gpio_set,
-       .set_debounce = bcm_kona_gpio_set_debounce,
+       .set_config = bcm_kona_gpio_set_config,
        .to_irq = bcm_kona_gpio_to_irq,
        .base = 0,
 };