--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -630,6 +630,11 @@ static struct flash_info __devinitdata m
 	{ "en25p32", 0x1c2016, 0, 64 * 1024,  64, },
 	{ "en25p64", 0x1c2017, 0, 64 * 1024, 128, },
 
+	/* Numonyx -- xxxs33b */
+	{ "160s33b",  0x898911, 0, 64 * 1024,  64, },
+	{ "320s33b",  0x898912, 0, 64 * 1024, 128, },
+	{ "640s33b",  0x898913, 0, 64 * 1024, 256, },
+
 	/* PMC -- pm25x "blocks" are 32K, sectors are 4K */
 	{ "pm25lv512",         0, 32 * 1024, 2, SECT_4K },
 	{ "pm25lv010",         0, 32 * 1024, 4, SECT_4K },
@@ -784,11 +789,12 @@ static int __devinit m25p_probe(struct s
 	dev_set_drvdata(&spi->dev, flash);
 
 	/*
-	 * Atmel serial flash tend to power up
+	 * Atmel and Intel/Numonyx serial flash tend to power up
 	 * with the software protection bits set
 	 */
 
-	if (info->jedec_id >> 16 == 0x1f) {
+	if (info->jedec_id >> 16 == 0x1f ||
+	    info->jedec_id >> 16 == 0x89) {
 		write_enable(flash);
 		write_sr(flash, 0);
 	}
