[PATCH v2 0/3] Add multi mode support for omap-mcspi

From: Louis Chauvet
Date: Fri Feb 23 2024 - 04:33:07 EST


This series adds the support for the omap-mcspi multi mode which allows
sending SPI messages with a shorter delay between CS and the message.

One drawback of the multi-mode is that the CS is raised between each word,
so it can only be used with messages containing 1 word transfers and
asking for cs_change. Few devices, like FPGAs, may easily workaround this
limitation.

The first patch removes the current implementation, which is working, but
don't comply with what is asked in the spi transfer (The CS is raised by
the hardware regardless of cs_change state). No drivers or board file use this
implementation upstream.

The second patch adds the implementation of the multi-mode, which complies
with what is asked in the SPI message.

The third patch is the suggested optimization for using MULTI mode in more
situations.

Signed-off-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx>
---
Changes in v2:
- Updated the commit line for the first patch to use the correct format;
- Updated the commit message for the second patch, adding precision on how
the controler works;
- Added the suggestion from Mark Brown to merge multiple transfers word
into one when applicable;
- Link to v1: https://lore.kernel.org/r/20240126-spi-omap2-mcspi-multi-mode-v1-0-d143d33f0fe0@xxxxxxxxxxx

---
Louis Chauvet (3):
spi: spi-omap2-mcspi.c: revert "Toggle CS after each word"
spi: omap2-mcspi: Add support for MULTI-mode
spi: omap2-mcpsi: Enable MULTI-mode in more situations

drivers/spi/spi-omap2-mcspi.c | 96 +++++++++++++++++++++------
include/linux/platform_data/spi-omap2-mcspi.h | 3 -
2 files changed, 75 insertions(+), 24 deletions(-)
---
base-commit: 41bccc98fb7931d63d03f326a746ac4d429c1dd3
change-id: 20240126-spi-omap2-mcspi-multi-mode-e62f68b78ad3

Best regards,
--
Louis Chauvet <louis.chauvet@xxxxxxxxxxx>