diff --git a/at45db.c b/at45db.c
index 9593aa8..f84f3f4 100644
--- a/at45db.c
+++ b/at45db.c
@@ -17,7 +17,7 @@
 
 #include <string.h>
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "programmer.h"
 #include "spi_command.h"
 #include "spi.h"
diff --git a/cli_config.c b/cli_config.c
index 75c5d94..f713712 100644
--- a/cli_config.c
+++ b/cli_config.c
@@ -24,7 +24,7 @@
 #include <unistd.h>
 
 #include "libflashprog.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "flash.h"
 #include "cli.h"
 
diff --git a/dediprog.c b/dediprog.c
index c114f7b..8fb4a65 100644
--- a/dediprog.c
+++ b/dediprog.c
@@ -23,7 +23,7 @@
 #include <errno.h>
 #include <libusb.h>
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "programmer.h"
 #include "spi.h"
 #include "spi_command.h"
diff --git a/dummyflasher.c b/dummyflasher.c
index 4a86dc4..3f3983b 100644
--- a/dummyflasher.c
+++ b/dummyflasher.c
@@ -22,8 +22,9 @@
 #include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "programmer.h"
 
 #include "spi.h"
diff --git a/flashchips.c b/flashchips.c
index 8259cd4..d25ea66 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -21,6 +21,7 @@
 #include "flash.h"
 #include "flashchips.h"
 #include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "writeprotect.h"
 
 /**
diff --git a/flashprog.c b/flashprog.c
index 6eb450e..309bc7f 100644
--- a/flashprog.c
+++ b/flashprog.c
@@ -32,7 +32,7 @@
 #include "flashchips.h"
 #include "programmer.h"
 #include "hwaccess_physmap.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "version.h"
 
 const char flashprog_version[] = FLASHPROG_VERSION;
diff --git a/include/chipdrivers.h b/include/chipdrivers.h
index ceb7064..10fd843 100644
--- a/include/chipdrivers.h
+++ b/include/chipdrivers.h
@@ -22,124 +22,12 @@
 
 #include "flash.h"	/* for chipaddr and flashctx */
 
