mbox series

[00/24] spi-nand/spi-mem DTR support

Message ID 20241025161501.485684-1-miquel.raynal@bootlin.com
Headers show
Series spi-nand/spi-mem DTR support | expand

Message

Miquel Raynal Oct. 25, 2024, 4:14 p.m. UTC
Hello Mark, hello MTD folks,

Here is a (big) series supposed to bring DTR support in SPI-NAND.

I could have split this into two but I eventually preferred showing the
big picture. Once v1 will be over, I can make it two. However when we'll
discuss merging, we'll have to share an immutable tag among the two
subsystems.

Here is the logic:
* patches 1 & 2 add support for spi-mem operations with a specific
  frequency limitation. This is not only related to DTR support, because
  as you can see I could use this to support basic features in the
  Winbond driver.
* patches 3-16 are going through all the easy controller drivers, where
  effectively supporting these per-operation limitation was easy to
  do. In practice, I believe all controllers can, but software is
  sometimes the limiting factor. All controllers without spi-mem support
  will gracefully handle the request (provided that they already care
  about the maximum speed of course), and all the updated controllers in
  this series will also handle the situation correctly. For the others,
  it's an opt-in parameter, so they will simply refuse the operation
  during the checks_op/supports_op() phase.
* patches 17-19 make use of this new possibility to fix Winbond support
* patches 20-24 are actually adding DTR support in SPI-NAND, and making
  this feature useful with Winbond chips.

Thanks,
Miquèl

Miquel Raynal (24):
  spi: spi-mem: Extend spi-mem operations with a per-operation maximum
    frequency
  spi: spi-mem: Add a new controller capability
  spi: amd: Support per spi-mem operation frequency switches
  spi: amlogic-spifc-a1: Support per spi-mem operation frequency
    switches
  spi: cadence-qspi: Support per spi-mem operation frequency switches
  spi: dw: Support per spi-mem operation frequency switches
  spi: fsl-qspi: Support per spi-mem operation frequency switches
  spi: microchip-core-qspi: Support per spi-mem operation frequency
    switches
  spi: mt65xx: Support per spi-mem operation frequency switches
  spi: mxic: Support per spi-mem operation frequency switches
  spi: nxp-fspi: Support per spi-mem operation frequency switches
  spi: rockchip-sfc: Support per spi-mem operation frequency switches
  spi: spi-sn-f-ospi: Support per spi-mem operation frequency switches
  spi: spi-ti-qspi: Support per spi-mem operation frequency switches
  spi: zynq-qspi: Support per spi-mem operation frequency switches
  spi: zynqmp-gqspi: Support per spi-mem operation frequency switches
  mtd: spinand: Create distinct fast and slow read from cache variants
  mtd: spinand: Add an optional frequency to read from cache macros
  mtd: spinand: winbond: Fix the *JW chip definitions
  spi: spi-mem: Reorder SPI_MEM_OP_CMD internals
  spi: spi-mem: Create macros for DTR operation
  mtd: spinand: Add support for read DTR operations
  mtd: spinand: winbond: Add comment about naming
  mtd: spinand: winbond: Add support for DTR operations

 drivers/mtd/nand/spi/alliancememory.c |  4 +-
 drivers/mtd/nand/spi/ato.c            |  4 +-
 drivers/mtd/nand/spi/esmt.c           |  4 +-
 drivers/mtd/nand/spi/foresee.c        |  4 +-
 drivers/mtd/nand/spi/gigadevice.c     | 16 ++++----
 drivers/mtd/nand/spi/macronix.c       |  4 +-
 drivers/mtd/nand/spi/micron.c         |  8 ++--
 drivers/mtd/nand/spi/paragon.c        |  4 +-
 drivers/mtd/nand/spi/toshiba.c        |  4 +-
 drivers/mtd/nand/spi/winbond.c        | 27 +++++++++++--
 drivers/mtd/nand/spi/xtx.c            |  4 +-
 drivers/spi/spi-amd.c                 | 10 ++++-
 drivers/spi/spi-amlogic-spifc-a1.c    |  7 +++-
 drivers/spi/spi-cadence-quadspi.c     |  3 +-
 drivers/spi/spi-dw-core.c             | 10 ++++-
 drivers/spi/spi-fsl-qspi.c            | 12 ++++--
 drivers/spi/spi-mem.c                 | 13 +++++++
 drivers/spi/spi-microchip-core-qspi.c | 26 +++++++++++--
 drivers/spi/spi-mt65xx.c              |  7 +++-
 drivers/spi/spi-mxic.c                |  3 +-
 drivers/spi/spi-nxp-fspi.c            | 12 ++++--
 drivers/spi/spi-rockchip-sfc.c        | 11 ++++--
 drivers/spi/spi-sn-f-ospi.c           |  8 +++-
 drivers/spi/spi-ti-qspi.c             |  7 +++-
 drivers/spi/spi-zynq-qspi.c           | 13 +++++--
 drivers/spi/spi-zynqmp-gqspi.c        | 13 +++++--
 include/linux/mtd/spinand.h           | 56 +++++++++++++++++++++++++--
 include/linux/spi/spi-mem.h           | 56 ++++++++++++++++++++++++++-
 28 files changed, 282 insertions(+), 68 deletions(-)