* [PATCH 1/2] mtd: m25p80: introduce SST_WRITE flag for SST byte programming
@ 2013-02-22 14:51 Krzysztof Mazur
2013-02-22 14:51 ` [PATCH 2/2] mtd: m25p80: add support for SST25VF064C Krzysztof Mazur
2013-03-08 12:02 ` [PATCH 1/2] mtd: m25p80: introduce SST_WRITE flag for SST byte programming Artem Bityutskiy
0 siblings, 2 replies; 3+ messages in thread
From: Krzysztof Mazur @ 2013-02-22 14:51 UTC (permalink / raw)
To: linux-mtd; +Cc: artem.bityutskiy, Krzysztof Mazur, dwmw2
Not all SST devices implement the SST byte programming command.
Some devices (like SST25VF064C) implement only standard m25p80 page
write command.
Now SPI flash devices that need sst_write() are explicitly marked
with new SST_WRITE flag and the decision to use sst_write() is based
on this flag instead of manufacturer id.
Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
---
drivers/mtd/devices/m25p80.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 4eeeb2d..e533bf1 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -591,6 +591,7 @@ struct flash_info {
u16 flags;
#define SECT_4K 0x01 /* OPCODE_BE_4K works uniformly */
#define M25P_NO_ERASE 0x02 /* No erase command needed */
+#define SST_WRITE 0x04 /* use SST byte programming */
};
#define INFO(_jedec_id, _ext_id, _sector_size, _n_sectors, _flags) \
@@ -687,14 +688,14 @@ static const struct spi_device_id m25p_ids[] = {
{ "s25fl064k", INFO(0xef4017, 0, 64 * 1024, 128, SECT_4K) },
/* SST -- large erase sizes are "overlays", "sectors" are 4K */
- { "sst25vf040b", INFO(0xbf258d, 0, 64 * 1024, 8, SECT_4K) },
- { "sst25vf080b", INFO(0xbf258e, 0, 64 * 1024, 16, SECT_4K) },
- { "sst25vf016b", INFO(0xbf2541, 0, 64 * 1024, 32, SECT_4K) },
- { "sst25vf032b", INFO(0xbf254a, 0, 64 * 1024, 64, SECT_4K) },
- { "sst25wf512", INFO(0xbf2501, 0, 64 * 1024, 1, SECT_4K) },
- { "sst25wf010", INFO(0xbf2502, 0, 64 * 1024, 2, SECT_4K) },
- { "sst25wf020", INFO(0xbf2503, 0, 64 * 1024, 4, SECT_4K) },
- { "sst25wf040", INFO(0xbf2504, 0, 64 * 1024, 8, SECT_4K) },
+ { "sst25vf040b", INFO(0xbf258d, 0, 64 * 1024, 8, SECT_4K | SST_WRITE) },
+ { "sst25vf080b", INFO(0xbf258e, 0, 64 * 1024, 16, SECT_4K | SST_WRITE) },
+ { "sst25vf016b", INFO(0xbf2541, 0, 64 * 1024, 32, SECT_4K | SST_WRITE) },
+ { "sst25vf032b", INFO(0xbf254a, 0, 64 * 1024, 64, SECT_4K | SST_WRITE) },
+ { "sst25wf512", INFO(0xbf2501, 0, 64 * 1024, 1, SECT_4K | SST_WRITE) },
+ { "sst25wf010", INFO(0xbf2502, 0, 64 * 1024, 2, SECT_4K | SST_WRITE) },
+ { "sst25wf020", INFO(0xbf2503, 0, 64 * 1024, 4, SECT_4K | SST_WRITE) },
+ { "sst25wf040", INFO(0xbf2504, 0, 64 * 1024, 8, SECT_4K | SST_WRITE) },
/* ST Microelectronics -- newer production may have feature updates */
{ "m25p05", INFO(0x202010, 0, 32 * 1024, 2, 0) },
@@ -900,7 +901,7 @@ static int m25p_probe(struct spi_device *spi)
flash->mtd._read = m25p80_read;
/* sst flash chips use AAI word program */
- if (JEDEC_MFR(info->jedec_id) == CFI_MFR_SST)
+ if (info->flags & SST_WRITE)
flash->mtd._write = sst_write;
else
flash->mtd._write = m25p80_write;
--
1.8.2.rc0.238.g01e6e4a
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] mtd: m25p80: add support for SST25VF064C
2013-02-22 14:51 [PATCH 1/2] mtd: m25p80: introduce SST_WRITE flag for SST byte programming Krzysztof Mazur
@ 2013-02-22 14:51 ` Krzysztof Mazur
2013-03-08 12:02 ` [PATCH 1/2] mtd: m25p80: introduce SST_WRITE flag for SST byte programming Artem Bityutskiy
1 sibling, 0 replies; 3+ messages in thread
From: Krzysztof Mazur @ 2013-02-22 14:51 UTC (permalink / raw)
To: linux-mtd; +Cc: artem.bityutskiy, Krzysztof Mazur, dwmw2
Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
---
drivers/mtd/devices/m25p80.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index e533bf1..0501f5f 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -692,6 +692,7 @@ static const struct spi_device_id m25p_ids[] = {
{ "sst25vf080b", INFO(0xbf258e, 0, 64 * 1024, 16, SECT_4K | SST_WRITE) },
{ "sst25vf016b", INFO(0xbf2541, 0, 64 * 1024, 32, SECT_4K | SST_WRITE) },
{ "sst25vf032b", INFO(0xbf254a, 0, 64 * 1024, 64, SECT_4K | SST_WRITE) },
+ { "sst25vf064c", INFO(0xbf254b, 0, 64 * 1024, 128, SECT_4K) },
{ "sst25wf512", INFO(0xbf2501, 0, 64 * 1024, 1, SECT_4K | SST_WRITE) },
{ "sst25wf010", INFO(0xbf2502, 0, 64 * 1024, 2, SECT_4K | SST_WRITE) },
{ "sst25wf020", INFO(0xbf2503, 0, 64 * 1024, 4, SECT_4K | SST_WRITE) },
--
1.8.2.rc0.238.g01e6e4a
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] mtd: m25p80: introduce SST_WRITE flag for SST byte programming
2013-02-22 14:51 [PATCH 1/2] mtd: m25p80: introduce SST_WRITE flag for SST byte programming Krzysztof Mazur
2013-02-22 14:51 ` [PATCH 2/2] mtd: m25p80: add support for SST25VF064C Krzysztof Mazur
@ 2013-03-08 12:02 ` Artem Bityutskiy
1 sibling, 0 replies; 3+ messages in thread
From: Artem Bityutskiy @ 2013-03-08 12:02 UTC (permalink / raw)
To: Krzysztof Mazur; +Cc: dwmw2, linux-mtd
On Fri, 2013-02-22 at 15:51 +0100, Krzysztof Mazur wrote:
> Not all SST devices implement the SST byte programming command.
> Some devices (like SST25VF064C) implement only standard m25p80 page
> write command.
>
> Now SPI flash devices that need sst_write() are explicitly marked
> with new SST_WRITE flag and the decision to use sst_write() is based
> on this flag instead of manufacturer id.
>
> Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
Pushed both to l2-mtd.git, thanks!
--
Best Regards,
Artem Bityutskiy
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-03-08 12:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-22 14:51 [PATCH 1/2] mtd: m25p80: introduce SST_WRITE flag for SST byte programming Krzysztof Mazur
2013-02-22 14:51 ` [PATCH 2/2] mtd: m25p80: add support for SST25VF064C Krzysztof Mazur
2013-03-08 12:02 ` [PATCH 1/2] mtd: m25p80: introduce SST_WRITE flag for SST byte programming Artem Bityutskiy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox