diff --git a/board_enable.c b/board_enable.c
index 9c2aa32..1a5deca 100644
--- a/board_enable.c
+++ b/board_enable.c
@@ -35,32 +35,32 @@
  * Helper functions for many Winbond Super I/Os of the W836xx range.
  */
 /* Enter extended functions */
-static void w836xx_ext_enter(uint16_t port)
+void w836xx_ext_enter(uint16_t port)
 {
 	OUTB(0x87, port);
 	OUTB(0x87, port);
 }
 
 /* Leave extended functions */
-static void w836xx_ext_leave(uint16_t port)
+void w836xx_ext_leave(uint16_t port)
 {
 	OUTB(0xAA, port);
 }
 
 /* General functions for reading/writing Winbond Super I/Os. */
-static unsigned char wbsio_read(uint16_t index, uint8_t reg)
+unsigned char wbsio_read(uint16_t index, uint8_t reg)
 {
 	OUTB(reg, index);
 	return INB(index + 1);
 }
 
-static void wbsio_write(uint16_t index, uint8_t reg, uint8_t data)
+void wbsio_write(uint16_t index, uint8_t reg, uint8_t data)
 {
 	OUTB(reg, index);
 	OUTB(data, index + 1);
 }
 
-static void wbsio_mask(uint16_t index, uint8_t reg, uint8_t data, uint8_t mask)
+void wbsio_mask(uint16_t index, uint8_t reg, uint8_t data, uint8_t mask)
 {
 	uint8_t tmp;
 
diff --git a/flash.h b/flash.h
index 8b85538..317155a 100644
--- a/flash.h
+++ b/flash.h
@@ -454,6 +454,11 @@
 			      uint16_t card_vendor, uint16_t card_device);
 
 /* board_enable.c */
+void w836xx_ext_enter(uint16_t port);
+void w836xx_ext_leave(uint16_t port);
+unsigned char wbsio_read(uint16_t index, uint8_t reg);
+void wbsio_write(uint16_t index, uint8_t reg, uint8_t data);
+void wbsio_mask(uint16_t index, uint8_t reg, uint8_t data, uint8_t mask);
 int board_flash_enable(const char *vendor, const char *part);
 void print_supported_boards(void);
 
