ARM: mxs: get icoll base address from device tree
authorShawn Guo <shawn.guo@linaro.org>
Mon, 25 Mar 2013 13:13:22 +0000 (21:13 +0800)
committerShawn Guo <shawn.guo@linaro.org>
Mon, 1 Apr 2013 08:30:03 +0000 (16:30 +0800)
Rather than using the static definition, it gets icoll base address
with mapping from device tree.

As the result, <mach/mxs.h> inclusion can be removed from the driver
now.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
arch/arm/mach-mxs/icoll.c

index e26eeba46598356be29a31fc1e1caeac1c07a9c3..1cf32af1e3f6207126468f687b8981b9f19f306a 100644 (file)
@@ -22,9 +22,9 @@
 #include <linux/irqdomain.h>
 #include <linux/io.h>
 #include <linux/of.h>
+#include <linux/of_address.h>
 #include <linux/of_irq.h>
 #include <asm/exception.h>
-#include <mach/mxs.h>
 #include <mach/common.h>
 
 #define HW_ICOLL_VECTOR                                0x0000
@@ -38,7 +38,7 @@
 
 #define ICOLL_NUM_IRQS         128
 
-static void __iomem *icoll_base = MXS_IO_ADDRESS(MXS_ICOLL_BASE_ADDR);
+static void __iomem *icoll_base;
 static struct irq_domain *icoll_domain;
 
 static void icoll_ack_irq(struct irq_data *d)
@@ -103,6 +103,9 @@ static struct irq_domain_ops icoll_irq_domain_ops = {
 static void __init icoll_of_init(struct device_node *np,
                          struct device_node *interrupt_parent)
 {
+       icoll_base = of_iomap(np, 0);
+       WARN_ON(!icoll_base);
+
        /*
         * Interrupt Collector reset, which initializes the priority
         * for each irq to level 0.