• Louis Chauvet's avatar
    spi: omap2-mcspi: Add support for MULTI-mode · d153ff40
    Louis Chauvet authored
    Introduce support for MULTI-mode in the OMAP2 MCSPI driver. Currently, the
    driver always uses SINGLE mode to handle the chip select (CS). With this
    enhancement, MULTI-mode is enabled for specific messages, allowing for a
    shorter delay between CS enable and the message (some FPGA devices are
    sensitive to this delay).
    
    The OMAP2 MCSPI device can use two different mode to send messages, SINGLE
    and MULTI:
    In SINGLE mode, the controller only leverages one single FIFO, and the
    host system has to manually select the CS it wants to enable.
    In MULTI mode, each CS is bound to a FIFO, the host system then writes the
    data to the relevant FIFO, as the hardware will take care of the CS
    
    The drawback of multi-mode is that it's not possible to keep the CS
    enabled between each words. Therefore, this patch enables multi-mode only
    for specific messages: the spi_message must contain only spi_transfer of 1
    word (of any size) with cs_change enabled.
    
    A new member is introduced in the omap2_mcspi structure to keep track of
    the current used mode.
    Signed-off-by: default avatarLouis Chauvet <louis.chauvet@bootlin.com>
    Link: https://msgid.link/r/20240327-spi-omap2-mcspi-multi-mode-v3-2-c4ac329dd5a2@bootlin.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    d153ff40
spi-omap2-mcspi.c 42.1 KB