From 7080f0f83f9aea1052de28d8009c09279bee9c8c Mon Sep 17 00:00:00 2001 From: Nikodem Kastelik Date: Wed, 29 May 2024 15:02:04 +0200 Subject: [PATCH] drivers: spi: nrf: fix async cs deactivation Chip Select signal must be deactivated only after transaction is finalized. In async case this means it cannot be done from `transceive` call context, as this context is left as soon as transfer is initialized. Signed-off-by: Nikodem Kastelik --- drivers/spi/spi_nrfx_spim.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi_nrfx_spim.c b/drivers/spi/spi_nrfx_spim.c index 08012b389c5..0dc3fc7a370 100644 --- a/drivers/spi/spi_nrfx_spim.c +++ b/drivers/spi/spi_nrfx_spim.c @@ -298,6 +298,8 @@ static void finish_transaction(const struct device *dev, int error) spi_context_complete(ctx, dev, error); dev_data->busy = false; + + spi_context_cs_control(&dev_data->ctx, false); } static void transfer_next_chunk(const struct device *dev) @@ -468,8 +470,6 @@ static int transceive(const struct device *dev, anomaly_58_workaround_clear(dev_data); #endif } - - spi_context_cs_control(&dev_data->ctx, false); } spi_context_release(&dev_data->ctx, error);