]> Pileus Git - ~andy/linux/blobdiff - arch/arm/plat-mxc/include/mach/io.h
[ARM] MXC: do not include mach/hardware.h from mach/memory.h
[~andy/linux] / arch / arm / plat-mxc / include / mach / io.h
index 65b6810124c1604adb43d0adb3ba3803de6e9951..b4f2de7694667a9c81158ddedb92f8eda351ed18 100644 (file)
 /* Allow IO space to be anywhere in the memory */
 #define IO_SPACE_LIMIT 0xffffffff
 
+#ifdef CONFIG_ARCH_MX3
+#define __arch_ioremap __mx3_ioremap
+#define __arch_iounmap __iounmap
+
+static inline void __iomem *
+__mx3_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype)
+{
+       if (mtype == MT_DEVICE) {
+               /* Access all peripherals below 0x80000000 as nonshared device
+                * but leave l2cc alone.
+                */
+               if ((phys_addr < 0x80000000) && ((phys_addr < 0x30000000) ||
+                       (phys_addr >= 0x30000000 + SZ_1M)))
+                       mtype = MT_DEVICE_NONSHARED;
+       }
+
+       return __arm_ioremap(phys_addr, size, mtype);
+}
+#endif
+
 /* io address mapping macro */
-#define __io(a)                        ((void __iomem *)(a))
+#define __io(a)                __typesafe_io(a)
 
-#define __mem_pci(a)           (a)
+#define __mem_pci(a)   (a)
 
 #endif