ar71xx: fix 320S33B flash chip support

SVN-Revision: 19114
This commit is contained in:
Gabor Juhos 2010-01-13 06:52:12 +00:00
parent 5cc66964c1
commit 29653e2467
6 changed files with 48 additions and 3 deletions

View file

@ -12,3 +12,18 @@
/* PMC -- pm25x "blocks" are 32K, sectors are 4K */ /* PMC -- pm25x "blocks" are 32K, sectors are 4K */
{ "pm25lv512", 0, 32 * 1024, 2, SECT_4K }, { "pm25lv512", 0, 32 * 1024, 2, SECT_4K },
{ "pm25lv010", 0, 32 * 1024, 4, SECT_4K }, { "pm25lv010", 0, 32 * 1024, 4, SECT_4K },
@@ -656,11 +661,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);
}

View file

@ -1,6 +1,6 @@
--- a/drivers/mtd/devices/m25p80.c --- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c
@@ -751,6 +751,16 @@ static int __devinit m25p_probe(struct s @@ -752,6 +752,16 @@ static int __devinit m25p_probe(struct s
part_probes, &parts, 0); part_probes, &parts, 0);
} }
#endif #endif

View file

@ -12,3 +12,18 @@
/* PMC -- pm25x "blocks" are 32K, sectors are 4K */ /* PMC -- pm25x "blocks" are 32K, sectors are 4K */
{ "pm25lv512", 0, 32 * 1024, 2, SECT_4K }, { "pm25lv512", 0, 32 * 1024, 2, SECT_4K },
{ "pm25lv010", 0, 32 * 1024, 4, SECT_4K }, { "pm25lv010", 0, 32 * 1024, 4, SECT_4K },
@@ -660,11 +665,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);
}

View file

@ -1,6 +1,6 @@
--- a/drivers/mtd/devices/m25p80.c --- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c
@@ -755,6 +755,16 @@ static int __devinit m25p_probe(struct s @@ -756,6 +756,16 @@ static int __devinit m25p_probe(struct s
part_probes, &parts, 0); part_probes, &parts, 0);
} }
#endif #endif

View file

@ -12,3 +12,18 @@
/* PMC -- pm25x "blocks" are 32K, sectors are 4K */ /* PMC -- pm25x "blocks" are 32K, sectors are 4K */
{ "pm25lv512", 0, 32 * 1024, 2, SECT_4K }, { "pm25lv512", 0, 32 * 1024, 2, SECT_4K },
{ "pm25lv010", 0, 32 * 1024, 4, SECT_4K }, { "pm25lv010", 0, 32 * 1024, 4, SECT_4K },
@@ -789,11 +794,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);
}

View file

@ -1,6 +1,6 @@
--- a/drivers/mtd/devices/m25p80.c --- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c
@@ -889,6 +889,16 @@ static int __devinit m25p_probe(struct s @@ -890,6 +890,16 @@ static int __devinit m25p_probe(struct s
part_probes, &parts, 0); part_probes, &parts, 0);
} }
#endif #endif