spi: omap2-mcspi: add support for interword delay
The module omap2-mcspi does not support the interword delay parameter present in the spi transfer. On one side, if the module is instructed to use the dma, this parameter is correctly ignored. However, without the usage of the dma, that parameter should be used. The patch introduce the handling of such delay in the omap2-mcspi module, using standard spi_delay struct. The patch has been tested using as benchmark a DM3730. The delay function used (spi_delay_exec) is already present in the kernel and it checks on its own the validity of the input, as such, no additional checks are present. The range of usage of the udelay function is incremented to 200 us, as the change from udelay to usleep_range introduces not neglectible delays. Signed-off-by: Andrea Zanotti <andreazanottifo@gmail.com> Link: https://lore.kernel.org/r/20220502111300.24754-1-andreazanottifo@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
dfc6597eb1
Коммит
2cd757e629
|
@ -757,6 +757,8 @@ omap2_mcspi_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
|
|||
dev_vdbg(&spi->dev, "read-%d %02x\n",
|
||||
word_len, *(rx - 1));
|
||||
}
|
||||
/* Add word delay between each word */
|
||||
spi_delay_exec(&xfer->word_delay, xfer);
|
||||
} while (c);
|
||||
} else if (word_len <= 16) {
|
||||
u16 *rx;
|
||||
|
@ -804,6 +806,8 @@ omap2_mcspi_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
|
|||
dev_vdbg(&spi->dev, "read-%d %04x\n",
|
||||
word_len, *(rx - 1));
|
||||
}
|
||||
/* Add word delay between each word */
|
||||
spi_delay_exec(&xfer->word_delay, xfer);
|
||||
} while (c >= 2);
|
||||
} else if (word_len <= 32) {
|
||||
u32 *rx;
|
||||
|
@ -851,6 +855,8 @@ omap2_mcspi_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
|
|||
dev_vdbg(&spi->dev, "read-%d %08x\n",
|
||||
word_len, *(rx - 1));
|
||||
}
|
||||
/* Add word delay between each word */
|
||||
spi_delay_exec(&xfer->word_delay, xfer);
|
||||
} while (c >= 4);
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче