[PATCH v2 00/23] mtd: spi-nor: Clean Winbond W25QxxJV family
Miquel Raynal
miquel.raynal at bootlin.com
Fri Jul 31 05:01:53 PDT 2026
Thanks to Winbond collaboration, I was able to test almost the entire JV
SPI NOR family. A few chips could not be sourced, I decided to apply the
very same logic than the other chips, all of them behave identically as
shown in all the logs that I am sharing in each and every commit.
This series is pretty straightforward, it is here to cleanup the JV
entries by:
- Aligning the comments and "fixing" the chip names in them
- Reordering the chips by density and family
- Testing and showing all the SFDP content and passing all the SPI NOR
tests to ensure a good level of support.
- Adding all the locking information when it is missing.
This work is necessary because I am about to propose the addition of the
W25QxxRV family, whose IDs actually collide with the JV chips. The chips
are similar, they have been "improved" (especially the silicon/engraving
smoothness) and we have a way to differentiate them based on their SFDP
content, but that will be for a following series.
Two Winbond-wide fixups are applied, non SFDP compatible chips do not
have CMP nor QUAD_PP support, so let's make sure the additions we do in
the table do not affect the old flags. Keeping the legacy flash handling
in a separate function means that it will be easier to handle the day we
want to drop support for them. So I picked that solution instead of
enabling conditionally the fields at runtime (which makes the ID table
real content harder to consolidate).
NB: There is one collision with a Spansion chip as well (S25FL064K). On
my side I commented out the Spansion entry to make sure the core was
taking the Winbond entry (by alphabetical order) but it is due to an old
joint agreement and is a legitimate ID duplication. We haven't found a
good way to differentiate them so far, so I am keeping this aside for
the moment and just assume we will have a solution later. In all cases,
the colliding Winbond ID exist and is already fulfilled, so let's make
sure the definition is accurate.
Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
---
Changes in v2:
- Dropped the patches removing the no_sfdp_flags (they do not hurt)
since this would drop support for !SFDP chips (~until 2016).
- Stopped removing the .names. They are part of the ABI. I will
try to drop them at runtime when adding the RV chips. At this stage,
all the existing entries remain.
- Reordered the patches a bit.
- Added a catch all entry in the ID table as advised.
- Added two fixups for non SFDP chips, one removing the CMP bit and the
other removing the QUAD_PP flag.
- Link to v1: https://lore.kernel.org/r/20260529-winbond-v7-1-spi-nor-jv-cleanup-v1-0-87e5d3122244@bootlin.com
---
Miquel Raynal (23):
mtd: spi-nor: winbond: Move W25Q01NW to its right place
mtd: spi-nor: winbond: Normalize names
mtd: spi-nor: winbond: Properly document the chip names
mtd: spi-nor: winbond: Make the RDCR fixup Winbond wide
mtd: spi-nor: winbond: W25Q32JV-Q/N: Add quad page program capability
mtd: spi-nor: winbond: W25Q64JV-Q/N: Add quad page program capability
mtd: spi-nor: winbond: W25Q128JV-Q/N: Add quad page program capability
mtd: spi-nor: winbond: W25Q32JV-M: Add quad page program capability
mtd: spi-nor: winbond: W25Q64JV-M: Add quad page program capability
mtd: spi-nor: winbond: W25Q128JV-M: Add quad page program capability
mtd: spi-nor: winbond: W25QxxJV-Q/N/M: Add quad page program capability
mtd: spi-nor: winbond: W25Q32JV-Q/N: Fill locking information
mtd: spi-nor: winbond: W25Q64JV-Q/N: Fill locking information
mtd: spi-nor: winbond: W25Q128JV-Q/N: Fill locking information
mtd: spi-nor: winbond: W25Q512JV-Q/N: Fill locking information
mtd: spi-nor: winbond: W25Q01JV-Q/N: Fill locking information
mtd: spi-nor: winbond: W25Q32JV-M: Fill locking information
mtd: spi-nor: winbond: W25Q64JV-M: Fill locking information
mtd: spi-nor: winbond: W25Q128JV-M: Fill locking information
mtd: spi-nor: winbond: W25Q02JV-M: Fill locking information
mtd: spi-nor: winbond: W25QxxJV-Q/N/M: Fill locking information
mtd: spi-nor: winbond: W25Q512JV-M: New chip
mtd: spi-nor: winbond: W25Q01JV-M: New chip
drivers/mtd/spi-nor/winbond.c | 138 +++++++++++++++++++++++++++++-------------
1 file changed, 97 insertions(+), 41 deletions(-)
---
base-commit: 61e14aacac415b8c7ccbc8a5434b1e316af21aea
change-id: 20260529-winbond-v7-1-spi-nor-jv-cleanup-817889edd1f7
Best regards,
--
Miquel Raynal <miquel.raynal at bootlin.com>
More information about the linux-mtd
mailing list