553
547
for (cur_irq = wm831x->irq_base;
554
548
cur_irq < ARRAY_SIZE(wm831x_irqs) + wm831x->irq_base;
556
set_irq_chip_data(cur_irq, wm831x);
557
set_irq_chip_and_handler(cur_irq, &wm831x_irq_chip,
550
irq_set_chip_data(cur_irq, wm831x);
551
irq_set_chip_and_handler(cur_irq, &wm831x_irq_chip,
558
552
handle_edge_irq);
559
set_irq_nested_thread(cur_irq, 1);
553
irq_set_nested_thread(cur_irq, 1);
561
555
/* ARM needs us to explicitly flag the IRQ as valid
562
556
* and will set them noprobe when we do so. */
563
557
#ifdef CONFIG_ARM
564
558
set_irq_flags(cur_irq, IRQF_VALID);
566
set_irq_noprobe(cur_irq);
560
irq_set_noprobe(cur_irq);
570
ret = request_threaded_irq(irq, NULL, wm831x_irq_thread,
571
IRQF_TRIGGER_LOW | IRQF_ONESHOT,
574
dev_err(wm831x->dev, "Failed to request IRQ %d: %d\n",
565
ret = request_threaded_irq(irq, NULL, wm831x_irq_thread,
566
IRQF_TRIGGER_LOW | IRQF_ONESHOT,
569
dev_err(wm831x->dev, "Failed to request IRQ %d: %d\n",
574
dev_warn(wm831x->dev,
575
"No interrupt specified - functionality limited\n");
579
580
/* Enable top level interrupts, we mask at secondary level */
580
581
wm831x_reg_write(wm831x, WM831X_SYSTEM_INTERRUPTS_MASK, 0);