diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
index 174384eab98d03131d150ce027e481189736b0ee..d1b9f8f5464e0e380e96bb5eecf7ca3e1b9ccd00 100644
--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -21,7 +21,7 @@
 #include <asm/errno.h>
 
 /* It should access 16-bit instead of 8-bit */
-static inline void *memcpy(void *dst, const void *src, unsigned int len)
+static inline void *memcpy_16(void *dst, const void *src, unsigned int len)
 {
 	void *ret = dst;
 	short *d = dst;
@@ -358,7 +358,7 @@ static int onenand_read_bufferram(struct mtd_info *mtd, int area,
 	bufferram = this->base + area;
 	bufferram += onenand_bufferram_offset(mtd, area);
 
-	memcpy(buffer, bufferram + offset, count);
+	memcpy_16(buffer, bufferram + offset, count);
 
 	return 0;
 }
@@ -385,7 +385,7 @@ static int onenand_sync_read_bufferram(struct mtd_info *mtd, int area,
 
 	this->mmcontrol(mtd, ONENAND_SYS_CFG1_SYNC_READ);
 
-	memcpy(buffer, bufferram + offset, count);
+	memcpy_16(buffer, bufferram + offset, count);
 
 	this->mmcontrol(mtd, 0);
 
@@ -412,7 +412,7 @@ static int onenand_write_bufferram(struct mtd_info *mtd, int area,
 	bufferram = this->base + area;
 	bufferram += onenand_bufferram_offset(mtd, area);
 
-	memcpy(bufferram + offset, buffer, count);
+	memcpy_16(bufferram + offset, buffer, count);
 
 	return 0;
 }