|
@@ -645,6 +645,11 @@ static const struct spi_device_id m25p_ids[] = {
|
|
{ "en25p32", INFO(0x1c2016, 0, 64 * 1024, 64, 0) },
|
|
{ "en25p32", INFO(0x1c2016, 0, 64 * 1024, 64, 0) },
|
|
{ "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128, 0) },
|
|
{ "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128, 0) },
|
|
|
|
|
|
|
|
+ /* Intel/Numonyx -- xxxs33b */
|
|
|
|
+ { "160s33b", INFO(0x898911, 0, 64 * 1024, 32, 0) },
|
|
|
|
+ { "320s33b", INFO(0x898912, 0, 64 * 1024, 64, 0) },
|
|
|
|
+ { "640s33b", INFO(0x898913, 0, 64 * 1024, 128, 0) },
|
|
|
|
+
|
|
/* Macronix */
|
|
/* Macronix */
|
|
{ "mx25l4005a", INFO(0xc22013, 0, 64 * 1024, 8, SECT_4K) },
|
|
{ "mx25l4005a", INFO(0xc22013, 0, 64 * 1024, 8, SECT_4K) },
|
|
{ "mx25l8005", INFO(0xc22014, 0, 64 * 1024, 16, 0) },
|
|
{ "mx25l8005", INFO(0xc22014, 0, 64 * 1024, 16, 0) },
|
|
@@ -834,11 +839,12 @@ static int __devinit m25p_probe(struct spi_device *spi)
|
|
dev_set_drvdata(&spi->dev, flash);
|
|
dev_set_drvdata(&spi->dev, flash);
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Atmel and SST serial flash tend to power
|
|
|
|
|
|
+ * Atmel, SST and Intel/Numonyx serial flash tend to power
|
|
* up with the software protection bits set
|
|
* up with the software protection bits set
|
|
*/
|
|
*/
|
|
|
|
|
|
if (info->jedec_id >> 16 == 0x1f ||
|
|
if (info->jedec_id >> 16 == 0x1f ||
|
|
|
|
+ info->jedec_id >> 16 == 0x89 ||
|
|
info->jedec_id >> 16 == 0xbf) {
|
|
info->jedec_id >> 16 == 0xbf) {
|
|
write_enable(flash);
|
|
write_enable(flash);
|
|
write_sr(flash, 0);
|
|
write_sr(flash, 0);
|