Skip to content

Commit 8569eac

Browse files
committed
library: spi: ensure peripheral reset
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent ecf2260 commit 8569eac

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

libraries/SPI/src/utility/spi_com.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,36 +305,48 @@ void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb)
305305
// Enable SPI clock
306306
if (handle->Instance == SPI1) {
307307
__HAL_RCC_SPI1_CLK_ENABLE();
308+
__HAL_RCC_SPI1_FORCE_RESET();
309+
__HAL_RCC_SPI1_RELEASE_RESET();
308310
}
309311
#endif
310312

311313
#if defined SPI2_BASE
312314
if (handle->Instance == SPI2) {
313315
__HAL_RCC_SPI2_CLK_ENABLE();
316+
__HAL_RCC_SPI2_FORCE_RESET();
317+
__HAL_RCC_SPI2_RELEASE_RESET();
314318
}
315319
#endif
316320

317321
#if defined SPI3_BASE
318322
if (handle->Instance == SPI3) {
319323
__HAL_RCC_SPI3_CLK_ENABLE();
324+
__HAL_RCC_SPI3_FORCE_RESET();
325+
__HAL_RCC_SPI3_RELEASE_RESET();
320326
}
321327
#endif
322328

323329
#if defined SPI4_BASE
324330
if (handle->Instance == SPI4) {
325331
__HAL_RCC_SPI4_CLK_ENABLE();
332+
__HAL_RCC_SPI4_FORCE_RESET();
333+
__HAL_RCC_SPI4_RELEASE_RESET();
326334
}
327335
#endif
328336

329337
#if defined SPI5_BASE
330338
if (handle->Instance == SPI5) {
331339
__HAL_RCC_SPI5_CLK_ENABLE();
340+
__HAL_RCC_SPI5_FORCE_RESET();
341+
__HAL_RCC_SPI5_RELEASE_RESET();
332342
}
333343
#endif
334344

335345
#if defined SPI6_BASE
336346
if (handle->Instance == SPI6) {
337347
__HAL_RCC_SPI6_CLK_ENABLE();
348+
__HAL_RCC_SPI6_FORCE_RESET();
349+
__HAL_RCC_SPI6_RELEASE_RESET();
338350
}
339351
#endif
340352

0 commit comments

Comments
 (0)