[PATCH 7/8] mfd/db8500-prcmu: use the irq_domain_add_simple()
Linus Walleij
linus.walleij at stericsson.com
Thu Oct 18 13:19:22 EDT 2012
From: Linus Walleij <linus.walleij at linaro.org>
To be able to use SPARSE_IRQ while yet not using device tree,
we need to use irq_domain_add_simple() that will allocate
descriptors for the IRQs in the non-DT case, and fall back
to using the linear irqdomain in the DT case.
Cc: Lee Jones <lee.jones at linaro.org>
Cc: Samuel Ortiz <sameo at linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
---
Sam, requesting you ACK on this patch so we can merge them
all together.
Lee, requesting your testing with Device Tree to see that this
actually can fly as I wanted it.
---
drivers/mfd/db8500-prcmu.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c
index 00b8b0f..cea29ba 100644
--- a/drivers/mfd/db8500-prcmu.c
+++ b/drivers/mfd/db8500-prcmu.c
@@ -2697,9 +2697,15 @@ static struct irq_domain_ops db8500_irq_ops = {
static int db8500_irq_init(struct device_node *np)
{
- db8500_irq_domain = irq_domain_add_legacy(
- np, NUM_PRCMU_WAKEUPS, IRQ_PRCMU_BASE,
- 0, &db8500_irq_ops, NULL);
+ int irq_base = -1;
+
+ /* In the device tree case, just take some IRQs */
+ if (!np)
+ irq_base = IRQ_PRCMU_BASE;
+
+ db8500_irq_domain = irq_domain_add_simple(
+ np, NUM_PRCMU_WAKEUPS, irq_base,
+ &db8500_irq_ops, NULL);
if (!db8500_irq_domain) {
pr_err("Failed to create irqdomain\n");
--
1.7.11.3
More information about the linux-arm-kernel
mailing list