diff --git a/bitbang_spi.c b/bitbang_spi.c
index 91f48a9..ef9e77c 100644
--- a/bitbang_spi.c
+++ b/bitbang_spi.c
@@ -23,6 +23,7 @@
 
 struct bitbang_spi_master_data {
 	const struct bitbang_spi_master *mst;
+	void *spi_data;
 };
 
 /* Note that CS# is active low, so val=0 means the chip is active. */
@@ -93,7 +94,7 @@
 	return 0;
 }
 
-int register_spi_bitbang_master(const struct bitbang_spi_master *master)
+int register_spi_bitbang_master(const struct bitbang_spi_master *master, void *spi_data)
 {
 	struct spi_master mst = spi_master_bitbang;
 	/* If someone forgot to initialize a bitbang function, we catch it here. */
@@ -113,6 +114,7 @@
 	}
 
 	data->mst = master;
+	data->spi_data = spi_data;
 	register_spi_master(&mst, data);
 
 	/* Only mess with the bus if we're sure nobody else uses it. */
diff --git a/developerbox_spi.c b/developerbox_spi.c
index e186240..c327043 100644
--- a/developerbox_spi.c
+++ b/developerbox_spi.c
@@ -155,7 +155,7 @@
 	if (register_shutdown(developerbox_spi_shutdown, NULL))
 		goto err_exit;
 
-	if (register_spi_bitbang_master(&bitbang_spi_master_cp210x))
+	if (register_spi_bitbang_master(&bitbang_spi_master_cp210x, NULL))
 		goto err_exit;
 
 	return 0;
diff --git a/include/programmer.h b/include/programmer.h
index b349e32..527eeb3 100644
--- a/include/programmer.h
+++ b/include/programmer.h
@@ -273,7 +273,7 @@
 #endif
 
 /* bitbang_spi.c */
-int register_spi_bitbang_master(const struct bitbang_spi_master *master);
+int register_spi_bitbang_master(const struct bitbang_spi_master *master, void *spi_data);
 
 
 /* flashrom.c */
diff --git a/mcp6x_spi.c b/mcp6x_spi.c
index dd76e60..bf09628 100644
--- a/mcp6x_spi.c
+++ b/mcp6x_spi.c
@@ -150,7 +150,7 @@
 		 (status >> MCP6X_SPI_GRANT) & 0x1);
 	mcp_gpiostate = status & 0xff;
 
-	if (register_spi_bitbang_master(&bitbang_spi_master_mcp6x)) {
+	if (register_spi_bitbang_master(&bitbang_spi_master_mcp6x, NULL)) {
 		/* This should never happen. */
 		msg_perr("MCP6X bitbang SPI master init failed!\n");
 		return 1;
diff --git a/nicintel_spi.c b/nicintel_spi.c
index b89dc09..91ae02f 100644
--- a/nicintel_spi.c
+++ b/nicintel_spi.c
@@ -294,7 +294,7 @@
 				return 1;
 	}
 
-	if (register_spi_bitbang_master(&bitbang_spi_master_nicintel))
+	if (register_spi_bitbang_master(&bitbang_spi_master_nicintel, NULL))
 		return 1;
 
 	return 0;
diff --git a/ogp_spi.c b/ogp_spi.c
index 18e6514..ea1f6b2 100644
--- a/ogp_spi.c
+++ b/ogp_spi.c
@@ -133,7 +133,7 @@
 	if (ogp_spibar == ERROR_PTR)
 		return 1;
 
-	if (register_spi_bitbang_master(&bitbang_spi_master_ogp))
+	if (register_spi_bitbang_master(&bitbang_spi_master_ogp, NULL))
 		return 1;
 
 	return 0;
diff --git a/pony_spi.c b/pony_spi.c
index fba7fb7..22f5f02 100644
--- a/pony_spi.c
+++ b/pony_spi.c
@@ -224,7 +224,7 @@
 		return 1;
 	}
 
-	if (register_spi_bitbang_master(&bitbang_spi_master_pony)) {
+	if (register_spi_bitbang_master(&bitbang_spi_master_pony, NULL)) {
 		return 1;
 	}
 	return 0;
diff --git a/rayer_spi.c b/rayer_spi.c
index 12ff019..5267a06 100644
--- a/rayer_spi.c
+++ b/rayer_spi.c
@@ -230,7 +230,7 @@
 	if (pinout->preinit)
 		pinout->preinit(pinout);
 
-	if (register_spi_bitbang_master(&bitbang_spi_master_rayer))
+	if (register_spi_bitbang_master(&bitbang_spi_master_rayer, NULL))
 		return 1;
 
 	return 0;
