aboutsummaryrefslogtreecommitdiffstats
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.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c
index dd67a31ac337..c38624ea0251 100644
--- a/drivers/gpio/gpio-merrifield.c
+++ b/drivers/gpio/gpio-merrifield.c
@@ -9,6 +9,7 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 */ 10 */
11 11
12#include <linux/acpi.h>
12#include <linux/bitops.h> 13#include <linux/bitops.h>
13#include <linux/gpio/driver.h> 14#include <linux/gpio/driver.h>
14#include <linux/init.h> 15#include <linux/init.h>
@@ -380,9 +381,16 @@ static void mrfld_irq_init_hw(struct mrfld_gpio *priv)
380 } 381 }
381} 382}
382 383
384static const char *mrfld_gpio_get_pinctrl_dev_name(void)
385{
386 const char *dev_name = acpi_dev_get_first_match_name("INTC1002", NULL, -1);
387 return dev_name ? dev_name : "pinctrl-merrifield";
388}
389
383static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id) 390static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id)
384{ 391{
385 const struct mrfld_gpio_pinrange *range; 392 const struct mrfld_gpio_pinrange *range;
393 const char *pinctrl_dev_name;
386 struct mrfld_gpio *priv; 394 struct mrfld_gpio *priv;
387 u32 gpio_base, irq_base; 395 u32 gpio_base, irq_base;
388 void __iomem *base; 396 void __iomem *base;
@@ -439,10 +447,11 @@ static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id
439 return retval; 447 return retval;
440 } 448 }
441 449
450 pinctrl_dev_name = mrfld_gpio_get_pinctrl_dev_name();
442 for (i = 0; i < ARRAY_SIZE(mrfld_gpio_ranges); i++) { 451 for (i = 0; i < ARRAY_SIZE(mrfld_gpio_ranges); i++) {
443 range = &mrfld_gpio_ranges[i]; 452 range = &mrfld_gpio_ranges[i];
444 retval = gpiochip_add_pin_range(&priv->chip, 453 retval = gpiochip_add_pin_range(&priv->chip,
445 "pinctrl-merrifield", 454 pinctrl_dev_name,
446 range->gpio_base, 455 range->gpio_base,
447 range->pin_base, 456 range->pin_base,
448 range->npins); 457 range->npins);