This patch series makes u-boot spinand driver almost the same as spinand driver from linux-6.16-rc6. This provides the following improvements:
* it becomes easy to port changes from linux kernel * more flash is supported * spi drivers can accelerate flash reading/writing using spi-mem dirmap API * continuous reading mode was supported * OTP support was added * add support of special data recovery reading (for some flashes) * bugfixes * other minor improvements The following linux kernel driver features was not implemented * support of different ECC engines * per operation spi bus frequency The patchset also includes fixes for continuous reading mode. The similar patches were sent to upstream linux kernel. Changes v2: * update patch description * add fixes for continuous reading mode Changes v3: * fix duplication in patch description * add more information about commits ported from linux kernel Mikhail Kshevetskiy (22): spi-mem: sync a bit with linux-6.16-rc6 mtd: spinand: Use the spi-mem dirmap API mtd: spinand: Add a NAND page I/O request type mtd: spinand: add missing MODULE_DEVICE_TABLE() mtd: spinand: simulate behavior of linux's function spinand_wait() mtd: spinand: more use of spinand_to_{something} helpers mtd: spinand: replace enable_ecc variable with disable_ecc and update corresponding logic mtd: spinand: minor refactoring mtd: spinand: more refactoring mtd: spinand: sync code with linux-6.10 mtd: spinand: set bitflip_threshold to 75% of ECC strength mtd: spinand: Add support for setting plane select bits mtd: spinand: Remove write_enable_op() in markbad() mtd: spinand: Introduce a way to avoid raw access mtd: spinand: add support of continuous reading mode mtd: spinand: Add read retry support mtd: spinand: add OTP support mtd: spinand: Enhance the logic when picking a variant mtd: spinand: sync with linux-6.16-rc6 mtd: spinand: fix direct mapping creation sizes. mtd: spinand: try a regular dirmap if creating a dirmap for continuous reading fails mtd: spinand: repeat reading in regular mode if continuous reading fails drivers/mtd/nand/spi/Makefile | 5 +- drivers/mtd/nand/spi/alliancememory.c | 155 +++++ drivers/mtd/nand/spi/ato.c | 84 +++ drivers/mtd/nand/spi/core.c | 937 +++++++++++++++++++------- drivers/mtd/nand/spi/esmt.c | 123 +++- drivers/mtd/nand/spi/foresee.c | 107 +++ drivers/mtd/nand/spi/gigadevice.c | 66 +- drivers/mtd/nand/spi/macronix.c | 289 ++++++-- drivers/mtd/nand/spi/micron.c | 180 ++++- drivers/mtd/nand/spi/otp.c | 369 ++++++++++ drivers/mtd/nand/spi/paragon.c | 20 +- drivers/mtd/nand/spi/skyhigh.c | 149 ++++ drivers/mtd/nand/spi/toshiba.c | 63 +- drivers/mtd/nand/spi/winbond.c | 228 ++++++- drivers/mtd/nand/spi/xtx.c | 20 +- drivers/spi/spi-mem.c | 45 +- include/linux/mtd/nand.h | 157 ++++- include/linux/mtd/spinand.h | 342 +++++++++- include/spi-mem.h | 93 ++- 19 files changed, 2936 insertions(+), 496 deletions(-) create mode 100644 drivers/mtd/nand/spi/alliancememory.c create mode 100644 drivers/mtd/nand/spi/ato.c create mode 100644 drivers/mtd/nand/spi/foresee.c create mode 100644 drivers/mtd/nand/spi/otp.c create mode 100644 drivers/mtd/nand/spi/skyhigh.c -- 2.47.2