Index: flash.h
===================================================================
--- flash.h	(revision 1322)
+++ flash.h	(working copy)
@@ -145,6 +145,10 @@
 	int (*unlock) (struct flashchip *flash);
 	int (*write) (struct flashchip *flash, uint8_t *buf, int start, int len);
 	int (*read) (struct flashchip *flash, uint8_t *buf, int start, int len);
+	struct {
+		uint16_t min;
+		uint16_t max;
+	}voltage;
 
 	/* Some flash devices have an additional register space. */
 	chipaddr virtual_memory;
Index: flashchips.c
===================================================================
--- flashchips.c	(revision 1322)
+++ flashchips.c	(working copy)
@@ -54,6 +54,7 @@
 	 * .unlock		= Chip unlock function
 	 * .write		= Chip write function
 	 * .read		= Chip read function
+	 * .voltage		= Voltage min and max range in decivolt
 	 */
 
 	{
@@ -80,6 +81,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -111,6 +113,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4750, 5250}, /*-55 speed is +-5%, all others +-10% */
 	},
 
 	{
@@ -168,6 +171,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -194,6 +198,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -220,6 +225,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -492,6 +498,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -518,6 +525,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -550,6 +558,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -615,6 +624,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -648,6 +658,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -681,6 +692,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -714,6 +726,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	/* The A25L40P{T,U} chips are distinguished by their
@@ -752,6 +765,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -785,6 +799,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -818,6 +833,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -854,6 +870,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -890,6 +907,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -921,6 +939,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -952,6 +971,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -983,6 +1003,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1014,6 +1035,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1045,6 +1067,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1076,6 +1099,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1113,6 +1137,7 @@
 		.unlock		= NULL, /* Two status reg bytes (read with 0x35 and 0x05) */
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1150,6 +1175,7 @@
 		.unlock		= NULL, /* Two status reg bytes (read with 0x35 and 0x05) */
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1181,6 +1207,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -1212,6 +1239,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -1238,6 +1266,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -1265,6 +1294,7 @@
 		.unlock		= unlock_49fl00x,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -1302,6 +1332,7 @@
 		.unlock		= spi_disable_blockprotect_at25df,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2300, 3600},, /* Datasheet says 2.3-3.6V or 2.7-3.6V */
 	},
 
 	{
@@ -1339,6 +1370,7 @@
 		.unlock		= spi_disable_blockprotect_at25df,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2300, 3600},, /* Datasheet says 2.3-3.6V or 2.7-3.6V */
 	},
 
 	{
@@ -1376,6 +1408,7 @@
 		.unlock		= spi_disable_blockprotect_at25df,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {1600, 2000}, /* Datasheet says range is 1.65-1.95 V */
 	},
 
 	{
@@ -1450,6 +1483,7 @@
 		.unlock		= spi_disable_blockprotect_at25df_sec,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1487,6 +1521,7 @@
 		.unlock		= spi_disable_blockprotect_at25df,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1524,6 +1559,7 @@
 		.unlock		= spi_disable_blockprotect_at25df_sec,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1561,6 +1597,7 @@
 		.unlock		= spi_disable_blockprotect_at25df_sec,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1598,6 +1635,7 @@
 		.unlock		= spi_disable_blockprotect_at25df_sec,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1635,6 +1673,7 @@
 		.unlock		= spi_disable_blockprotect_at25f,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1674,6 +1713,7 @@
 		.unlock		= spi_disable_blockprotect_at25fs010,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1710,6 +1750,7 @@
 		.unlock		= spi_disable_blockprotect_at25fs040,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1732,6 +1773,7 @@
 		},
 		.write		= NULL /* Incompatible Page write */,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600}, /* Datasheet says 3.0-3.6 V or 2.7-3.6 V */
 	},
 
 	{
@@ -1769,6 +1811,7 @@
 		.unlock		= spi_disable_blockprotect_at25df,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1805,6 +1848,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1841,6 +1885,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	/*The AT26DF321 has the same ID as the AT25DF321. */
@@ -1893,6 +1938,7 @@
 		},
 		.write		= NULL /* Incompatible Page write */,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -1916,6 +1962,7 @@
 		},
 		.write		= write_jedec,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 
 	},
 
