]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mtd: spi-nor: winbond: Fix locking support for w25q256jw
authorEliav Farber <farbere@amazon.com>
Wed, 18 Feb 2026 14:35:22 +0000 (14:35 +0000)
committerPratyush Yadav (Google) <pratyush@kernel.org>
Mon, 30 Mar 2026 15:00:34 +0000 (15:00 +0000)
The Winbond w25q256jw device:
 - Supports lock/unlock via SR.
 - Has Top/Bottom (TB) protect bit.
 - Uses Status Register bit 6 as the Top/Bottom (TB) protect bit.
 - Supports four Block Protect (BP) bits.

Update the flash parameters by enabling SPI_NOR_HAS_LOCK, SPI_NOR_HAS_TB,
SPI_NOR_TB_SR_BIT6 and SPI_NOR_4BIT_BP. Without these flags, the locking
configuration is incorrect.

Reference:
https://www.winbond.com/hq/support/documentation/levelOne.jsp?__locale=en&DocNo=DA00-W25Q256JW.1

Signed-off-by: Eliav Farber <farbere@amazon.com>
Reviewed-by: Michael Walle <mwalle@kernel.org>
Signed-off-by: Pratyush Yadav (Google) <pratyush@kernel.org>
drivers/mtd/spi-nor/winbond.c

index 5a3e3ee96edb4dac2f3a8c7428976b6d5e2ee2fd..eaa547d36aadfc27408ad93fa584d468ac41344c 100644 (file)
@@ -274,6 +274,7 @@ static const struct flash_info winbond_nor_parts[] = {
                .id = SNOR_ID(0xef, 0x60, 0x19),
                .name = "w25q256jw",
                .size = SZ_32M,
+               .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | SPI_NOR_TB_SR_BIT6 | SPI_NOR_4BIT_BP,
                .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
        }, {
                .id = SNOR_ID(0xef, 0x60, 0x20),