diff --git a/helpers.c b/helpers.c
index 5b47b68..27b9cf1 100644
--- a/helpers.c
+++ b/helpers.c
@@ -20,6 +20,21 @@
 #include <string.h>
 #include "flash.h"
 
+int flashprog_read_chunked(struct flashctx *const flash, uint8_t *dst, unsigned int start, unsigned int len,
+			  const unsigned int chunksize, readfunc_t *const read)
+{
+	int ret;
+	size_t to_read;
+	for (; len; len -= to_read, dst += to_read, start += to_read) {
+		to_read = min(chunksize, len);
+		ret = read(flash, dst, start, to_read);
+		if (ret)
+			return ret;
+		flashprog_progress_add(flash, to_read);
+	}
+	return 0;
+}
+
 /* Returns the minimum number of bits needed to represent the given address.
  * FIXME: use mind-blowing implementation. */
 uint32_t address_to_bits(uint32_t addr)
diff --git a/include/chipdrivers.h b/include/chipdrivers.h
index c8c61ca..1ac5e53 100644
--- a/include/chipdrivers.h
+++ b/include/chipdrivers.h
@@ -56,7 +56,6 @@
 const uint8_t *spi_get_opcode_from_erasefn(erasefunc_t *func, bool *native_4ba);
 int spi_chip_write_1(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
 int spi_nbyte_read(struct flashctx *flash, uint8_t *dst, unsigned int addr, unsigned int len);
-int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize);
 int spi_write_chunked(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize);
 int spi_enter_4ba(struct flashctx *flash);
 int spi_exit_4ba(struct flashctx *flash);
diff --git a/include/flash.h b/include/flash.h
index b411f34..cfc9c4e 100644
--- a/include/flash.h
+++ b/include/flash.h
@@ -178,6 +178,7 @@
 struct flashprog_flashctx;
 #define flashctx flashprog_flashctx /* TODO: Agree on a name and convert all occurrences. */
 typedef int (erasefunc_t)(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
+typedef int (readfunc_t)(struct flashctx *flash, uint8_t *dst, unsigned int start, unsigned int len);
 
 enum flash_reg {
 	INVALID_REG = 0,
@@ -418,6 +419,7 @@
 void print_supported_wiki(void);
 
 /* helpers.c */
+int flashprog_read_chunked(struct flashctx *, uint8_t *dst, unsigned int start, unsigned int len, unsigned int chunksize, readfunc_t *);
 uint32_t address_to_bits(uint32_t addr);
 unsigned int bitcount(unsigned long a);
 #undef MIN
diff --git a/spi.c b/spi.c
index 296e8df..a6b5124 100644
--- a/spi.c
+++ b/spi.c
@@ -80,7 +80,7 @@
 			 "Please report a bug at flashprog@flashprog.org\n", __func__);
 		return 1;
 	}
-	return spi_read_chunked(flash, buf, start, len, max_data);
+	return flashprog_read_chunked(flash, buf, start, len, max_data, spi_nbyte_read);
 }
 
 int default_spi_write_256(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
diff --git a/spi25.c b/spi25.c
index 0597cea..f8fdf8e 100644
--- a/spi25.c
+++ b/spi25.c
@@ -654,25 +654,6 @@
 }
 
 /*
- * Read a part of the flash chip.
- * Data is read in chunks with a maximum size of chunksize.
- */
-int spi_read_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start,
-		     unsigned int len, unsigned int chunksize)
-{
-	int ret;
-	size_t to_read;
-	for (; len; len -= to_read, buf += to_read, start += to_read) {
-		to_read = min(chunksize, len);
-		ret = spi_nbyte_read(flash, buf, start, to_read);
-		if (ret)
-			return ret;
-		flashprog_progress_add(flash, to_read);
-	}
-	return 0;
-}
-
-/*
  * Write a part of the flash chip.
  * FIXME: Use the chunk code from Michael Karcher instead.
  * Each page is written separately in chunks with a maximum size of chunksize.