@@ -1940,6 +1987,7 @@
 		},
 		.write		= write_jedec,	/* FIXME */
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -1963,6 +2011,7 @@
 		},
 		.write		= write_jedec,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -1986,6 +2035,7 @@
 		},
 		.write		= write_jedec,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -2001,6 +2051,7 @@
 		.probe_timing	= TIMING_ZERO,
 		.write		= NULL /* Incompatible Page write */,
 		.read		= NULL /* Incompatible read */,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2016,6 +2067,7 @@
 		.probe_timing	= TIMING_ZERO,
 		.write		= NULL,
 		.read		= NULL,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2031,6 +2083,7 @@
 		.probe_timing	= TIMING_ZERO,
 		.write		= NULL,
 		.read		= NULL,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2046,6 +2099,7 @@
 		.probe_timing	= TIMING_ZERO,
 		.write		= NULL,
 		.read		= NULL,
+		.voltage	= {2500, 3600}, /* Datasheet says 2.5-3.6 V or 2.7-3.6 V */
 	},
 
 	{
@@ -2061,6 +2115,7 @@
 		.probe_timing	= TIMING_ZERO,
 		.write		= NULL,
 		.read		= NULL,
+		.voltage	= {2500, 3600}, /* Datasheet says 2.5-3.6 V or 2.7-3.6 V */
 	},
 
 	{
@@ -2076,6 +2131,7 @@
 		.probe_timing	= TIMING_ZERO,
 		.write		= NULL,
 		.read		= NULL,
+		.voltage	= {2500, 3600}, /* Datasheet says 2.5-3.6 V or 2.7-3.6 V */
 	},
 
 	{
@@ -2091,6 +2147,7 @@
 		.probe_timing	= TIMING_ZERO,
 		.write		= NULL,
 		.read		= NULL /* Incompatible read */,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2106,6 +2163,7 @@
 		.probe_timing	= TIMING_ZERO,
 		.write		= NULL,
 		.read		= NULL,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2121,6 +2179,7 @@
 		.probe_timing	= TIMING_ZERO,
 		.write		= NULL,
 		.read		= NULL,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2144,6 +2203,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2167,6 +2227,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -2198,6 +2259,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -2229,6 +2291,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -2286,6 +2349,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -2318,6 +2382,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_1,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2349,6 +2414,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2380,6 +2446,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2411,6 +2478,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2442,6 +2510,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2474,6 +2543,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2506,6 +2576,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2538,6 +2609,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2570,6 +2642,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2602,6 +2675,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2634,6 +2708,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2666,6 +2741,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2698,6 +2774,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2730,6 +2807,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2762,6 +2840,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2795,6 +2874,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2827,6 +2907,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2862,6 +2943,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2898,6 +2980,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2934,6 +3017,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -2970,6 +3054,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3003,6 +3088,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3036,6 +3122,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3069,6 +3156,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3102,6 +3190,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3129,6 +3218,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -3160,6 +3250,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -3191,6 +3282,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -3222,6 +3314,7 @@
 		},
 		.write		= NULL,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -3253,6 +3346,7 @@
 		},
 		.write		= NULL,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -3285,6 +3379,7 @@
 		},
 		.write		= write_m29f400bt,
 		.read		= read_memmapped,
+		.voltage	= {4750, 5250}, /*5.0V +-5% for -55 model, +-10% for rest */
 	},
 
 	{
@@ -3316,6 +3411,7 @@
 		},
 		.write		= write_m29f400bt,
 		.read		= read_memmapped,
