aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/mfd/glamo/glamo-core.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c
index 287807a0d0c..91053e47729 100644
--- a/drivers/mfd/glamo/glamo-core.c
+++ b/drivers/mfd/glamo/glamo-core.c
@@ -1145,6 +1145,22 @@ static int __init glamo_probe(struct platform_device *pdev)
goto out_free;
}
+ for (irq = IRQ_GLAMO(0); irq <= IRQ_GLAMO(8); irq++) {
+ set_irq_chip(irq, &glamo_irq_chip);
+ set_irq_handler(irq, handle_level_irq);
+ set_irq_flags(irq, IRQF_VALID);
+ }
+
+ if (glamo->pdata->glamo_irq_is_wired &&
+ !glamo->pdata->glamo_irq_is_wired()) {
+ set_irq_chained_handler(glamo->irq, glamo_irq_demux_handler);
+ set_irq_type(glamo->irq, IRQT_FALLING);
+ dev_info(&pdev->dev, "Glamo interrupt registered\n");
+ glamo->irq_works = 1;
+ } else {
+ dev_err(&pdev->dev, "Glamo interrupt not used\n");
+ glamo->irq_works = 0;
+ }
/* bring MCI specific stuff over from our MFD platform data */
glamo_mci_def_pdata.glamo_set_mci_power =
glamo->pdata->glamo_set_mci_power;
@@ -1227,20 +1243,6 @@ static int __init glamo_probe(struct platform_device *pdev)
glamo_lcm_reset(1);
- for (irq = IRQ_GLAMO(0); irq <= IRQ_GLAMO(8); irq++) {
- set_irq_chip(irq, &glamo_irq_chip);
- set_irq_handler(irq, handle_level_irq);
- set_irq_flags(irq, IRQF_VALID);
- }
-
- if (glamo->pdata->glamo_irq_is_wired &&
- !glamo->pdata->glamo_irq_is_wired()) {
- set_irq_chained_handler(glamo->irq, glamo_irq_demux_handler);
- set_irq_type(glamo->irq, IRQ_TYPE_EDGE_FALLING);
- glamo->irq_works = 1;
- } else
- glamo->irq_works = 0;
-
return 0;
out_free: