[PATCH v2 00/23] mtd: spi-nor: Clean Winbond W25QxxJV family
Miquel Raynal <[email protected]> Fri, 31 Jul 2026 14:01:53 +0200
| Newsgroups | org.infradead.lists.linux-mtd,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260731-winbond-v7-1-spi-nor-jv-cleanup-v2-0-2549ef1b1af8@bootlin.com> |
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 <[email protected]> --- 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 <[email protected]> ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/