diff --git a/board/compulab/common/common.h b/board/compulab/common/common.h
index 68ffb11..80753b4 100644
--- a/board/compulab/common/common.h
+++ b/board/compulab/common/common.h
@@ -25,9 +25,9 @@
 #endif /* CONFIG_CMD_USB */
 
 #ifdef CONFIG_SPLASH_SCREEN
-int cl_splash_screen_prepare(int nand_offset);
+int cl_splash_screen_prepare(int offset);
 #else /* !CONFIG_SPLASH_SCREEN */
-static inline int cl_splash_screen_prepare(int nand_offset)
+static inline int cl_splash_screen_prepare(int offset)
 {
 	return -ENOSYS;
 }
diff --git a/board/compulab/common/splash.c b/board/compulab/common/splash.c
index 33b2f9f..09a0755 100644
--- a/board/compulab/common/splash.c
+++ b/board/compulab/common/splash.c
@@ -10,11 +10,32 @@
 #include <nand.h>
 #include <errno.h>
 #include <bmp_layout.h>
+#include "common.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
 #ifdef CONFIG_CMD_NAND
-static int splash_load_from_nand(u32 bmp_load_addr, int nand_offset)
+static int splash_nand_read(u32 bmp_load_addr, int offset, size_t read_size)
+{
+	return nand_read_skip_bad(&nand_info[nand_curr_device], offset,
+				  &read_size, NULL,
+				  nand_info[nand_curr_device].size,
+				  (u_char *)bmp_load_addr);
+}
+#else
+static int splash_nand_read(u32 bmp_load_addr, int offset, size_t read_size)
+{
+	debug("%s: nand support not available\n", __func__);
+	return -ENOSYS;
+}
+#endif
+
+static int splash_storage_read(u32 bmp_load_addr, int offset, size_t read_size)
+{
+	return splash_nand_read(bmp_load_addr, offset, read_size);
+}
+
+static int splash_load_raw(u32 bmp_load_addr, int offset)
 {
 	struct bmp_header *bmp_hdr;
 	int res;
@@ -23,10 +44,7 @@
 	if (bmp_load_addr + bmp_header_size >= gd->start_addr_sp)
 		goto splash_address_too_high;
 
-	res = nand_read_skip_bad(&nand_info[nand_curr_device],
-			nand_offset, &bmp_header_size,
-			NULL, nand_info[nand_curr_device].size,
-			(u_char *)bmp_load_addr);
+	res = splash_storage_read(bmp_load_addr, offset, bmp_header_size);
 	if (res < 0)
 		return res;
 
@@ -36,10 +54,7 @@
 	if (bmp_load_addr + bmp_size >= gd->start_addr_sp)
 		goto splash_address_too_high;
 
-	return nand_read_skip_bad(&nand_info[nand_curr_device],
-			nand_offset, &bmp_size,
-			NULL, nand_info[nand_curr_device].size,
-			(u_char *)bmp_load_addr);
+	return splash_storage_read(bmp_load_addr, offset, bmp_size);
 
 splash_address_too_high:
 	printf("Error: splashimage address too high. Data overwrites U-Boot "
@@ -47,14 +62,8 @@
 
 	return -EFAULT;
 }
-#else
-static inline int splash_load_from_nand(u32 bmp_load_addr, int nand_offset)
-{
-	return -ENOSYS;
-}
-#endif /* CONFIG_CMD_NAND */
 
-int cl_splash_screen_prepare(int nand_offset)
+int cl_splash_screen_prepare(int offset)
 {
 	char *env_splashimage_value;
 	u32 bmp_load_addr;
@@ -69,5 +78,5 @@
 		return -EFAULT;
 	}
 
-	return splash_load_from_nand(bmp_load_addr, nand_offset);
+	return splash_load_raw(bmp_load_addr, offset);
 }
