memory_bus: Move related declarations into new `chipdrivers/memory_bus.h`

Change-Id: I2bef65de77860d049ec3d9938ae777c5f929c258
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.sourcearcade.org/c/flashprog/+/438
diff --git a/82802ab.c b/82802ab.c
index aa2ba4f..e53e788 100644
--- a/82802ab.c
+++ b/82802ab.c
@@ -24,7 +24,7 @@
 
 #include <stdbool.h>
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/memory_bus.h"
 
 void print_status_82802ab(uint8_t status)
 {
diff --git a/en29lv640b.c b/en29lv640b.c
index b3f5897..8883a09 100644
--- a/en29lv640b.c
+++ b/en29lv640b.c
@@ -16,7 +16,7 @@
  */
 
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/memory_bus.h"
 
 /*
  * WARNING!
diff --git a/flashchips.c b/flashchips.c
index 2b431eb..dd48f69 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -24,6 +24,7 @@
 #include "chipdrivers.h"
 #include "chipdrivers/edi.h"
 #include "chipdrivers/spi.h"
+#include "chipdrivers/memory_bus.h"
 #include "writeprotect.h"
 
 /**
diff --git a/include/chipdrivers.h b/include/chipdrivers.h
index 7fcdcfe..2dae8b5 100644
--- a/include/chipdrivers.h
+++ b/include/chipdrivers.h
@@ -28,78 +28,4 @@
 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);
 
-/* 82802ab.c */
-uint8_t wait_82802ab(struct flashctx *flash);
-int probe_82802ab(struct flashctx *flash);
-int erase_block_82802ab(struct flashctx *flash, unsigned int page, unsigned int pagesize);
-int write_82802ab(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
-void print_status_82802ab(uint8_t status);
-int unlock_28f004s5(struct flashctx *flash);
-int unlock_lh28f008bjt(struct flashctx *flash);
-
-/* jedec.c */
-uint8_t oddparity(uint8_t val);
-void toggle_ready_jedec(const struct flashctx *flash, chipaddr dst);
-void data_polling_jedec(const struct flashctx *flash, chipaddr dst, uint8_t data);
-int probe_jedec(struct flashctx *flash);
-int probe_jedec_29gl(struct flashctx *flash);
-int write_jedec(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
-int write_jedec_1(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
-int erase_sector_jedec(struct flashctx *flash, unsigned int page, unsigned int pagesize);
-int erase_block_jedec(struct flashctx *flash, unsigned int page, unsigned int blocksize);
-int erase_chip_block_jedec(struct flashctx *flash, unsigned int page, unsigned int blocksize);
-
-int unlock_regspace2_uniform_32k(struct flashctx *flash);
-int unlock_regspace2_uniform_64k(struct flashctx *flash);
-int unlock_regspace2_block_eraser_0(struct flashctx *flash);
-int unlock_regspace2_block_eraser_1(struct flashctx *flash);
-int printlock_regspace2_uniform_64k(struct flashctx *flash);
-int printlock_regspace2_block_eraser_0(struct flashctx *flash);
-int printlock_regspace2_block_eraser_1(struct flashctx *flash);
-
-/* sst28sf040.c */
-int erase_chip_28sf040(struct flashctx *flash, unsigned int addr, unsigned int blocklen);
-int erase_sector_28sf040(struct flashctx *flash, unsigned int address, unsigned int sector_size);
-int write_28sf040(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
-int unprotect_28sf040(struct flashctx *flash);
-int protect_28sf040(struct flashctx *flash);
-
-/* sst49lfxxxc.c */
-int erase_sector_49lfxxxc(struct flashctx *flash, unsigned int address, unsigned int sector_size);
-
-/* sst_fwhub.c */
-int printlock_sst_fwhub(struct flashctx *flash);
-int unlock_sst_fwhub(struct flashctx *flash);
-
-/* w39.c */
-int printlock_w39f010(struct flashctx * flash);
-int printlock_w39l010(struct flashctx * flash);
-int printlock_w39l020(struct flashctx * flash);
-int printlock_w39l040(struct flashctx * flash);
-int printlock_w39v040a(struct flashctx *flash);
-int printlock_w39v040b(struct flashctx *flash);
-int printlock_w39v040c(struct flashctx *flash);
-int printlock_w39v040fa(struct flashctx *flash);
-int printlock_w39v040fb(struct flashctx *flash);
-int printlock_w39v040fc(struct flashctx *flash);
-int printlock_w39v080a(struct flashctx *flash);
-int printlock_w39v080fa(struct flashctx *flash);
-int printlock_w39v080fa_dual(struct flashctx *flash);
-int printlock_at49f(struct flashctx *flash);
-
-/* w29ee011.c */
-int probe_w29ee011(struct flashctx *flash);
-
-/* stm50.c */
-int erase_sector_stm50(struct flashctx *flash, unsigned int block, unsigned int blocksize);
-
-/* en29lv640b.c */
-int probe_en29lv640b(struct flashctx *flash);
-int write_en29lv640b(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len);
-
-/* memory_bus.c */
-int prepare_memory_access(struct flashctx *, enum preparation_steps);
-int prepare_memory_register_access(struct flashctx *, enum preparation_steps);
-void finish_memory_access(struct flashctx *);
-
 #endif /* !__CHIPDRIVERS_H__ */
diff --git a/include/chipdrivers/memory_bus.h b/include/chipdrivers/memory_bus.h
new file mode 100644
index 0000000..758fa64
--- /dev/null
+++ b/include/chipdrivers/memory_bus.h
@@ -0,0 +1,98 @@
+/*
+ * 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_MEMORY_BUS_H__
+#define __CHIPDRIVERS_MEMORY_BUS_H__ 1
+
+#include <stdint.h>
+
+struct flashprog_flashctx;
+
+/* 82802ab.c */
+uint8_t wait_82802ab(struct flashprog_flashctx *);
+int probe_82802ab(struct flashprog_flashctx *);
+int erase_block_82802ab(struct flashprog_flashctx *, unsigned int page, unsigned int pagesize);
+int write_82802ab(struct flashprog_flashctx *, const uint8_t *buf, unsigned int start, unsigned int len);
+void print_status_82802ab(uint8_t status);
+int unlock_28f004s5(struct flashprog_flashctx *);
+int unlock_lh28f008bjt(struct flashprog_flashctx *);
+
+/* jedec.c */
+uint8_t oddparity(uint8_t val);
+void toggle_ready_jedec(const struct flashprog_flashctx *, chipaddr dst);
+void data_polling_jedec(const struct flashprog_flashctx *, chipaddr dst, uint8_t data);
+int probe_jedec(struct flashprog_flashctx *);
+int probe_jedec_29gl(struct flashprog_flashctx *);
+int write_jedec(struct flashprog_flashctx *, const uint8_t *buf, unsigned int start, unsigned int len);
+int write_jedec_1(struct flashprog_flashctx *, const uint8_t *buf, unsigned int start, unsigned int len);
+int erase_sector_jedec(struct flashprog_flashctx *, unsigned int page, unsigned int pagesize);
+int erase_block_jedec(struct flashprog_flashctx *, unsigned int page, unsigned int blocksize);
+int erase_chip_block_jedec(struct flashprog_flashctx *, unsigned int page, unsigned int blocksize);
+
+int unlock_regspace2_uniform_32k(struct flashprog_flashctx *);
+int unlock_regspace2_uniform_64k(struct flashprog_flashctx *);
+int unlock_regspace2_block_eraser_0(struct flashprog_flashctx *);
+int unlock_regspace2_block_eraser_1(struct flashprog_flashctx *);
+int printlock_regspace2_uniform_64k(struct flashprog_flashctx *);
+int printlock_regspace2_block_eraser_0(struct flashprog_flashctx *);
+int printlock_regspace2_block_eraser_1(struct flashprog_flashctx *);
+
+/* sst28sf040.c */
+int erase_chip_28sf040(struct flashprog_flashctx *, unsigned int addr, unsigned int blocklen);
+int erase_sector_28sf040(struct flashprog_flashctx *, unsigned int address, unsigned int sector_size);
+int write_28sf040(struct flashprog_flashctx *, const uint8_t *buf, unsigned int start, unsigned int len);
+int unprotect_28sf040(struct flashprog_flashctx *);
+int protect_28sf040(struct flashprog_flashctx *);
+
+/* sst49lfxxxc.c */
+int erase_sector_49lfxxxc(struct flashprog_flashctx *, unsigned int address, unsigned int sector_size);
+
+/* sst_fwhub.c */
+int printlock_sst_fwhub(struct flashprog_flashctx *);
+int unlock_sst_fwhub(struct flashprog_flashctx *);
+
+/* w39.c */
+int printlock_w39f010(struct flashprog_flashctx *);
+int printlock_w39l010(struct flashprog_flashctx *);
+int printlock_w39l020(struct flashprog_flashctx *);
+int printlock_w39l040(struct flashprog_flashctx *);
+int printlock_w39v040a(struct flashprog_flashctx *);
+int printlock_w39v040b(struct flashprog_flashctx *);
+int printlock_w39v040c(struct flashprog_flashctx *);
+int printlock_w39v040fa(struct flashprog_flashctx *);
+int printlock_w39v040fb(struct flashprog_flashctx *);
+int printlock_w39v040fc(struct flashprog_flashctx *);
+int printlock_w39v080a(struct flashprog_flashctx *);
+int printlock_w39v080fa(struct flashprog_flashctx *);
+int printlock_w39v080fa_dual(struct flashprog_flashctx *);
+int printlock_at49f(struct flashprog_flashctx *);
+
+/* w29ee011.c */
+int probe_w29ee011(struct flashprog_flashctx *);
+
+/* stm50.c */
+int erase_sector_stm50(struct flashprog_flashctx *, unsigned int block, unsigned int blocksize);
+
+/* en29lv640b.c */
+int probe_en29lv640b(struct flashprog_flashctx *);
+int write_en29lv640b(struct flashprog_flashctx *, const uint8_t *buf, unsigned int start, unsigned int len);
+
+/* memory_bus.c */
+enum preparation_steps;
+int prepare_memory_access(struct flashprog_flashctx *, enum preparation_steps);
+int prepare_memory_register_access(struct flashprog_flashctx *, enum preparation_steps);
+void finish_memory_access(struct flashprog_flashctx *);
+
+#endif /* !__CHIPDRIVERS_MEMORY_BUS_H__ */
diff --git a/jedec.c b/jedec.c
index f3dfdd0..7c8434f 100644
--- a/jedec.c
+++ b/jedec.c
@@ -20,7 +20,7 @@
  */
 
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/memory_bus.h"
 
 #define MAX_REFLASH_TRIES 0x10
 #define MASK_FULL 0xffff
diff --git a/memory_bus.c b/memory_bus.c
index 3ca71d1..61058b9 100644
--- a/memory_bus.c
+++ b/memory_bus.c
@@ -20,7 +20,7 @@
 #include "flash.h"
 #include "programmer.h"
 
-#include "chipdrivers.h"
+#include "chipdrivers/memory_bus.h"
 
 static void *programmer_map_flash_region(const struct flashctx *flash, const char *descr,
 					 uintptr_t phys_addr, size_t len)
diff --git a/spi25.c b/spi25.c
index d1ce38e..f45f9a2 100644
--- a/spi25.c
+++ b/spi25.c
@@ -24,8 +24,8 @@
 #include <stdbool.h>
 #include "flash.h"
 #include "flashchips.h"
-#include "chipdrivers.h"
 #include "chipdrivers/spi.h"
+#include "chipdrivers/memory_bus.h"
 #include "programmer.h"
 #include "spi_command.h"
 #include "spi.h"
diff --git a/sst28sf040.c b/sst28sf040.c
index fb3fea6..6c22591 100644
--- a/sst28sf040.c
+++ b/sst28sf040.c
@@ -17,7 +17,7 @@
  */
 
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/memory_bus.h"
 
 #define AUTO_PG_ERASE1		0x20
 #define AUTO_PG_ERASE2		0xD0
diff --git a/sst49lfxxxc.c b/sst49lfxxxc.c
index a69ab75..d03b428 100644
--- a/sst49lfxxxc.c
+++ b/sst49lfxxxc.c
@@ -17,7 +17,7 @@
  */
 
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/memory_bus.h"
 
 int erase_sector_49lfxxxc(struct flashctx *flash, unsigned int address,
 			  unsigned int sector_size)
diff --git a/sst_fwhub.c b/sst_fwhub.c
index d688a35..3e53080 100644
--- a/sst_fwhub.c
+++ b/sst_fwhub.c
@@ -19,7 +19,7 @@
 /* Adapted from the Intel FW hub stuff for 82802ax parts. */
 
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/memory_bus.h"
 
 static int check_sst_fwhub_block_lock(struct flashctx *flash, unsigned int offset)
 {
diff --git a/stm50.c b/stm50.c
index d03d6dc..e1d5ba8 100644
--- a/stm50.c
+++ b/stm50.c
@@ -23,7 +23,7 @@
  */
 
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/memory_bus.h"
 
 static int stm50_erase_sector(struct flashctx *flash, unsigned int addr)
 {
diff --git a/w29ee011.c b/w29ee011.c
index 31aa84f..6def570 100644
--- a/w29ee011.c
+++ b/w29ee011.c
@@ -16,7 +16,7 @@
 
 #include <string.h>
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/memory_bus.h"
 
 /* According to the Winbond W29EE011, W29EE012, W29C010M, W29C011A
  * datasheets this is the only valid probe function for those chips.
diff --git a/w39.c b/w39.c
index f58c495..234bcd8 100644
--- a/w39.c
+++ b/w39.c
@@ -16,7 +16,7 @@
  */
 
 #include "flash.h"
-#include "chipdrivers.h"
+#include "chipdrivers/memory_bus.h"
 
 static uint8_t w39_idmode_readb(struct flashctx *flash, unsigned int offset)
 {