-/* spi.c */
-int spi_aai_write(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
-int spi_chip_write_256(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
-int spi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, int unsigned len);
-
-/* spi25.c */
-int spi_simple_write_cmd(struct flashctx *flash, uint8_t op, unsigned int poll_delay);
-int probe_spi_rdid(struct flashctx *flash);
-int probe_spi_rdid4(struct flashctx *flash);
-int probe_spi_rems(struct flashctx *flash);
-int probe_spi_res1(struct flashctx *flash);
-int probe_spi_res2(struct flashctx *flash);
-int probe_spi_res3(struct flashctx *flash);
-int probe_spi_at25f(struct flashctx *flash);
-int spi_write_enable(struct flashctx *flash);
-int spi_write_disable(struct flashctx *flash);
-int spi_block_erase_20(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_21(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_50(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_52(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_53(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_5c(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_60(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_62(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_81(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_c4(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_c7(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_d7(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_d8(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_db(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_block_erase_dc(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-erasefunc_t *spi25_get_erasefn_from_opcode(uint8_t opcode);
-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_write_chunked(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize);
-int spi_set_extended_address(struct flashctx *, uint8_t addr_high);
-
-/* spi25_prepare.c */
-int spi_prepare_io(struct flashctx *, enum preparation_steps);
-void spi_finish_io(struct flashctx *);
-
-
-/* spi25_statusreg.c */
-enum wrsr_target {
-	WRSR_VOLATILE_BITS	= 1,
-	WRSR_NON_VOLATILE_BITS	= 2,
-	WRSR_EITHER		= 3,
-};
-static inline enum wrsr_target default_wrsr_target(const struct flashctx *flash)
-{
-	return flash->flags.non_volatile_wrsr ? WRSR_NON_VOLATILE_BITS : WRSR_VOLATILE_BITS;
-}
-int spi_read_register(const struct flashctx *flash, enum flash_reg reg, uint8_t *value);
-int spi_write_register(const struct flashctx *flash, enum flash_reg reg, uint8_t value, enum wrsr_target);
-void spi_prettyprint_status_register_bit(uint8_t status, int bit);
-int spi_prettyprint_status_register_plain(struct flashctx *flash);
-int spi_prettyprint_status_register_default_welwip(struct flashctx *flash);
-int spi_prettyprint_status_register_bp1_srwd(struct flashctx *flash);
-int spi_prettyprint_status_register_bp2_srwd(struct flashctx *flash);
-int spi_prettyprint_status_register_bp3_srwd(struct flashctx *flash);
-int spi_prettyprint_status_register_bp4_srwd(struct flashctx *flash);
-int spi_prettyprint_status_register_bp2_bpl(struct flashctx *flash);
-int spi_prettyprint_status_register_bp2_tb_bpl(struct flashctx *flash);
-int spi_disable_blockprotect(struct flashctx *flash);
-int spi_disable_blockprotect_bp1_srwd(struct flashctx *flash);
-int spi_disable_blockprotect_bp2_srwd(struct flashctx *flash);
-int spi_disable_blockprotect_bp3_srwd(struct flashctx *flash);
-int spi_disable_blockprotect_bp4_srwd(struct flashctx *flash);
-int spi_prettyprint_status_register_amic_a25l032(struct flashctx *flash);
-int spi_prettyprint_status_register_at25df(struct flashctx *flash);
-int spi_prettyprint_status_register_at25df_sec(struct flashctx *flash);
-int spi_prettyprint_status_register_at25f(struct flashctx *flash);
-int spi_prettyprint_status_register_at25f512a(struct flashctx *flash);
-int spi_prettyprint_status_register_at25f512b(struct flashctx *flash);
-int spi_prettyprint_status_register_at25f4096(struct flashctx *flash);
-int spi_prettyprint_status_register_at25fs010(struct flashctx *flash);
-int spi_prettyprint_status_register_at25fs040(struct flashctx *flash);
-int spi_prettyprint_status_register_at26df081a(struct flashctx *flash);
-int spi_disable_blockprotect_at2x_global_unprotect(struct flashctx *flash);
-int spi_disable_blockprotect_at2x_global_unprotect_sec(struct flashctx *flash);
-int spi_disable_blockprotect_at25f(struct flashctx *flash);
-int spi_disable_blockprotect_at25f512a(struct flashctx *flash);
-int spi_disable_blockprotect_at25f512b(struct flashctx *flash);
-int spi_disable_blockprotect_at25fs010(struct flashctx *flash);
-int spi_disable_blockprotect_at25fs040(struct flashctx *flash);
-int spi_prettyprint_status_register_en25s_wp(struct flashctx *flash);
-int spi_prettyprint_status_register_n25q(struct flashctx *flash);
-int spi_disable_blockprotect_n25q(struct flashctx *flash);
-int spi_prettyprint_status_register_bp2_ep_srwd(struct flashctx *flash);
-int spi_disable_blockprotect_bp2_ep_srwd(struct flashctx *flash);
-int spi_prettyprint_status_register_sst25(struct flashctx *flash);
-int spi_prettyprint_status_register_sst25vf016(struct flashctx *flash);
-int spi_prettyprint_status_register_sst25vf040b(struct flashctx *flash);
-int spi_disable_blockprotect_sst26_global_unprotect(struct flashctx *flash);
-
-/* sfdp.c */
-int probe_spi_sfdp(struct flashctx *flash);
-
 /* opaque.c */
 int probe_opaque(struct flashctx *flash);
 int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
 int write_opaque(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
 int erase_opaque(struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen);
 
-/* at45db.c */
-int spi_prepare_at45db(struct flashctx *, const enum preparation_steps);
-int spi_prettyprint_status_register_at45db(struct flashctx *flash);
-int spi_disable_blockprotect_at45db(struct flashctx *flash);
-int spi_read_at45db(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
-int spi_read_at45db_e8(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
-int spi_write_at45db(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
-int spi_erase_at45db_page(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_erase_at45db_block(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_erase_at45db_sector(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_erase_at45db_chip(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int spi_erase_at45cs_sector(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-
 /* 82802ab.c */
 uint8_t wait_82802ab(struct flashctx *flash);
 int probe_82802ab(struct flashctx *flash);
@@ -215,16 +103,6 @@
 int edi_chip_read(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len);
 int edi_probe_kb9012(struct flashctx *flash);
 
-/* spi95.c */
-int probe_spi_st95(struct flashctx *flash);
-int spi_block_erase_emulation(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-
-/* writeprotect_ranges.c */
-void decode_range_spi25(size_t *start, size_t *len, const struct wp_bits *, size_t chip_len);
-void decode_range_spi25_64k_block(size_t *start, size_t *len, const struct wp_bits *, size_t chip_len);
-void decode_range_spi25_bit_cmp(size_t *start, size_t *len, const struct wp_bits *, size_t chip_len);
-void decode_range_spi25_2x_block(size_t *start, size_t *len, const struct wp_bits *, size_t chip_len);
-
 /* memory_bus.c */
 int prepare_memory_access(struct flashctx *, enum preparation_steps);
 int prepare_memory_register_access(struct flashctx *, enum preparation_steps);
diff --git a/include/chipdrivers/spi.h b/include/chipdrivers/spi.h
new file mode 100644
index 0000000..186575c
--- /dev/null
+++ b/include/chipdrivers/spi.h
@@ -0,0 +1,135 @@
+/*
+ * This file is part of the flashrom project.
+ *
+ * Copyright (C) 2009 Carl-Daniel Hailfinger
+ *
+ * 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; version 2 of the License.
+ *
+ * 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 __CHIPDRIVERS_SPI_H__
+#define __CHIPDRIVERS_SPI_H__ 1
+
+#include <stdint.h>
+
+struct flashprog_flashctx;
+
+/* spi.c */
+int spi_aai_write(struct flashprog_flashctx *, const uint8_t *buf, unsigned int start, unsigned int len);
+int spi_chip_write_256(struct flashprog_flashctx *, const uint8_t *buf, unsigned int start, unsigned int len);
+int spi_chip_read(struct flashprog_flashctx *, uint8_t *buf, unsigned int start, int unsigned len);
+
+/* spi25.c */
+int spi_simple_write_cmd(struct flashprog_flashctx *, uint8_t op, unsigned int poll_delay);
+int probe_spi_rdid(struct flashprog_flashctx *);
+int probe_spi_rdid4(struct flashprog_flashctx *);
+int probe_spi_rems(struct flashprog_flashctx *);
+int probe_spi_res1(struct flashprog_flashctx *);
+int probe_spi_res2(struct flashprog_flashctx *);
+int probe_spi_res3(struct flashprog_flashctx *);
+int probe_spi_at25f(struct flashprog_flashctx *);
+int spi_write_enable(struct flashprog_flashctx *);
+int spi_write_disable(struct flashprog_flashctx *);
+int spi_block_erase_20(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_21(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_50(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_52(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_53(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_5c(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_60(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_62(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_81(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_c4(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_c7(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_d7(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_d8(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_db(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_block_erase_dc(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_chip_write_1(struct flashprog_flashctx *, const uint8_t *buf, unsigned int start, unsigned int len);
+int spi_nbyte_read(struct flashprog_flashctx *, uint8_t *dst, unsigned int addr, unsigned int len);
+int spi_write_chunked(struct flashprog_flashctx *, const uint8_t *buf, unsigned int start, unsigned int len, unsigned int chunksize);
+int spi_set_extended_address(struct flashprog_flashctx *, uint8_t addr_high);
+
+enum preparation_steps;
+int spi_prepare_io(struct flashprog_flashctx *, enum preparation_steps);
+void spi_finish_io(struct flashprog_flashctx *);
+
+enum flash_reg;
+enum wrsr_target;
+int spi_read_register(const struct flashprog_flashctx *, enum flash_reg reg, uint8_t *value);
+int spi_write_register(const struct flashprog_flashctx *, enum flash_reg reg, uint8_t value, enum wrsr_target);
+void spi_prettyprint_status_register_bit(uint8_t status, int bit);
+int spi_prettyprint_status_register_plain(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_default_welwip(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_bp1_srwd(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_bp2_srwd(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_bp3_srwd(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_bp4_srwd(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_bp2_bpl(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_bp2_tb_bpl(struct flashprog_flashctx *);
+int spi_disable_blockprotect(struct flashprog_flashctx *);
+int spi_disable_blockprotect_bp1_srwd(struct flashprog_flashctx *);
+int spi_disable_blockprotect_bp2_srwd(struct flashprog_flashctx *);
+int spi_disable_blockprotect_bp3_srwd(struct flashprog_flashctx *);
+int spi_disable_blockprotect_bp4_srwd(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_amic_a25l032(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_at25df(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_at25df_sec(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_at25f(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_at25f512a(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_at25f512b(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_at25f4096(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_at25fs010(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_at25fs040(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_at26df081a(struct flashprog_flashctx *);
+int spi_disable_blockprotect_at2x_global_unprotect(struct flashprog_flashctx *);
+int spi_disable_blockprotect_at2x_global_unprotect_sec(struct flashprog_flashctx *);
+int spi_disable_blockprotect_at25f(struct flashprog_flashctx *);
+int spi_disable_blockprotect_at25f512a(struct flashprog_flashctx *);
+int spi_disable_blockprotect_at25f512b(struct flashprog_flashctx *);
+int spi_disable_blockprotect_at25fs010(struct flashprog_flashctx *);
+int spi_disable_blockprotect_at25fs040(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_en25s_wp(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_n25q(struct flashprog_flashctx *);
+int spi_disable_blockprotect_n25q(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_bp2_ep_srwd(struct flashprog_flashctx *);
+int spi_disable_blockprotect_bp2_ep_srwd(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_sst25(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_sst25vf016(struct flashprog_flashctx *);
+int spi_prettyprint_status_register_sst25vf040b(struct flashprog_flashctx *);
+int spi_disable_blockprotect_sst26_global_unprotect(struct flashprog_flashctx *);
+
+/* at45db.c */
+int spi_prepare_at45db(struct flashprog_flashctx *, enum preparation_steps);
+int spi_prettyprint_status_register_at45db(struct flashprog_flashctx *);
+int spi_disable_blockprotect_at45db(struct flashprog_flashctx *);
+int spi_read_at45db(struct flashprog_flashctx *, uint8_t *buf, unsigned int start, unsigned int len);
+int spi_read_at45db_e8(struct flashprog_flashctx *, uint8_t *buf, unsigned int start, unsigned int len);
+int spi_write_at45db(struct flashprog_flashctx *, const uint8_t *buf, unsigned int start, unsigned int len);
+int spi_erase_at45db_page(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_erase_at45db_block(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_erase_at45db_sector(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_erase_at45db_chip(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int spi_erase_at45cs_sector(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+
+/* spi95.c */
+int probe_spi_st95(struct flashprog_flashctx *);
+int spi_block_erase_emulation(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+
+/* writeprotect_ranges.c */
+struct wp_bits;
+void decode_range_spi25(size_t *start, size_t *len, const struct wp_bits *, size_t chip_len);
+void decode_range_spi25_64k_block(size_t *start, size_t *len, const struct wp_bits *, size_t chip_len);
+void decode_range_spi25_bit_cmp(size_t *start, size_t *len, const struct wp_bits *, size_t chip_len);
+void decode_range_spi25_2x_block(size_t *start, size_t *len, const struct wp_bits *, size_t chip_len);
+
+/* sfdp.c */
+int probe_spi_sfdp(struct flashprog_flashctx *);
+
+#endif /* !__CHIPDRIVERS_SPI_H__ */
diff --git a/include/flash.h b/include/flash.h
index c4d9040..eec09b4 100644
--- a/include/flash.h
+++ b/include/flash.h
@@ -488,6 +488,22 @@
 extern const struct flashchip flashchips[];
 extern const unsigned int flashchips_size;
 
+enum wrsr_target {
+	WRSR_VOLATILE_BITS	= 1,
+	WRSR_NON_VOLATILE_BITS	= 2,
+	WRSR_EITHER		= 3,
+};
+static inline enum wrsr_target default_wrsr_target(const struct flashprog_flashctx *flash)
+{
+	return flash->flags.non_volatile_wrsr ? WRSR_NON_VOLATILE_BITS : WRSR_VOLATILE_BITS;
+}
+
+/* spi.c */
+const uint8_t *spi_get_opcode_from_erasefn(erasefunc_t *, bool *native_4ba);
+
+/* spi25.c */
+erasefunc_t *spi25_get_erasefn_from_opcode(uint8_t opcode);
+
 /* parallel.c */
 void chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr);
 void chip_writew(const struct flashctx *flash, uint16_t val, chipaddr addr);
diff --git a/it87spi.c b/it87spi.c
index 127270a..8c32afd 100644
--- a/it87spi.c
+++ b/it87spi.c
@@ -23,7 +23,7 @@
 #include <stdlib.h>
 #include <errno.h>
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "programmer.h"
 #include "hwaccess_physmap.h"
 #include "hwaccess_x86_io.h"
diff --git a/linux_spi.c b/linux_spi.c
index dda3808..6eb4bca 100644
--- a/linux_spi.c
+++ b/linux_spi.c
@@ -25,7 +25,6 @@
 #include <sys/ioctl.h>
 #include <linux/types.h>
 #include "flash.h"
-#include "chipdrivers.h"
 #include "programmer.h"
 #include "spi.h"
 /*
diff --git a/pickit2_spi.c b/pickit2_spi.c
index 43126cc..a0f275d 100644
--- a/pickit2_spi.c
+++ b/pickit2_spi.c
@@ -40,7 +40,6 @@
 #include <libusb.h>
 
 #include "flash.h"
-#include "chipdrivers.h"
 #include "programmer.h"
 #include "spi.h"
 
diff --git a/sfdp.c b/sfdp.c
index bb5034b..215f24a 100644
--- a/sfdp.c
+++ b/sfdp.c
@@ -19,7 +19,7 @@
 #include "flash.h"
 #include "spi_command.h"
 #include "spi.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 
 static int spi_sfdp_read_sfdp_chunk(struct flashctx *flash, uint32_t address, uint8_t *buf, int len)
 {
diff --git a/spi.c b/spi.c
index 6f77e5c..f6ec250 100644
--- a/spi.c
+++ b/spi.c
@@ -22,7 +22,7 @@
 #include <string.h>
 #include "flash.h"
 #include "flashchips.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "programmer.h"
 #include "spi_command.h"
 #include "spi.h"
diff --git a/spi25.c b/spi25.c
index 5e4da3f..778a822 100644
--- a/spi25.c
+++ b/spi25.c
@@ -24,6 +24,7 @@
 #include "flash.h"
 #include "flashchips.h"
 #include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "programmer.h"
 #include "spi_command.h"
 #include "spi.h"
diff --git a/spi25_prepare.c b/spi25_prepare.c
index 619a8d0..aaf240d 100644
--- a/spi25_prepare.c
+++ b/spi25_prepare.c
@@ -17,7 +17,7 @@
 
 #include <stdbool.h>
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "programmer.h"
 #include "spi_command.h"
 #include "spi.h"
diff --git a/spi25_statusreg.c b/spi25_statusreg.c
index f7d988b..6ba4e45 100644
--- a/spi25_statusreg.c
+++ b/spi25_statusreg.c
@@ -18,7 +18,7 @@
  */
 
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "spi_command.h"
 #include "spi.h"
 
diff --git a/spi95.c b/spi95.c
index bd75b17..b7a7b21 100644
--- a/spi95.c
+++ b/spi95.c
@@ -19,8 +19,10 @@
  */
 #include <string.h>
 #include <stdlib.h>
+
+#include "flash.h"
 #include "flashchips.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "spi_command.h"
 #include "spi.h"
 
diff --git a/wbsio_spi.c b/wbsio_spi.c
index a37116b..8649b04 100644
--- a/wbsio_spi.c
+++ b/wbsio_spi.c
@@ -15,7 +15,7 @@
  */
 
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "programmer.h"
 #include "hwaccess_physmap.h"
 #include "hwaccess_x86_io.h"
diff --git a/writeprotect.c b/writeprotect.c
index acc8714..81385c1 100644
--- a/writeprotect.c
+++ b/writeprotect.c
@@ -21,7 +21,7 @@
 
 #include "flash.h"
 #include "libflashprog.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 #include "writeprotect.h"
 
 /** Read and extract a single bit from the chip's registers */
diff --git a/writeprotect_ranges.c b/writeprotect_ranges.c
index d15ba5d..49b931e 100644
--- a/writeprotect_ranges.c
+++ b/writeprotect_ranges.c
@@ -14,8 +14,9 @@
  * GNU General Public License for more details.
  */
 
+#include "flash.h"
 #include "writeprotect.h"
-#include "chipdrivers.h"
+#include "chipdrivers/spi.h"
 
 static void decode_range_generic(size_t *start, size_t *len, const struct wp_bits *bits, size_t chip_len,
 				 bool fixed_block_len, bool apply_cmp_to_bp, int coeff_offset)
