diff --git a/drivers/spi/spi_ll_stm32.h b/drivers/spi/spi_ll_stm32.h index 4785d3e9895..949b8882dd7 100644 --- a/drivers/spi/spi_ll_stm32.h +++ b/drivers/spi/spi_ll_stm32.h @@ -177,7 +177,11 @@ static inline void ll_func_disable_int_errors(SPI_TypeDef *spi) static inline uint32_t ll_func_spi_is_busy(SPI_TypeDef *spi) { #if DT_HAS_COMPAT_STATUS_OKAY(st_stm32h7_spi) - return LL_SPI_IsActiveFlag_EOT(spi); + if (LL_SPI_GetTransferSize(spi) == 0) { + return LL_SPI_IsActiveFlag_TXC(spi) == 0; + } else { + return LL_SPI_IsActiveFlag_EOT(spi) == 0; + } #else return LL_SPI_IsActiveFlag_BSY(spi); #endif /* st_stm32h7_spi */