summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/mfd/arizona-irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/mfd/arizona-irq.c')
-rw-r--r--kernel/drivers/mfd/arizona-irq.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/kernel/drivers/mfd/arizona-irq.c b/kernel/drivers/mfd/arizona-irq.c
index d063b94b9..3d425e93c 100644
--- a/kernel/drivers/mfd/arizona-irq.c
+++ b/kernel/drivers/mfd/arizona-irq.c
@@ -169,24 +169,17 @@ static struct irq_chip arizona_irq_chip = {
static int arizona_irq_map(struct irq_domain *h, unsigned int virq,
irq_hw_number_t hw)
{
- struct regmap_irq_chip_data *data = h->host_data;
+ struct arizona *data = h->host_data;
irq_set_chip_data(virq, data);
irq_set_chip_and_handler(virq, &arizona_irq_chip, handle_simple_irq);
irq_set_nested_thread(virq, 1);
-
- /* ARM needs us to explicitly flag the IRQ as valid
- * and will set them noprobe when we do so. */
-#ifdef CONFIG_ARM
- set_irq_flags(virq, IRQF_VALID);
-#else
irq_set_noprobe(virq);
-#endif
return 0;
}
-static struct irq_domain_ops arizona_domain_ops = {
+static const struct irq_domain_ops arizona_domain_ops = {
.map = arizona_irq_map,
.xlate = irq_domain_xlate_twocell,
};
@@ -234,6 +227,15 @@ int arizona_irq_init(struct arizona *arizona)
arizona->ctrlif_error = false;
break;
#endif
+#ifdef CONFIG_MFD_WM8998
+ case WM8998:
+ case WM1814:
+ aod = &wm8998_aod;
+ irq = &wm8998_irq;
+
+ arizona->ctrlif_error = false;
+ break;
+#endif
default:
BUG_ON("Unknown Arizona class device" == NULL);
return -EINVAL;