public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH 00/28] mtd: spinand: Octal DTR support
@ 2025-10-31 17:26 Miquel Raynal
  2025-10-31 17:26 ` [PATCH 01/28] spi: spi-mem: Make the DTR command operation macro more suitable Miquel Raynal
                   ` (27 more replies)
  0 siblings, 28 replies; 51+ messages in thread
From: Miquel Raynal @ 2025-10-31 17:26 UTC (permalink / raw)
  To: Mark Brown, Richard Weinberger, Vignesh Raghavendra
  Cc: Tudor Ambarus, Pratyush Yadav, Thomas Petazzoni, Steam Lin,
	Santhosh Kumar K, linux-spi, linux-kernel, linux-mtd,
	Miquel Raynal

Hello,

This series adds support for 8D-8D-8D in SPI NAND, which can already be
leveraged without any SPI changes as controllers already have this
support for some SPI NOR devices.

The series is a bit long because many preparation patches were needed
in order to have a clean 8D-8D-8D introduction (one of the last
patches), but I believe the split is worth it.

Among the few spi-mem patches, they are needed for building the SPI NAND
changes (especially the ODTR introduction at the end) and therefore an
immutable tag will be needed for merging in the MTD tree (unless all the
series goes through MTD directly ofc).

There is a benchmark in the last Winbond patch, we get +55% read speed
and +26% write speed with this series, at 25MHz!

    1S-8S-8S:
    
       # flash_speed /dev/mtd0 -c1 -d
       eraseblock write speed is 7529 KiB/s
       eraseblock read speed is 15058 KiB/s
    
    8D-8D-8D:
    
       # flash_speed /dev/mtd0 -c1 -d
       eraseblock write speed is 9481 KiB/s
       eraseblock read speed is 23272 KiB/s

I am excited to see this finally upstream! Next step will be to see TI's
PHY tuning series from Santhosh in conjunction with this one to operate at
maximum speed.

Thanks!
Miquèl

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
Miquel Raynal (28):
      spi: spi-mem: Make the DTR command operation macro more suitable
      spi: spi-mem: Create a repeated address operation
      spi: spi-mem: Limit octal DTR constraints to octal DTR situations
      mtd: spinand: Fix kernel doc
      mtd: spinand: Add missing check
      mtd: spinand: Remove stale definitions
      mtd: spinand: Use standard return values
      mtd: spinand: Decouple write enable and write disable operations
      mtd: spinand: Create an array of operation templates
      mtd: spinand: Make use of the operation templates through SPINAND_OP()
      mtd: spinand: Convert vendor drivers to SPINAND_OP()
      mtd: spinand: macronix: Convert vendor specific operation to SPINAND_OP()
      mtd: spinand: winbond: Convert W25N specific operation to SPINAND_OP()
      mtd: spinand: winbond: Convert W35N specific operation to SPINAND_OP()
      mtd: spinand: List vendor specific operations and make sure they are supported
      mtd: spinand: macronix: Register vendor specific operation
      mtd: spinand: winbond: Register W25N vendor specific operation
      mtd: spinand: winbond: Register W35N vendor specific operation
      mtd: spinand: winbond: Fix style
      mtd: spinand: winbond: Rename IO_MODE register macro
      mtd: spinand: winbond: Configure the IO mode after the dummy cycles
      mtd: spinand: Gather all the bus interface steps in one single function
      mtd: spinand: Add support for setting a bus interface
      mtd: spinand: Propagate the bus interface across core helpers
      mtd: spinand: Give the bus interface to the configuration helper
      mtd: spinand: Warn if using SSDR-only vendor commands in a non SSDR mode
      mtd: spinand: Add octal DTR support
      mtd: spinand: winbond: W35N octal DTR support

 drivers/mtd/nand/spi/core.c       | 297 +++++++++++++++++++++++++++++++-------
 drivers/mtd/nand/spi/esmt.c       |   4 +-
 drivers/mtd/nand/spi/gigadevice.c |   8 +-
 drivers/mtd/nand/spi/macronix.c   |  49 ++++++-
 drivers/mtd/nand/spi/micron.c     |   8 +-
 drivers/mtd/nand/spi/toshiba.c    |   3 +-
 drivers/mtd/nand/spi/winbond.c    | 129 ++++++++++++-----
 drivers/spi/spi-mem.c             |  15 +-
 include/linux/mtd/spinand.h       | 246 ++++++++++++++++++++++++++++---
 include/linux/spi/spi-mem.h       |  14 +-
 10 files changed, 646 insertions(+), 127 deletions(-)
