diff options
author | Sowjanya Komatineni <skomatineni@nvidia.com> | 2019-04-04 17:14:16 -0700 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-04-08 14:14:10 +0700 |
commit | f1ca9992ced71029735784de138f53446363087f (patch) | |
tree | e0dc359aa07e160039ce89071bd7d73c461ec200 /drivers/spi/spi.c | |
parent | 24496da6927fa7399f7f60ab31b4cea27ec3ed00 (diff) | |
download | blackbird-op-linux-f1ca9992ced71029735784de138f53446363087f.tar.gz blackbird-op-linux-f1ca9992ced71029735784de138f53446363087f.zip |
spi: add a method for configuring CS timing
This patch creates set_cs_timing SPI master optional method for
SPI masters to implement configuring CS timing if applicable.
This patch also creates spi_cs_timing accessory for SPI clients to
use for requesting SPI master controllers to configure device requested
CS setup time, hold time and inactive delay.
Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r-- | drivers/spi/spi.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index fd1372fe0505..bf4027b54a19 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -2995,6 +2995,21 @@ int spi_setup(struct spi_device *spi) } EXPORT_SYMBOL_GPL(spi_setup); +/** + * spi_set_cs_timing - configure CS setup, hold, and inactive delays + * @spi: the device that requires specific CS timing configuration + * @setup: CS setup time in terms of clock count + * @hold: CS hold time in terms of clock count + * @inactive_dly: CS inactive delay between transfers in terms of clock count + */ +void spi_set_cs_timing(struct spi_device *spi, u8 setup, u8 hold, + u8 inactive_dly) +{ + if (spi->controller->set_cs_timing) + spi->controller->set_cs_timing(spi, setup, hold, inactive_dly); +} +EXPORT_SYMBOL_GPL(spi_set_cs_timing); + static int __spi_validate(struct spi_device *spi, struct spi_message *message) { struct spi_controller *ctlr = spi->controller; |