diff options
Diffstat (limited to 'drivers/gpio/gpio-merrifield.c')
-rw-r--r-- | drivers/gpio/gpio-merrifield.c | 11 |
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 | ||
384 | static 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 | |||
383 | static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id) | 390 | static 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); |