Skip to content

Commit df67198

Browse files
committed
library: spi: add STM32U5xx support
use register definition instead of serie name Signed-off-by: Frederic Pillon <frederic.pillon@st.com> # Conflicts: # libraries/SPI/src/utility/spi_com.c
1 parent fbf4f0f commit df67198

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

libraries/SPI/src/utility/spi_com.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ uint32_t spi_getClkFreq(spi_t *obj)
185185
}
186186

187187

188-
#if defined(STM32H7xx) || defined(STM32MP1xx)
188+
#if defined(SPI_IFCR_EOTC)
189189
/**
190190
* @brief Compute delay before disabling SPI
191191
* See https://github.com/stm32duino/Arduino_Core_STM32/issues/1294
@@ -281,7 +281,7 @@ void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb)
281281
handle->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256;
282282
}
283283

284-
#if defined(STM32H7xx) || defined(STM32MP1xx)
284+
#if defined(SPI_IFCR_EOTC)
285285
// Compute disable delay as baudrate has been modified
286286
obj->disable_delay = compute_disable_delay(obj);
287287
#endif
@@ -311,9 +311,7 @@ void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb)
311311
}
312312

313313
handle->Init.TIMode = SPI_TIMODE_DISABLE;
314-
#if defined(STM32F0xx) || defined(STM32F3xx) || defined(STM32F7xx) ||\
315-
defined(STM32G0xx) || defined(STM32H7xx) || defined(STM32L4xx) ||\
316-
defined(STM32WBxx) || defined(STM32MP1xx)
314+
#if defined(SPI_NSS_PULSE_DISABLE)
317315
handle->Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
318316
#endif
319317
#ifdef SPI_MASTER_KEEP_IO_STATE_ENABLE
@@ -488,23 +486,23 @@ spi_status_e spi_transfer(spi_t *obj, uint8_t *tx_buffer, uint8_t *rx_buffer,
488486
}
489487
tickstart = HAL_GetTick();
490488

491-
#if defined(STM32H7xx) || defined(STM32MP1xx)
489+
#if defined(SPI_CR2_TSIZE)
492490
/* Start transfer */
493491
LL_SPI_SetTransferSize(_SPI, size);
494492
LL_SPI_Enable(_SPI);
495493
LL_SPI_StartMasterTransfer(_SPI);
496494
#endif
497495

498496
while (size--) {
499-
#if defined(STM32H7xx) || defined(STM32MP1xx)
497+
#if defined(SPI_SR_TXP)
500498
while (!LL_SPI_IsActiveFlag_TXP(_SPI));
501499
#else
502500
while (!LL_SPI_IsActiveFlag_TXE(_SPI));
503501
#endif
504502
LL_SPI_TransmitData8(_SPI, *tx_buffer++);
505503

506504
if (!skipReceive) {
507-
#if defined(STM32H7xx) || defined(STM32MP1xx)
505+
#if defined(SPI_SR_RXP)
508506
while (!LL_SPI_IsActiveFlag_RXP(_SPI));
509507
#else
510508
while (!LL_SPI_IsActiveFlag_RXNE(_SPI));
@@ -517,7 +515,7 @@ spi_status_e spi_transfer(spi_t *obj, uint8_t *tx_buffer, uint8_t *rx_buffer,
517515
}
518516
}
519517

520-
#if defined(STM32H7xx) || defined(STM32MP1xx)
518+
#if defined(SPI_IFCR_EOTC)
521519
// Add a delay before disabling SPI otherwise last-bit/last-clock may be truncated
522520
// See https://github.com/stm32duino/Arduino_Core_STM32/issues/1294
523521
// Computed delay is half SPI clock

0 commit comments

Comments
 (0)