---
base-commit: 604a0841a26de188280b47fb7e78dcdaa966a09e
change-id: 20251031-winbond-v6-17-rc1-oddr-385f04684ad9

Best regards,
-- 
Miquel Raynal <miquel.raynal@bootlin.com>


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 51+ messages in thread

end of thread, other threads:[~2025-11-20  8:49 UTC | newest]

Thread overview: 51+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-31 17:26 [PATCH 00/28] mtd: spinand: Octal DTR support Miquel Raynal
2025-10-31 17:26 ` [PATCH 01/28] spi: spi-mem: Make the DTR command operation macro more suitable Miquel Raynal
2025-11-05 15:35   ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 02/28] spi: spi-mem: Create a repeated address operation Miquel Raynal
2025-11-05 15:43   ` Tudor Ambarus
2025-11-19 17:10     ` Miquel Raynal
2025-11-20  8:49       ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 03/28] spi: spi-mem: Limit octal DTR constraints to octal DTR situations Miquel Raynal
2025-11-05 15:53   ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 04/28] mtd: spinand: Fix kernel doc Miquel Raynal
2025-11-05 15:57   ` Tudor Ambarus
2025-11-19 17:18     ` Miquel Raynal
2025-11-20  8:05       ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 05/28] mtd: spinand: Add missing check Miquel Raynal
2025-11-05 16:04   ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 06/28] mtd: spinand: Remove stale definitions Miquel Raynal
2025-11-05 16:05   ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 07/28] mtd: spinand: Use standard return values Miquel Raynal
2025-11-05 16:06   ` Tudor Ambarus
2025-11-19 17:20     ` Miquel Raynal
2025-10-31 17:26 ` [PATCH 08/28] mtd: spinand: Decouple write enable and write disable operations Miquel Raynal
2025-11-05 16:08   ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 09/28] mtd: spinand: Create an array of operation templates Miquel Raynal
2025-11-05 16:17   ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 10/28] mtd: spinand: Make use of the operation templates through SPINAND_OP() Miquel Raynal
2025-11-05 16:28   ` Tudor Ambarus
2025-11-19 17:23     ` Miquel Raynal
2025-11-20  8:35       ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 11/28] mtd: spinand: Convert vendor drivers to SPINAND_OP() Miquel Raynal
2025-11-05 16:30   ` Tudor Ambarus
2025-11-19 17:24     ` Miquel Raynal
2025-10-31 17:26 ` [PATCH 12/28] mtd: spinand: macronix: Convert vendor specific operation " Miquel Raynal
2025-11-05 16:40   ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 13/28] mtd: spinand: winbond: Convert W25N " Miquel Raynal
2025-11-05 16:40   ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 14/28] mtd: spinand: winbond: Convert W35N " Miquel Raynal
2025-11-05 16:41   ` Tudor Ambarus
2025-10-31 17:26 ` [PATCH 15/28] mtd: spinand: List vendor specific operations and make sure they are supported Miquel Raynal
2025-10-31 17:27 ` [PATCH 16/28] mtd: spinand: macronix: Register vendor specific operation Miquel Raynal
2025-10-31 17:27 ` [PATCH 17/28] mtd: spinand: winbond: Register W25N " Miquel Raynal
2025-10-31 17:27 ` [PATCH 18/28] mtd: spinand: winbond: Register W35N " Miquel Raynal
2025-10-31 17:27 ` [PATCH 19/28] mtd: spinand: winbond: Fix style Miquel Raynal
2025-10-31 17:27 ` [PATCH 20/28] mtd: spinand: winbond: Rename IO_MODE register macro Miquel Raynal
2025-10-31 17:27 ` [PATCH 21/28] mtd: spinand: winbond: Configure the IO mode after the dummy cycles Miquel Raynal
2025-10-31 17:27 ` [PATCH 22/28] mtd: spinand: Gather all the bus interface steps in one single function Miquel Raynal
2025-10-31 17:27 ` [PATCH 23/28] mtd: spinand: Add support for setting a bus interface Miquel Raynal
2025-10-31 17:27 ` [PATCH 24/28] mtd: spinand: Propagate the bus interface across core helpers Miquel Raynal
2025-10-31 17:27 ` [PATCH 25/28] mtd: spinand: Give the bus interface to the configuration helper Miquel Raynal
2025-10-31 17:27 ` [PATCH 26/28] mtd: spinand: Warn if using SSDR-only vendor commands in a non SSDR mode Miquel Raynal
2025-10-31 17:27 ` [PATCH 27/28] mtd: spinand: Add octal DTR support Miquel Raynal
2025-10-31 17:27 ` [PATCH 28/28] mtd: spinand: winbond: W35N " Miquel Raynal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox