ARM: mx25: Retrieve IIM base from dt
authorFabio Estevam <fabio.estevam@freescale.com>
Fri, 13 Mar 2015 13:31:54 +0000 (10:31 -0300)
committerShawn Guo <shawn.guo@linaro.org>
Fri, 13 Mar 2015 14:06:35 +0000 (22:06 +0800)
We should use dt to retrieve the IIM base address.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
arch/arm/mach-imx/cpu-imx25.c

index 96ec64b5ff7d3e056ddfdea0f3918278732ea0c1..d0ad67e802d33962c1f10f9bfabe9e3b01c7c903 100644 (file)
@@ -11,6 +11,8 @@
  */
 #include <linux/module.h>
 #include <linux/io.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
 
 #include "iim.h"
 #include "hardware.h"
@@ -20,8 +22,15 @@ static int mx25_cpu_rev = -1;
 static int mx25_read_cpu_rev(void)
 {
        u32 rev;
+       void __iomem *iim_base;
+       struct device_node *np;
+
+       np = of_find_compatible_node(NULL, NULL, "fsl,imx25-iim");
+       iim_base = of_iomap(np, 0);
+       BUG_ON(!iim_base);
+       rev = readl(iim_base + MXC_IIMSREV);
+       iounmap(iim_base);
 
-       rev = __raw_readl(MX25_IO_ADDRESS(MX25_IIM_BASE_ADDR + MXC_IIMSREV));
        switch (rev) {
        case 0x00:
                return IMX_CHIP_REVISION_1_0;