Message ID | 1348563927-9131-1-git-send-email-matthieu.castet@parrot.com |
---|---|
State | Accepted |
Commit | 0aa87b7563f138149429f35727b975ec25a494a6 |
Headers | show |
On Tue, Sep 25, 2012 at 2:05 AM, Matthieu CASTET <matthieu.castet@parrot.com> wrote: > diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c > index 5257345..4eb99c6 100644 > --- a/drivers/mtd/devices/m25p80.c > +++ b/drivers/mtd/devices/m25p80.c > @@ -168,6 +168,7 @@ static inline int set_4byte(struct m25p *flash, u32 jedec_id, int enable) > { > switch (JEDEC_MFR(jedec_id)) { > case CFI_MFR_MACRONIX: > + case 0xEF /* winbond */: > flash->command[0] = enable ? OPCODE_EN4B : OPCODE_EX4B; > return spi_write(flash->spi, flash->command, 1); > default: Just checking: Winbond didn't use their known manufacturer ID (0xDA) for this chip? Do they have other chips that support/need 4-byte addressing and use 0xDA? Brian
Brian Norris a écrit : > On Tue, Sep 25, 2012 at 2:05 AM, Matthieu CASTET > <matthieu.castet@parrot.com> wrote: >> diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c >> index 5257345..4eb99c6 100644 >> --- a/drivers/mtd/devices/m25p80.c >> +++ b/drivers/mtd/devices/m25p80.c >> @@ -168,6 +168,7 @@ static inline int set_4byte(struct m25p *flash, u32 jedec_id, int enable) >> { >> switch (JEDEC_MFR(jedec_id)) { >> case CFI_MFR_MACRONIX: >> + case 0xEF /* winbond */: >> flash->command[0] = enable ? OPCODE_EN4B : OPCODE_EX4B; >> return spi_write(flash->spi, flash->command, 1); >> default: > > Just checking: Winbond didn't use their known manufacturer ID (0xDA) > for this chip? Do they have other chips that support/need 4-byte > addressing and use 0xDA? > I don't know, but if you look in m25p80 device list, all windbond flash start (the jdec manuf code) with 0xEF [1]. May be MFR code are different for NOR flash and spi NOR ? For info the datasheet is avaiable at : http://www.winbond.com.tw/NR/rdonlyres/658E0D71-9AC3-48D6-B043-3702625A2CF5/0/W25Q256FV.pdf Matthieu [1] /* Winbond -- w25x "blocks" are 64K, "sectors" are 4KiB */ { "w25x10", INFO(0xef3011, 0, 64 * 1024, 2, SECT_4K) }, { "w25x20", INFO(0xef3012, 0, 64 * 1024, 4, SECT_4K) }, { "w25x40", INFO(0xef3013, 0, 64 * 1024, 8, SECT_4K) }, { "w25x80", INFO(0xef3014, 0, 64 * 1024, 16, SECT_4K) }, { "w25x16", INFO(0xef3015, 0, 64 * 1024, 32, SECT_4K) }, { "w25x32", INFO(0xef3016, 0, 64 * 1024, 64, SECT_4K) }, { "w25q32", INFO(0xef4016, 0, 64 * 1024, 64, SECT_4K) }, { "w25q32dw", INFO(0xef6016, 0, 64 * 1024, 64, SECT_4K) }, { "w25x64", INFO(0xef3017, 0, 64 * 1024, 128, SECT_4K) }, { "w25q64", INFO(0xef4017, 0, 64 * 1024, 128, SECT_4K) }, { "w25q80", INFO(0xef5014, 0, 64 * 1024, 16, SECT_4K) }, { "w25q256", INFO(0xef4019, 0, 64 * 1024, 512, SECT_4K) },
On Tue, 2012-09-25 at 11:05 +0200, Matthieu CASTET wrote:
> Signed-off-by: Matthieu CASTET <matthieu.castet@parrot.com>
Pushed to l2-mtd.git, thanks!
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c index 5257345..4eb99c6 100644 --- a/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c @@ -168,6 +168,7 @@ static inline int set_4byte(struct m25p *flash, u32 jedec_id, int enable) { switch (JEDEC_MFR(jedec_id)) { case CFI_MFR_MACRONIX: + case 0xEF /* winbond */: flash->command[0] = enable ? OPCODE_EN4B : OPCODE_EX4B; return spi_write(flash->spi, flash->command, 1); default: @@ -739,6 +740,7 @@ static const struct spi_device_id m25p_ids[] = { { "w25x64", INFO(0xef3017, 0, 64 * 1024, 128, SECT_4K) }, { "w25q64", INFO(0xef4017, 0, 64 * 1024, 128, SECT_4K) }, { "w25q80", INFO(0xef5014, 0, 64 * 1024, 16, SECT_4K) }, + { "w25q256", INFO(0xef4019, 0, 64 * 1024, 512, SECT_4K) }, /* Catalyst / On Semiconductor -- non-JEDEC */ { "cat25c11", CAT25_INFO( 16, 8, 16, 1) },
Signed-off-by: Matthieu CASTET <matthieu.castet@parrot.com> --- drivers/mtd/devices/m25p80.c | 2 ++ 1 file changed, 2 insertions(+)