diff options
| author | Miquel Raynal <miquel.raynal@bootlin.com> | 2026-09-04 20:12:53 +0200 |
|---|---|---|
| committer | Michael Walle <mwalle@kernel.org> | 2026-09-07 09:45:21 +0200 |
| commit | 8d3298fd1d75011c2fa30e813cd280856ea86a2e (patch) | |
| tree | a17b8206f9602034b46ce0a7b54d970f46440d36 | |
| parent | 4da2d59f3a6cc217399b7c106c36c2f3655106a7 (diff) | |
| download | linux-next-8d3298fd1d75011c2fa30e813cd280856ea86a2e.tar.gz linux-next-8d3298fd1d75011c2fa30e813cd280856ea86a2e.zip | |
mtd: spi-nor: winbond: Add support for W25Q02RV-Q/N
There is an ID collision with the chip of same density from the JV
family. Both chips are very similar in practice, it is mostly a matter
of electrical differences (mostly power consumption being lower).
As a significant difference, RV chips identify themselves as supporting
the new SFDP (rev F) field which forces an alternate write SR2
opcode (0x31).
Reviewed-by: Takahiro Kuwano <takahiro.kuwano@infineon.com>
Reviewed-by: Michael Walle <mwalle@kernel.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Michael Walle <mwalle@kernel.org>
| -rw-r--r-- | drivers/mtd/spi-nor/winbond.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/mtd/spi-nor/winbond.c b/drivers/mtd/spi-nor/winbond.c index 4a6d4292fdb2..cd20622916b7 100644 --- a/drivers/mtd/spi-nor/winbond.c +++ b/drivers/mtd/spi-nor/winbond.c @@ -296,6 +296,11 @@ static const struct flash_info winbond_nor_parts[] = { .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | SPI_NOR_TB_SR_BIT6 | SPI_NOR_4BIT_BP | SPI_NOR_HAS_CMP, }, { + /* W25Q02RV-Q/N */ + .id = SNOR_ID(0xef, 0x40, 0x22), + .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | SPI_NOR_TB_SR_BIT6 | + SPI_NOR_4BIT_BP | SPI_NOR_HAS_CMP, + }, { .id = SNOR_ID(0xef, 0x50, 0x12), .name = "w25q20bw", .size = SZ_256K, @@ -611,6 +616,8 @@ static const struct spi_nor_fixup winbond_fixups[] = { .fixups = &winbond_nor_partname_fixups }, { .id = SNOR_ID(0xef, 0x40, 0x21), .match = winbond_jv_match, .fixups = &winbond_nor_multi_die_fixups }, + { .id = SNOR_ID(0xef, 0x40, 0x22), .match = winbond_jv_match, + .fixups = &winbond_nor_multi_die_fixups }, { .id = SNOR_ID(0xef, 0x70, 0x21), .match = winbond_jv_match, .fixups = &winbond_nor_multi_die_fixups }, { .id = SNOR_ID(0xef, 0x70, 0x22), .match = winbond_jv_match, |