+		.voltage	= {4750, 5250}, /* 5.0V +-5% for -55 model, +-10% for rest */
 	},
 
 	{
@@ -3347,6 +3443,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4750, 5250}, /* 5.0V +-5% for -45 model, +-10% for rest */
 	},
 
 	{
@@ -3378,6 +3475,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4750, 5250}, /* 5.0V +-5% for -45 model, +-10% for rest */
 	},
 
 	{
@@ -3430,6 +3528,7 @@
 		},
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -3456,6 +3555,7 @@
 		},
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -3483,6 +3583,7 @@
 		},
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500}, /*5.0V +-10% read, 12V fast program & erase- +-5% standard, +-10% option */ 
 	},
 
 	{
@@ -3640,6 +3741,7 @@
 		.unlock		= unlock_82802ab,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -3664,6 +3766,7 @@
 		.unlock		= unlock_82802ab,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -3700,6 +3803,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3733,6 +3837,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3769,6 +3874,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3805,6 +3911,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3841,6 +3948,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3877,6 +3985,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3910,6 +4019,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -3976,6 +4086,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4009,6 +4120,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4042,6 +4154,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4075,6 +4188,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4107,6 +4221,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4139,6 +4254,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4170,6 +4286,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4201,6 +4318,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4253,6 +4371,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4279,6 +4398,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4305,6 +4425,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4331,6 +4452,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4357,6 +4479,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4383,6 +4506,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4409,6 +4533,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4435,6 +4560,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4464,6 +4590,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4493,6 +4620,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4522,6 +4650,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4551,6 +4680,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4580,6 +4710,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4609,6 +4740,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4673,6 +4805,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4702,6 +4835,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4737,6 +4871,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4797,6 +4932,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4828,6 +4964,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -4857,6 +4994,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4886,6 +5024,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -4915,6 +5054,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 	
 	{
@@ -4945,6 +5085,7 @@
 		.unlock		= unlock_49fl00x,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -4975,6 +5116,7 @@
 		.unlock		= unlock_49fl00x,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -5033,6 +5175,7 @@
 		.unlock		= unlock_82802ab,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -5085,6 +5228,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5111,6 +5255,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5227,6 +5372,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_1,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5262,6 +5408,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_aai_write,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5297,6 +5444,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5361,6 +5509,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_1,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5460,6 +5609,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_1,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5487,6 +5637,7 @@
 		.unlock		= unprotect_28sf040,
 		.write		= write_28sf040,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -5510,6 +5661,7 @@
 		},
 		.write		= write_jedec,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -5533,6 +5685,7 @@
 		},
 		.write		= write_jedec,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -5556,6 +5709,7 @@
 		},
 		.write		= write_jedec,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -5579,6 +5733,7 @@
 		},
 		.write		= write_jedec,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -5605,6 +5760,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -5631,6 +5787,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -5657,6 +5814,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -5683,6 +5841,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -5709,6 +5868,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5735,6 +5895,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5761,6 +5922,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5787,6 +5949,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5816,6 +5979,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -5847,6 +6011,7 @@
 		.unlock		= unlock_sst_fwhub,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -5878,6 +6043,7 @@
 		.unlock		= unlock_sst_fwhub,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -5912,6 +6078,7 @@
 		.unlock		= unlock_sst_fwhub,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -5944,6 +6111,7 @@
 		.unlock		= unlock_49lfxxxc,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -5975,6 +6143,7 @@
 		.unlock		= unlock_sst_fwhub,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -6007,6 +6176,7 @@
 		.unlock		= unlock_49lfxxxc,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -6039,6 +6209,7 @@
 		.unlock		= unlock_49lfxxxc,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -6068,6 +6239,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -6097,6 +6269,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -6126,6 +6299,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -6156,6 +6330,7 @@
 		.unlock		= unlock_82802ab,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -6185,6 +6360,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -6217,6 +6393,7 @@
 		.unlock		= unlock_49lfxxxc,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -6243,6 +6420,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	/* The ST M25P05 is a bit of a problem. It has the same ID as the
@@ -6274,6 +6452,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_1, /* 128 */
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -6300,6 +6479,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	/* The ST M25P10 has the same problem as the M25P05. */
@@ -6327,6 +6507,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_1, /* 128 */
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -6353,6 +6534,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -6379,6 +6561,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -6431,6 +6614,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -6457,6 +6641,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -6483,6 +6668,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -6509,6 +6695,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -6535,6 +6722,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -6653,6 +6841,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500}, /* Datasheet says some are only 4.75-5.25 V */
 	},
 
 	{
@@ -6684,6 +6873,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500}, /* Datasheet says some are only 4.75-5.25 V */
 	},
 
 	{
@@ -6710,6 +6900,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -6742,6 +6933,7 @@
 		},
 		.write		= write_m29f400bt,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 	{
 		/* FIXME: this has WORD/BYTE sequences; 2AA for word, 555 for byte */
@@ -6773,6 +6965,7 @@
 		},
 		.write		= write_m29f400bt,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -6799,6 +6992,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -6825,6 +7019,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {2700, 3600},
 	},
 
         {
@@ -6848,6 +7043,7 @@
                 },
                 .write          = write_jedec_1,
                 .read           = read_memmapped,
