diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h
index d83e8bad20384291b1ad8c8e99d400277546922d..c06e6041df41bbde4fe03f66f5a0b478c128d949 100644
--- a/arch/arm/mach-realview/core.h
+++ b/arch/arm/mach-realview/core.h
@@ -26,8 +26,6 @@
 #include <asm/leds.h>
 #include <asm/io.h>
 
-#define __io_address(n)		__io(IO_ADDRESS(n))
-
 extern struct sys_timer realview_timer;
 
 #define AMBA_DEVICE(name,busid,base,plat)			\
diff --git a/arch/arm/mach-realview/localtimer.c b/arch/arm/mach-realview/localtimer.c
index 5e917e37d095762e567fd94b60bdcd1d35f1c8ad..c9d7c596b200866b8ccf2f8dfb98127044fbd8e8 100644
--- a/arch/arm/mach-realview/localtimer.c
+++ b/arch/arm/mach-realview/localtimer.c
@@ -21,8 +21,6 @@
 #include <asm/io.h>
 #include <asm/irq.h>
 
-#include "core.h"
-
 #define TWD_BASE(cpu)	(__io_address(REALVIEW_TWD_BASE) + \
 			 ((cpu) * REALVIEW_TWD_SIZE))
 
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
index 0c7d4ac9a7b371c7a4221d96a918812cbdb7c811..a8fbd76d8be5855e97eea74502f949cde0abf828 100644
--- a/arch/arm/mach-realview/platsmp.c
+++ b/arch/arm/mach-realview/platsmp.c
@@ -17,8 +17,7 @@
 #include <asm/cacheflush.h>
 #include <asm/hardware/arm_scu.h>
 #include <asm/hardware.h>
-
-#include "core.h"
+#include <asm/io.h>
 
 extern void realview_secondary_startup(void);
 
diff --git a/include/asm-arm/arch-realview/hardware.h b/include/asm-arm/arch-realview/hardware.h
index 67879cdb6ef2a21ac9b810293e28bd6ca6b094e4..9ca76dc3a7af8ef39fbb6af750a3882ada9e5231 100644
--- a/include/asm-arm/arch-realview/hardware.h
+++ b/include/asm-arm/arch-realview/hardware.h
@@ -27,5 +27,6 @@
 
 /* macro to get at IO space when running virtually */
 #define IO_ADDRESS(x)		(((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
+#define __io_address(n)		__io(IO_ADDRESS(n))
 
 #endif
diff --git a/include/asm-arm/arch-realview/system.h b/include/asm-arm/arch-realview/system.h
index 9f8fcbca0869edfbf06829657c751391d527786b..6f3d0ce0ca1ed24350c0251aa316e11660db4de7 100644
--- a/include/asm-arm/arch-realview/system.h
+++ b/include/asm-arm/arch-realview/system.h
@@ -36,7 +36,7 @@ static inline void arch_idle(void)
 
 static inline void arch_reset(char mode)
 {
-	unsigned int hdr_ctrl =	(IO_ADDRESS(REALVIEW_SYS_BASE) + REALVIEW_SYS_RESETCTL_OFFSET);
+	void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_RESETCTL_OFFSET;
 	unsigned int val;
 
 	/*