]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
mtd: spi-nor-tiny: fix 4-Byte address instructions for Cypress and ISSI
authorShiji Yang <yangshiji66@outlook.com>
Wed, 26 Nov 2025 01:37:41 +0000 (09:37 +0800)
committerTom Rini <trini@konsulko.com>
Fri, 13 Feb 2026 16:54:58 +0000 (10:54 -0600)
In theory, for the same vendor, we should use the same instructions as
the spi-nor-core implementation.

Fixes: 72151ad10f8d ("mtd: spi-nor-core: Add Cypress manufacturer ID in set_4byte")
Fixes: 5bf3f3dd11db ("mtd: spi-nor: Enable QE bit for ISSI flash")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
drivers/mtd/spi/spi-nor-tiny.c

index 23de64a1520e15bfccf4f960715c5a72febed866..cf00473ee839a5b14ac398c860d9e5606de3175c 100644 (file)
@@ -220,6 +220,7 @@ static inline int set_4byte(struct spi_nor *nor, const struct flash_info *info,
                /* Some Micron need WREN command; all will accept it */
                need_wren = true;
                fallthrough;
+       case SNOR_MFR_ISSI:
        case SNOR_MFR_MACRONIX:
        case SNOR_MFR_WINBOND:
                if (need_wren)
@@ -246,6 +247,9 @@ static inline int set_4byte(struct spi_nor *nor, const struct flash_info *info,
                }
 
                return status;
+       case SNOR_MFR_CYPRESS:
+               cmd = enable ? SPINOR_OP_EN4B : SPINOR_OP_EX4B_CYPRESS;
+               return spi_nor_write_reg(nor, cmd, NULL, 0);
        default:
                /* Spansion style */
                nor->cmd_buf[0] = enable << 7;