From c73c7d572875b0059b0cf239a1fa67fb6ad32168 Mon Sep 17 00:00:00 2001 From: Guillaume Gautier Date: Wed, 24 May 2023 11:34:46 +0200 Subject: [PATCH] drivers: spi: stm32h7: add a small delay after enabling Add a small delay after enabling SPI to prevent transfer stalling. Signed-off-by: Guillaume Gautier --- drivers/spi/spi_ll_stm32.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/spi/spi_ll_stm32.c b/drivers/spi/spi_ll_stm32.c index 9a3bebdaa4e..418a635589b 100644 --- a/drivers/spi/spi_ll_stm32.c +++ b/drivers/spi/spi_ll_stm32.c @@ -28,6 +28,8 @@ LOG_MODULE_REGISTER(spi_ll_stm32); #include "spi_ll_stm32.h" +#define WAIT_1US 1U + /* * Check for SPI_SR_FRE to determine support for TI mode frame format * error flag, because STM32F1 SoCs do not support it and STM32CUBE @@ -643,6 +645,14 @@ static int transceive(const struct device *dev, LL_SPI_Enable(spi); +#if CONFIG_SOC_SERIES_STM32H7X + /* + * Add a small delay after enabling to prevent transfer stalling at high + * system clock frequency (see errata sheet ES0392). + */ + k_busy_wait(WAIT_1US); +#endif + /* This is turned off in spi_stm32_complete(). */ spi_stm32_cs_control(dev, true);