From: Andrey Pronin <apronin@xxxxxxxxxxxx> Some devices may need CS to be deasserted for some time between transactions. Added a new capability to guarantee a delay between SPI transactions for the device. Signed-off-by: Andrey Pronin <apronin@xxxxxxxxxxxx> --- drivers/spi/spi.c | 3 +++ include/linux/spi/spi.h | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index c51c864..639c7bd 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -971,6 +971,9 @@ static int spi_transfer_one_message(struct spi_master *master, spi_reset_cs_wake_timer(msg->spi); } + if (msg->spi->xfer_delay) + mdelay(msg->spi->xfer_delay); + spi_set_cs(msg->spi, true); SPI_STATISTICS_INCREMENT_FIELD(statm, messages); diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 4b06ba6..4b1aa13 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -137,6 +137,8 @@ void spi_statistics_add_transfer_stats(struct spi_statistics *stats, * @cs_wake_timer: Timer measuring the delay before the device goes to * sleep after the last SPI transaction. * + * @xfer_delay: Delay between SPI transactions (msec). + * * @statistics: statistics for the spi_device * * A @spi_device is used to interchange data between an SPI slave @@ -183,6 +185,8 @@ struct spi_device { bool cs_wake_needed; struct timer_list cs_wake_timer; + u32 xfer_delay; + /* the statistics */ struct spi_statistics statistics; -- 2.6.6 -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html