+		.voltage	= {2700, 3600},
         },
 
 	{
@@ -6880,6 +7076,7 @@
 		.unlock		= unlock_stm50flw0x0x,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600}, /* Also has 12V fast program & erase */
 	},
 
 	{
@@ -6912,6 +7109,7 @@
 		.unlock		= unlock_stm50flw0x0x,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600}, /* Also has 12V fast program & erase */
 	},
 
 	{
@@ -6944,6 +7142,7 @@
 		.unlock		= unlock_stm50flw0x0x,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600}, /* Also has 12V fast program & erase */
 	},
 
 	{
@@ -6976,6 +7175,7 @@
 		.unlock		= unlock_stm50flw0x0x,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600}, /* Also has 12V fast program & erase */
 	},
 
 	{
@@ -7005,6 +7205,7 @@
 		.unlock		= unlock_stm50flw0x0x,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600}, /* Also has 12V fast program & erase */
 	},
 
 	{
@@ -7029,6 +7230,7 @@
 		.unlock		= unlock_stm50flw0x0x,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600}, /* Also has 12V fast program & erase */
 	},
 
 	{
@@ -7053,6 +7255,7 @@
 		.unlock		= unlock_stm50flw0x0x,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600}, /* Also has 12V fast program & erase */
 	},
 
 	{
@@ -7077,6 +7280,7 @@
 		.unlock		= unlock_stm50flw0x0x,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600}, /* Also has 12V fast program & erase */
 	},
 
 	{
@@ -7107,6 +7311,7 @@
 		.unlock		= unlock_stm50flw0x0x,
 		.write		= write_82802ab,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600}, /* Also has 12V fast program & erase */
 	},
 
 	{
@@ -7133,6 +7338,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -7159,6 +7365,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -7237,6 +7444,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -7263,6 +7471,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -7289,6 +7498,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -7315,6 +7525,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -7346,6 +7557,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -7377,6 +7589,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -7413,6 +7626,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -7449,6 +7663,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -7485,6 +7700,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -7587,6 +7803,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -7617,6 +7834,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -7647,6 +7865,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -7677,6 +7896,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -7713,6 +7933,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -7749,6 +7970,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -7785,6 +8007,7 @@
 		.unlock		= spi_disable_blockprotect,
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
 	},
 
 	{
@@ -7831,6 +8054,7 @@
 		},
 		.write		= write_jedec,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -7854,6 +8078,7 @@
 		},
 		.write		= write_jedec,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -7934,6 +8159,7 @@
 		.printlock	= printlock_w39v040a,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -7961,6 +8187,7 @@
 		.printlock	= printlock_w39v040b,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -7988,6 +8215,7 @@
 		.printlock	= printlock_w39v040c,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -8019,6 +8247,7 @@
 		.unlock		= unlock_sst_fwhub,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -8101,6 +8330,7 @@
 		.printlock	= printlock_w39v080a,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -8132,6 +8362,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -8155,6 +8386,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
 	},
 
 	{
@@ -8186,6 +8418,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -8217,6 +8450,7 @@
 		},
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600},
 	},
 
 	{
@@ -8245,6 +8479,7 @@
 		.unlock		= unlock_w39v080fa,
 		.write		= write_jedec_1,
 		.read		= read_memmapped,
+		.voltage	= {3000, 3600}, /* 12 V fast program mode */
 	},
 
 	{
