*
  * IO definitions for TI OMAP processors and boards
  *
- * Copied from linux/include/asm-arm/arch-sa1100/io.h
+ * Copied from arch/arm/mach-sa1100/include/mach/io.h
  * Copyright (C) 1997-1999 Russell King
  *
  * This program is free software; you can redistribute it and/or modify it
 
 #endif
 
-#ifdef __ASSEMBLER__
-
-#define IO_ADDRESS(pa)         __IO_ADDRESS(pa)
-#define OMAP1_IO_ADDRESS(pa)   __OMAP1_IO_ADDRESS(pa)
-#define OMAP2_IO_ADDRESS(pa)   __OMAP2_IO_ADDRESS(pa)
+#define IO_ADDRESS(pa)         IOMEM(__IO_ADDRESS(pa))
+#define OMAP1_IO_ADDRESS(pa)   IOMEM(__OMAP1_IO_ADDRESS(pa))
+#define OMAP2_IO_ADDRESS(pa)   IOMEM(__OMAP2_IO_ADDRESS(pa))
 
+#ifdef __ASSEMBLER__
+#define IOMEM(x)               x
 #else
-
-#define IO_ADDRESS(pa)         ((void __iomem *)__IO_ADDRESS(pa))
-#define OMAP1_IO_ADDRESS(pa)   ((void __iomem *)__OMAP1_IO_ADDRESS(pa))
-#define OMAP2_IO_ADDRESS(pa)   ((void __iomem *)__OMAP2_IO_ADDRESS(pa))
+#define IOMEM(x)               ((void __force __iomem *)(x))
 
 /*
  * Functions to access the OMAP IO region