[PATCH] mtd: m25p80: add support for the windbond w25q256 chip

Matthieu CASTET matthieu.castet at parrot.com
Thu Sep 27 04:15:49 EDT 2012


Brian Norris a écrit :
> On Tue, Sep 25, 2012 at 2:05 AM, Matthieu CASTET
> <matthieu.castet at 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) },



More information about the linux-mtd mailing list