diff --git a/cpu/arm1136/mx31/Makefile b/cpu/arm1136/mx31/Makefile
index b648ffd6ffcf5dc58160da7034d60f18b0627496..0e06f0a2b21043485f9d7d922698840080f85623 100644
--- a/cpu/arm1136/mx31/Makefile
+++ b/cpu/arm1136/mx31/Makefile
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 LIB	= $(obj)lib$(SOC).a
 
-COBJS	= interrupts.o serial.o generic.o
+COBJS	= interrupts.o generic.o
 
 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS))
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index e76a2addc3a4bc627b6e00b83a715ec3c9e776dc..619d9da1a1ccd1ef716f21a4a8d79afcd74b9077 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -35,6 +35,7 @@ COBJS-$(CONFIG_S3C64XX) += s3c64xx.o
 COBJS-$(CONFIG_SYS_NS16550_SERIAL) += serial.o
 COBJS-$(CONFIG_IXP_SERIAL) += serial_ixp.o
 COBJS-$(CONFIG_MAX3100_SERIAL) += serial_max3100.o
+COBJS-$(CONFIG_MX31_UART) += serial_mx31.o
 COBJS-$(CONFIG_NETARM_SERIAL) += serial_netarm.o
 COBJS-$(CONFIG_PL010_SERIAL) += serial_pl01x.o
 COBJS-$(CONFIG_PL011_SERIAL) += serial_pl01x.o
diff --git a/cpu/arm1136/mx31/serial.c b/drivers/serial/serial_mx31.c
similarity index 99%
rename from cpu/arm1136/mx31/serial.c
rename to drivers/serial/serial_mx31.c
index e025e941d912709d5ad2a7c073aaf1005e6c06b3..7c0682ad77737449089a064f0a4fa167430b3249 100644
--- a/cpu/arm1136/mx31/serial.c
+++ b/drivers/serial/serial_mx31.c
@@ -18,9 +18,6 @@
  */
 
 #include <common.h>
-
-#if defined CONFIG_MX31_UART
-
 #include <asm/arch/mx31.h>
 
 #define __REG(x)     (*((volatile u32 *)(x)))
@@ -227,6 +224,3 @@ int serial_init (void)
 
 	return 0;
 }
-
-
-#endif /* CONFIG_MX31 */