summaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-merrifield.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpio/gpio-merrifield.c')
-rw-r--r--drivers/gpio/gpio-merrifield.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c
index 69e0f4ace465..f40088d268c1 100644
--- a/drivers/gpio/gpio-merrifield.c
+++ b/drivers/gpio/gpio-merrifield.c
@@ -190,6 +190,18 @@ static int mrfld_gpio_set_debounce(struct gpio_chip *chip, unsigned int offset,
190 return 0; 190 return 0;
191} 191}
192 192
193static int mrfld_gpio_set_config(struct gpio_chip *chip, unsigned int offset,
194 unsigned long config)
195{
196 u32 debounce;
197
198 if (pinconf_to_config_param(config) != PIN_CONFIG_INPUT_DEBOUNCE)
199 return -ENOTSUPP;
200
201 debounce = pinconf_to_config_argument(config);
202 return mrfld_gpio_set_debounce(chip, offset, debounce);
203}
204
193static void mrfld_irq_ack(struct irq_data *d) 205static void mrfld_irq_ack(struct irq_data *d)
194{ 206{
195 struct mrfld_gpio *priv = irq_data_get_irq_chip_data(d); 207 struct mrfld_gpio *priv = irq_data_get_irq_chip_data(d);
@@ -414,7 +426,7 @@ static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id
414 priv->chip.get = mrfld_gpio_get; 426 priv->chip.get = mrfld_gpio_get;
415 priv->chip.set = mrfld_gpio_set; 427 priv->chip.set = mrfld_gpio_set;
416 priv->chip.get_direction = mrfld_gpio_get_direction; 428 priv->chip.get_direction = mrfld_gpio_get_direction;
417 priv->chip.set_debounce = mrfld_gpio_set_debounce; 429 priv->chip.set_config = mrfld_gpio_set_config;
418 priv->chip.base = gpio_base; 430 priv->chip.base = gpio_base;
419 priv->chip.ngpio = MRFLD_NGPIO; 431 priv->chip.ngpio = MRFLD_NGPIO;
420 priv->chip.can_sleep = false; 432 priv->chip.can_sleep = false;