diff --git a/flash.h b/flash.h
index 048f7440f0d55847f5ee78ecf2becc3e4a9c26a4..dc30f717cf15dc5ef5667701472b59cb4e7fff2b 100644
--- a/flash.h
+++ b/flash.h
@@ -165,6 +165,14 @@ extern struct flashchip flashchips[];
 #define SHARP_ID		0xB0	/* Sharp */
 #define SHARP_LHF00L04		0xCF
 
+/*
+ * Spansion was previously a joint venture of AMD and Fujitsu.
+ * S25 chips are SPI. The first device ID byte is memory type and
+ * the second device ID byte is memory capacity.
+ */
+#define SPANSION_ID		0x01	/* Spansion */
+#define SPANSION_S25FL016A	0x0214
+
 /*
  * SST25 chips are SPI, first byte of device ID is memory type, second
  * byte of device ID is related to log(bitsize) at least for some chips.
diff --git a/flashchips.c b/flashchips.c
index 99bc08646cc72246c4d4120c7f3e13fc702ad95c..964591ff5049d15b91085cce851e46f2d9164ea5 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -56,6 +56,8 @@ struct flashchip flashchips[] = {
 	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write, generic_spi_chip_read},
 	{"MX25L3205",	MX_ID,		MX_25L3205,	4096, 256,
 	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write, generic_spi_chip_read},
+	{"S25FL016A",	SPANSION_ID,	SPANSION_S25FL016A,	2048, 256,
+	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write, generic_spi_chip_read},
 	{"SST25VF040B",	SST_ID,		SST_25VF040B,	512,	256,
 	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write, generic_spi_chip_read},
 	{"SST25VF016B",	SST_ID,		SST_25VF016B,	2048,	256,