diff options
| author | Miquel Raynal <miquel.raynal@bootlin.com> | 2026-09-04 20:12:57 +0200 |
|---|---|---|
| committer | Michael Walle <mwalle@kernel.org> | 2026-09-07 09:45:22 +0200 |
| commit | 11484eb5458fd54b59f35c511819af9e4de27cd1 (patch) | |
| tree | 495b6cd6eb9e185dc01e4b5adf277870766d1c47 | |
| parent | 94460d091584f9032539a5c949e6e71fa812ad15 (diff) | |
| download | linux-next-11484eb5458fd54b59f35c511819af9e4de27cd1.tar.gz linux-next-11484eb5458fd54b59f35c511819af9e4de27cd1.zip | |
mtd: spi-nor: winbond: Add support for W25Q12RV-M
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).
This density wrongly advertizes its size and requires a fixup for
that.
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 | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mtd/spi-nor/winbond.c b/drivers/mtd/spi-nor/winbond.c index cff6d3f07ed9..2f2c79710241 100644 --- a/drivers/mtd/spi-nor/winbond.c +++ b/drivers/mtd/spi-nor/winbond.c @@ -380,7 +380,7 @@ static const struct flash_info winbond_nor_parts[] = { .no_sfdp_flags = SECT_4K, .flags = SPI_NOR_QUAD_PP | SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | SPI_NOR_HAS_CMP, }, { - /* W25Q128JV-M */ + /* W25Q128JV-M, W25Q12RV-M */ .id = SNOR_ID(0xef, 0x70, 0x18), .name = "w25q128jv", .size = SZ_16M, @@ -620,6 +620,7 @@ static const struct spi_nor_fixup winbond_fixups[] = { .fixups = &winbond_nor_multi_die_fixups }, { .id = SNOR_ID(0xef, 0x70), .match = winbond_rv_match, .fixups = &winbond_nor_partname_fixups }, + { .id = SNOR_ID(0xef, 0x70, 0x18), .fixups = &w25q128_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, |
