Hi, This series proposes patches for adding the following functionality in SPI NAND core: - Octal DTR SPI (8D-8D-8D) mode support - Winbond W35N01JW SPI NAND chip support - Power-on-Reset instruction support This series has been tested on TI J721e EVM with the Winbond W35N01JW flash with following test utilities: - nandtest Test log: https://textbin.net/raw/fhypoz63f9 - mtd_stresstest Test log: https://textbin.net/raw/0xqjmqntj7 - UBIFS LTP stress test (NAND_XL_STRESS_DD_RW_UBIFS). Test log: https://textbin.net/raw/pyokws7wku Datasheet: https://www.winbond.com/export/sites/winbond/datasheet/W35N01JW_Datasheet_Brief.pdf --- Changes in v2: - Removed *_ALL_ARGS() macros from spi-mem.h, and redefined DTR macros. - Renamed spinand_setup_op() to spinand_patch_op(). Reduced one conditional check from this function. Had to keep tweaking in hot-path to avoid complicated implementation "hacks". - Changes in commit messages and added comments. - Dropped "Reject 8D-8D-8D op_templates if octal_dtr_enale() is missing in manufacturer_op" patch. - Reduced PoR reset delay. - Splitted "mtd: spinand: Add support for Winbond W35N01JW SPI NAND flash" into 3 independent patches. Apurva Nandan (14): spi: spi-mem: Add DTR templates for cmd, address, dummy and data phase mtd: spinand: Add enum spinand_proto to indicate current SPI IO mode mtd: spinand: Patch spi_mem_op for the SPI IO protocol using reg_proto mtd: spinand: Fix odd byte addr and data phase in read and write reg op for Octal DTR mode mtd: spinand: Add adjust_op() in manufacturer_ops to modify the ops for manufacturer specific changes mtd: spinand: Add macros for Octal DTR page read and write operations mtd: spinand: Allow enabling Octal DTR mode in the core mtd: spinand: winbond: Add support for write volatile configuration register op mtd: spinand: winbond: Add octal_dtr_enable() for manufacturer_ops mtd: spinand: Add support for Power-on-Reset (PoR) instruction mtd: spinand: Perform Power-on-Reset on the flash in mtd_suspend() mtd: spinand: Add adjust_op() in Winbond manufacturer_ops mtd: spinand: winbond: Rename cache op_variants struct variable mtd: spinand: winbond: Add support for Winbond W35N01JW SPI NAND flash drivers/mtd/nand/spi/core.c | 187 +++++++++++++++++++++++++++++- drivers/mtd/nand/spi/winbond.c | 200 +++++++++++++++++++++++++++++++-- include/linux/mtd/spinand.h | 67 +++++++++++ include/linux/spi/spi-mem.h | 41 +++++++ 4 files changed, 484 insertions(+), 11 deletions(-) -- 2.25.1