diff --git a/bitbang_spi.c b/bitbang_spi.c
index c43fa2f..1c2c178 100644
--- a/bitbang_spi.c
+++ b/bitbang_spi.c
@@ -20,6 +20,7 @@
 #include "flash.h"
 #include "programmer.h"
 #include "spi.h"
+#include "bitbang_spi.h"
 
 struct bitbang_spi_master_data {
 	const struct bitbang_spi_master *mst;
diff --git a/developerbox_spi.c b/developerbox_spi.c
index 3a9059e..4efa309 100644
--- a/developerbox_spi.c
+++ b/developerbox_spi.c
@@ -34,6 +34,7 @@
 #include <stdlib.h>
 #include <libusb.h>
 #include "programmer.h"
+#include "bitbang_spi.h"
 #include "spi.h"
 
 /* Bit positions for each pin. */
diff --git a/include/bitbang_spi.h b/include/bitbang_spi.h
new file mode 100644
index 0000000..b321651
--- /dev/null
+++ b/include/bitbang_spi.h
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the flashrom project.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __BITBANG_SPI_H__
+#define __BITBANG_SPI_H__ 1
+
+struct bitbang_spi_master {
+	/* Note that CS# is active low, so val=0 means the chip is active. */
+	void (*set_cs) (int val, void *data);
+	void (*set_sck) (int val, void *data);
+	void (*set_mosi) (int val, void *data);
+	int (*get_miso) (void *data);
+	void (*request_bus) (void *data);
+	void (*release_bus) (void *data);
+	/* optional functions to optimize xfers */
+	void (*set_sck_set_mosi) (int sck, int mosi, void *data);
+	int (*set_sck_get_miso) (int sck, void *data);
+	/* Length of half a clock period in usecs. */
+	unsigned int half_period;
+};
+
+int register_spi_bitbang_master(const struct bitbang_spi_master *, void *data);
+
+#endif				/* !__BITBANG_SPI_H__ */
diff --git a/include/programmer.h b/include/programmer.h
index fb19c00..0f724ec 100644
--- a/include/programmer.h
+++ b/include/programmer.h
@@ -106,21 +106,6 @@
 int programmer_init(struct flashprog_programmer *);
 int programmer_shutdown(struct flashprog_programmer *);
 
-struct bitbang_spi_master {
-	/* Note that CS# is active low, so val=0 means the chip is active. */
-	void (*set_cs) (int val, void *spi_data);
-	void (*set_sck) (int val, void *spi_data);
-	void (*set_mosi) (int val, void *spi_data);
-	int (*get_miso) (void *spi_data);
-	void (*request_bus) (void *spi_data);
-	void (*release_bus) (void *spi_data);
-	/* optional functions to optimize xfers */
-	void (*set_sck_set_mosi) (int sck, int mosi, void *spi_data);
-	int (*set_sck_get_miso) (int sck, void *spi_data);
-	/* Length of half a clock period in usecs. */
-	unsigned int half_period;
-};
-
 struct pci_dev;
 struct pci_filter;
 
@@ -281,10 +266,6 @@
 extern enum chipbustype internal_buses_supported;
 #endif
 
-/* bitbang_spi.c */
-int register_spi_bitbang_master(const struct bitbang_spi_master *master, void *spi_data);
-
-
 /* flashprog.c */
 // FIXME: These need to be local, not global
 extern bool programmer_may_write;
diff --git a/linux_gpio2_spi.c b/linux_gpio2_spi.c
index ef162b8..24cf33d 100644
--- a/linux_gpio2_spi.c
+++ b/linux_gpio2_spi.c
@@ -23,6 +23,7 @@
 #include <errno.h>
 #include <gpiod.h>
 #include "programmer.h"
+#include "bitbang_spi.h"
 #include "spi.h"
 #include "flash.h"
 
diff --git a/linux_gpio_spi.c b/linux_gpio_spi.c
index 8ce5b07..647f813 100644
--- a/linux_gpio_spi.c
+++ b/linux_gpio_spi.c
@@ -20,6 +20,7 @@
 #include <errno.h>
 #include <gpiod.h>
 #include "programmer.h"
+#include "bitbang_spi.h"
 #include "spi.h"
 #include "flash.h"
 
diff --git a/mcp6x_spi.c b/mcp6x_spi.c
index 2e5d1de..cdaa7fd 100644
--- a/mcp6x_spi.c
+++ b/mcp6x_spi.c
@@ -23,6 +23,7 @@
 #include <ctype.h>
 #include "flash.h"
 #include "programmer.h"
+#include "bitbang_spi.h"
 #include "hwaccess_physmap.h"
 #include "platform/pci.h"
 
diff --git a/nicintel_spi.c b/nicintel_spi.c
index 1de3fd0..ccb0c5d 100644
--- a/nicintel_spi.c
+++ b/nicintel_spi.c
@@ -34,6 +34,7 @@
 #include <unistd.h>
 #include "flash.h"
 #include "programmer.h"
+#include "bitbang_spi.h"
 #include "hwaccess_physmap.h"
 #include "platform/pci.h"
 
diff --git a/ogp_spi.c b/ogp_spi.c
index 5eeda98..ad04a7d 100644
--- a/ogp_spi.c
+++ b/ogp_spi.c
@@ -18,6 +18,7 @@
 #include <string.h>
 #include "flash.h"
 #include "programmer.h"
+#include "bitbang_spi.h"
 #include "hwaccess_physmap.h"
 #include "platform/pci.h"
 
diff --git a/pony_spi.c b/pony_spi.c
index 1b1f939..a09021d 100644
--- a/pony_spi.c
+++ b/pony_spi.c
@@ -42,6 +42,7 @@
 
 #include "flash.h"
 #include "programmer.h"
+#include "bitbang_spi.h"
 
 enum pony_type {
 	TYPE_SI_PROG,
diff --git a/rayer_spi.c b/rayer_spi.c
index f8bac35..30577ac 100644
--- a/rayer_spi.c
+++ b/rayer_spi.c
@@ -28,6 +28,7 @@
 #include <string.h>
 #include "flash.h"
 #include "programmer.h"
+#include "bitbang_spi.h"
 #include "hwaccess_x86_io.h"
 
 /* We have two sets of pins, out and in. The numbers for both sets are
