diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
index 328c76d2965d50baa8cfbeef23510a6d37631bcd..cf10b0d4ca4af366ab2576aae41c77bf4a258225 100644
--- a/drivers/mtd/cfi_flash.c
+++ b/drivers/mtd/cfi_flash.c
@@ -214,7 +214,7 @@ flash_map (flash_info_t * info, flash_sect_t sect, uint offset)
 	unsigned int addr = (info->start[sect] + byte_offset);
 	unsigned int mask = 0xffffffff << (info->portwidth - 1);
 
-	return (void *)(addr & mask);
+	return (void *)(uintptr_t)(addr & mask);
 }
 
 static inline void flash_unmap(flash_info_t *info, flash_sect_t sect,