aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJin Yao <yao.jin@intel.com>2014-05-15 11:28:47 -0400
committerLinus Walleij <linus.walleij@linaro.org>2014-05-22 18:01:53 -0400
commit605a7bca7cf39cbfa835022e9c29b6a4bb980281 (patch)
treed064996664d6dd79e65a9898ea4d6b5cc5d1b126
parent20482d3279226d2d2802647ffa3ce82e511b74d7 (diff)
pinctrl: baytrail: Register GPIO chip after chip->to_irq is set
If chip->to_irq is NULL ACPI GPIO helpers don't register GPIO event handlers thus preventing any ACPI GPIO triggered events. Solve this by calling gpiochip_add() after we have set up drivers chip->to_irq hook. Signed-off-by: Jin Yao <yao.jin@intel.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--drivers/pinctrl/pinctrl-baytrail.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/pinctrl/pinctrl-baytrail.c b/drivers/pinctrl/pinctrl-baytrail.c
index 447f1dc25ea6..7c65c9dab215 100644
--- a/drivers/pinctrl/pinctrl-baytrail.c
+++ b/drivers/pinctrl/pinctrl-baytrail.c
@@ -527,12 +527,6 @@ static int byt_gpio_probe(struct platform_device *pdev)
527 gc->can_sleep = false; 527 gc->can_sleep = false;
528 gc->dev = dev; 528 gc->dev = dev;
529 529
530 ret = gpiochip_add(gc);
531 if (ret) {
532 dev_err(&pdev->dev, "failed adding byt-gpio chip\n");
533 return ret;
534 }
535
536 /* set up interrupts */ 530 /* set up interrupts */
537 irq_rc = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 531 irq_rc = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
538 if (irq_rc && irq_rc->start) { 532 if (irq_rc && irq_rc->start) {
@@ -550,6 +544,12 @@ static int byt_gpio_probe(struct platform_device *pdev)
550 irq_set_chained_handler(hwirq, byt_gpio_irq_handler); 544 irq_set_chained_handler(hwirq, byt_gpio_irq_handler);
551 } 545 }
552 546
547 ret = gpiochip_add(gc);
548 if (ret) {
549 dev_err(&pdev->dev, "failed adding byt-gpio chip\n");
550 return ret;
551 }
552
553 pm_runtime_enable(dev); 553 pm_runtime_enable(dev);
554 554
555 return 0; 555 return 0;