summaryrefslogtreecommitdiff
path: root/drivers/mtd/spi-nor
AgeCommit message (Collapse)Author
15 hoursMerge branch 'spi-nor/next' of ↵Mark Brown
ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git
15 hoursMerge branch 'mtd/next' of ↵Mark Brown
ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git
17 hoursmtd: spi-nor: winbond: Add support for W25Q25PW-MMiquel Raynal
There is an ID collision with chips of same density from the JW family (which it self conflicted with yet another family). Chips are very similar in practice, it is mostly a matter of electrical differences (mostly power consumption being lower) as well as the addition of inline ECC capability. 16 bytes chunks are protected against single errors. In case a non-aligned write happens, ECC is locally disabled until the next erase. Another significant difference is that PW chips identify themselves as supporting the new SFDP (rev F) QER field which forces an alternate write SR2 opcode (0x31). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: Add support for W25Q12PW-MMiquel Raynal
There is an ID collision with chips of same density from the JW family (which it self conflicted with yet another family). Chips are very similar in practice, it is mostly a matter of electrical differences (mostly power consumption being lower) as well as the addition of inline ECC capability. 16 bytes chunks are protected against single errors. In case a non-aligned write happens, ECC is locally disabled until the next erase. Another significant difference is that PW chips identify themselves as supporting the new SFDP (rev F) QER field which forces an alternate write SR2 opcode (0x31). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: Add support for W25Q64PW-MMiquel Raynal
There is an ID collision with chips of same density from the JW family (which it self conflicted with yet another family). Chips are very similar in practice, it is mostly a matter of electrical differences (mostly power consumption being lower) as well as the addition of inline ECC capability. 16 bytes chunks are protected against single errors. In case a non-aligned write happens, ECC is locally disabled until the next erase. Another significant difference is that PW chips identify themselves as supporting the new SFDP (rev F) QER field which forces an alternate write SR2 opcode (0x31). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: Add support for W25Q33PW-MMiquel Raynal
There is an ID collision with chips of same density from the JW family (which it self conflicted with yet another family). Chips are very similar in practice, it is mostly a matter of electrical differences (mostly power consumption being lower) as well as the addition of inline ECC capability. Unlike the other (bigger) densities from the PW family, this part has no ECC support. Another significant difference is that PW chips identify themselves as supporting the new SFDP (rev F) QER field which forces an alternate write SR2 opcode (0x31). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: Prepare introduction of W25QxxPW-M partsMiquel Raynal
There is an ID collision between chips of same density from the JW family (which it self conflicted with yet another family) with new PW parts. Chips are very similar in practice, it is mostly a matter of electrical differences (mostly power consumption being lower) as well as the addition of inline ECC capability for the higher devices (> 32Mb). Chips with ECC capability protect 16 bytes chunks are against single errors. In case a non-aligned write happens, ECC is locally disabled until the next erase. Another significant difference is that PW chips identify themselves as supporting the new SFDP (rev F) QER field which forces an alternate write SR2 opcode (0x31). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: Add support for W25Q25PW-Q/NMiquel Raynal
There is an ID collision with chips of same density from the JW family (which it self conflicted with yet another family). Chips are very similar in practice, it is mostly a matter of electrical differences (mostly power consumption being lower) as well as the addition of inline ECC capability. 16 bytes chunks are protected against single errors. In case a non-aligned write happens, ECC is locally disabled until the next erase. Another significant difference is that PW chips identify themselves as supporting the new SFDP (rev F) QER field which forces an alternate write SR2 opcode (0x31). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: Add support for W25Q12PW-Q/NMiquel Raynal
There is an ID collision with chips of same density from the JW family (which it self conflicted with yet another family). Chips are very similar in practice, it is mostly a matter of electrical differences (mostly power consumption being lower) as well as the addition of inline ECC capability. 16 bytes chunks are protected against single errors. In case a non-aligned write happens, ECC is locally disabled until the next erase. Another significant difference is that PW chips identify themselves as supporting the new SFDP (rev F) QER field which forces an alternate write SR2 opcode (0x31). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: Add support for W25Q64PW-Q/NMiquel Raynal
There is an ID collision with chips of same density from the JW family (which it self conflicted with yet another family). Chips are very similar in practice, it is mostly a matter of electrical differences (mostly power consumption being lower) as well as the addition of inline ECC capability. 16 bytes chunks are protected against single errors. In case a non-aligned write happens, ECC is locally disabled until the next erase. Another significant difference is that PW chips identify themselves as supporting the new SFDP (rev F) QER field which forces an alternate write SR2 opcode (0x31). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: Add support for W25Q33PW-Q/NMiquel Raynal
There is an ID collision with chips of same density from the JW family (which it self conflicted with yet another family). Chips are very similar in practice, it is mostly a matter of electrical differences (mostly power consumption being lower) as well as the addition of inline ECC capability. Unlike the other (bigger) densities from the PW family, this part has no ECC support. Another significant difference is that PW chips identify themselves as supporting the new SFDP (rev F) QER field which forces an alternate write SR2 opcode (0x31). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: Prepare introduction of W25QxxPW-Q/N partsMiquel Raynal
There is an ID collision between chips of same density from the JW family (which it self conflicted with yet another family) with new PW parts. Chips are very similar in practice, it is mostly a matter of electrical differences (mostly power consumption being lower) as well as the addition of inline ECC capability for the higher devices (> 32Mb). Chips with ECC capability protect 16 bytes chunks are against single errors. In case a non-aligned write happens, ECC is locally disabled until the next erase. Another significant difference is that PW chips identify themselves as supporting the new SFDP (rev F) QER field which forces an alternate write SR2 opcode (0x31). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q128JW-M: Add quad page program capabilityMiquel Raynal
The benefit is not massive @25MHz, yet it is a supported feature of the chip which is already handled by a flag, so let's enable it and earn a few % write throughput. Before: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 379 KiB/s page write speed is 376 KiB/s 2 page write speed is 378 KiB/s After: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 387 KiB/s page write speed is 385 KiB/s 2 page write speed is 386 KiB/s Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q64JW-M: Add quad page program capabilityMiquel Raynal
The benefit is not massive @25MHz, yet it is a supported feature of the chip which is already handled by a flag, so let's enable it and earn a few % of write throughput. Before: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 707 KiB/s page write speed is 699 KiB/s 2 page write speed is 703 KiB/s After: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 739 KiB/s page write speed is 730 KiB/s 2 page write speed is 733 KiB/s Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q32JW-M: Add quad page program capabilityMiquel Raynal
The benefit is not massive @25MHz, yet it is a supported feature of the chip which is already handled by a flag, so let's enable it and earn a few % of write throughput. Before: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 416 KiB/s page write speed is 413 KiB/s 2 page write speed is 415 KiB/s After: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 424 KiB/s page write speed is 421 KiB/s 2 page write speed is 423 KiB/s Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q128JW-Q/N: Add quad page program capabilityMiquel Raynal
The benefit is not massive @25MHz, yet it is a supported feature of the chip which is already handled by a flag, so let's enable it and earn a few % write throughput. Before: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 378 KiB/s page write speed is 375 KiB/s 2 page write speed is 375 KiB/s After: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 386 KiB/s page write speed is 382 KiB/s 2 page write speed is 384 KiB/s Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q64JW-Q/N: Add quad page program capabilityMiquel Raynal
The benefit is not massive @25MHz, yet it is a supported feature of the chip which is already handled by a flag, so let's enable it and earn a few % write throughput. Before: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 707 KiB/s page write speed is 699 KiB/s 2 page write speed is 703 KiB/s After: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 735 KiB/s page write speed is 726 KiB/s 2 page write speed is 730 KiB/s Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q32JW-Q/N: Add quad page program capabilityMiquel Raynal
The benefit is not massive @25MHz, yet it is a supported feature of the chip which is already handled by a flag, so let's enable it and earn a few % write throughput. Before: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 393 KiB/s page write speed is 391 KiB/s 2 page write speed is 391 KiB/s After: $ flash_speed /dev/mtd0 -dc10 eraseblock write speed is 402 KiB/s page write speed is 400 KiB/s 2 page write speed is 400 KiB/s Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q256JW-Q/N/M: Fill locking informationMiquel Raynal
I do not have any W25Q256JW-Q/N/M in hand, but since all the other chips from this family have the same locking pattern, we can reasonably expect that these chips follow the exact same rules. Add the missing CMP flags. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q128JW-M: Fill locking informationMiquel Raynal
The SFDP table does not advertize the locking capabilities of the device, flag the missing capabilities. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q64JW-M: Fill locking informationMiquel Raynal
The SFDP table does not advertize the locking capabilities of the device, flag the missing capabilities. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q32JW-M: Fill locking informationMiquel Raynal
The SFDP table does not advertize the locking capabilities of the device, flag the missing capabilities. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q128JW-Q/N: Fill locking informationMiquel Raynal
The SFDP table does not advertize the locking capabilities of the device, flag the missing capabilities. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q64xW-Q/N: Fill locking informationMiquel Raynal
The SFDP table does not advertize the locking capabilities of the device, flag the missing capabilities. This feature is identical across the various datasheets exposing the same ID, however I could only test it on the JW-Q variant. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q32xW-Q/N: Fill locking informationMiquel Raynal
The SFDP table does not advertize the locking capabilities of the device, flag the missing capabilities. This feature is identical across the various datasheets exposing the same ID, however I could only test it on the JW-Q variant. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q64xW-Q/N: Enhance identification of the chipsMiquel Raynal
The EF 60 17 ID has been reused for: - DW-P/G (no SFDP support, but CMP and quad capable) - FW-G/Q (SFDP, CMP and quad capable) - JW-Q/N (SFDP, CMP and quad capable) Add a comment to flag these chips. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
17 hoursmtd: spi-nor: winbond: W25Q32xW-Q/N: Enhance identification of the chipsMiquel Raynal
The EF 60 16 ID has been reused for: - DW-P/G (no SFDP support, but CMP and quad capable) - FW-G/Q (SFDP, CMP and quad capable) - JW-Q/N (SFDP, CMP and quad capable) Add a comment to flag these chips. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
4 daysmtd: spi-nor: sfdp: Increase SFDP data size limit to 16 KiBTakahiro Kuwano
The size of SFDP data read and cached is limited to avoid allocating too much memory. The current limit is PAGE_SIZE, but the Spansion S25FS256S has parameter tables at offsets beyond 4 KiB. Increase the limit to 16 KiB to support such devices by introducing the SFDP_MAX_SIZE macro. Suggested-by: Miquel Raynal <miquel.raynal@bootlin.com> Suggested-by: Michael Walle <mwalle@kernel.org> Signed-off-by: Takahiro Kuwano <takahiro.kuwano@infineon.com> Acked-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
7 daysmtd: spi-nor: spansion: Assign .fixups to s25fs256s1Takahiro Kuwano
s25fs256s1 has incorrect SFDP entries, like s25fs512s and s25fs128s1. Assign the common s25fs_s_nor_fixups to s25fs256s1 to fix its page size and sector map. Signed-off-by: Takahiro Kuwano <takahiro.kuwano@infineon.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
7 daysmtd: spi-nor: spansion: Remove s25fs256s0Takahiro Kuwano
The Spansion ID table lists s25fs256s0 and s25fs256s1 as variants distinguished by id[4] (0x00 for 256 KB sectors and 0x01 for 64 KB sectors), following an incorrect statement in the datasheet. The sector size of s25fs256s is configurable between 256 KB and 64 KB. The factory default is 64 KB, and id[4] is always 0x01 regardless of the configured sector size. Remove the invalid s25fs256s0 entry from the ID table. Fixes: 075fd6dff24a ("mtd: spi-nor: spansion: Differentiate between s25fl256s and s25fs256s") Signed-off-by: Takahiro Kuwano <takahiro.kuwano@infineon.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
7 daysmtd: spi-nor: Fix quad-enable for flashes with QER bit in SR1Miquel Raynal
Some flashes (eg. from Macronix) do set BFPT_DWORD15_QER_SR1_BIT6, which means they do not have an SR2 to read from/write to. The new generic QE helper was supposed to accommodate this situation but in the last version that got merged, parts of that specific handling has been moved to a more contained location, swp.c (which needed most of the extra code), yet the Macronix case has been forgotten about in that generic QE handling helper. Booting with such flashes will always fail probing. Fix the situation by making sure SR2 reads just return 0 if unsupported. This is safe since there is no chip with a write SR2 path but no read SR2 path (which is now enforced in the SFDP parsing step). This way, callers still do not have to care about the internal device capabilities. Calling sr1_and_sr2 read/write helpers is safe in both directions (not risk to get a spurious error). The behavior for SR1-only chips is respected, the complexity in the core kept to its minimum. Reported-by: Jon Hunter <jonathanh@nvidia.com> Closes: https://lore.kernel.org/linux-mtd/178876719232.3543902.14451625037676421254.b4-ty@b4/T/#m5bc4ba6776436f2870ced0eb5789d229037ad840 Fixes: 63489002d397 ("mtd: spi-nor: Refactor Read Status/Write Status support") Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
7 daysmtd: spi-nor: core: Fix mutex leak in spi_nor_rww_start_exclusive()Runyu Xiao
Use the same guard(mutex) pattern as the other RWW helpers so nor->lock is released on both the busy and successful return paths. Fixes: 03e7bb864d9a ("mtd: spi-nor: use scope-based mutex cleanup helpers") Cc: stable@vger.kernel.org Signed-off-by: Runyu Xiao <runyu.xiao@seu.edu.cn> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org> [mw: rephrased commit message] Signed-off-by: Michael Walle <mwalle@kernel.org>
2026-09-07mtd: spi-nor: debugfs: Expose SR opcodes and QE maskMiquel Raynal
Expose Status Register opcodes based on the flash capabilities discovered while parsing the SFDP QER field. Value '0' indicates an absence of opcode (non supported), we do not print anything in that case. The QE bit is also displayed. Example on a W25Q02JV-M: $ grep opcodes -A10 /sys/kernel/debug/spi-nor/spi0.0/params opcodes read 0xec dummy cycles 6 erase 0xdc program 0x34 SR1 read 0x05 SR2 read 0x35 SR1+SR2 write 0x01 QE SR2 bit 1 8D extension none Tested-by: Takahiro Kuwano <takahiro.kuwano@infineon.com> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q02RV-MMiquel Raynal
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>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q01RV-MMiquel Raynal
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>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q51RV-MMiquel Raynal
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>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q25RV-MMiquel Raynal
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). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q12RV-MMiquel Raynal
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>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q64RV-MMiquel Raynal
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>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q32RV-MMiquel Raynal
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>
2026-09-07mtd: spi-nor: winbond: Prepare introduction of W25QxxRV-M partsMiquel Raynal
There is an ID collision between the JV and RV families. 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). Since they share the IDs but not the names, we must hide the names using a fixup. 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>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q02RV-Q/NMiquel Raynal
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>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q01RV-Q/NMiquel Raynal
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: Michael Walle <mwalle@kernel.org> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q51RV-Q/NMiquel Raynal
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>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q25RV-Q/NMiquel Raynal
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). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Michael Walle <mwalle@kernel.org>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q12RV-Q/NMiquel Raynal
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: 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>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q64RV-Q/NMiquel Raynal
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>
2026-09-07mtd: spi-nor: winbond: Add support for W25Q32RV-Q/NMiquel Raynal
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>
2026-09-07mtd: spi-nor: winbond: Prepare introduction of W25QxxRV-Q/N partsMiquel Raynal
There is an ID collision between the JV and RV families. 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). They also do not require the multi-die fixups which must remain assigned to the JV chips. Finally, since they share the IDs but not the names, we must hide the names using a fixup. 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>
2026-09-07mtd: spi-nor: Move the SFDP header structure to a C headerMiquel Raynal
The sfdp_header structure is currently defined in sfdp.c, whereas the sfdp_parameter_header structure is defined in sfdp.h. In order to ease the reuse of this structure outside of the sfdp.c file, move this structure to the sfdp C header (.h). 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>