@@ -60,45 +60,38 @@ uint32_t spi_getClkFreqInst(SPI_TypeDef *spi_inst)
60
60
UNUSED (spi_inst );
61
61
/* SPIx source CLK is PCKL1 */
62
62
spi_freq = HAL_RCC_GetPCLK1Freq ();
63
- #elif defined(STM32H7xx )
64
- /* Get source clock depending on SPI instance */
65
- if (spi_inst != NP ) {
66
- switch ((uint32_t )spi_inst ) {
67
- case (uint32_t )SPI1 :
68
- case (uint32_t )SPI2 :
69
- case (uint32_t )SPI3 :
70
- spi_freq = HAL_RCCEx_GetPeriphCLKFreq (RCC_PERIPHCLK_SPI123 );
71
- break ;
72
- case (uint32_t )SPI4 :
73
- case (uint32_t )SPI5 :
74
- spi_freq = HAL_RCC_GetPCLK2Freq ();
75
- break ;
76
- case (uint32_t )SPI6 :
77
- spi_freq = HAL_RCCEx_GetPeriphCLKFreq (RCC_PERIPHCLK_SPI6 );
78
- break ;
79
- default :
80
- core_debug ("CLK: SPI instance not set" );
81
- break ;
82
- }
83
- }
84
- #elif defined(STM32MP1xx )
63
+ #elif defined(RCC_PERIPHCLK_SPI1 )
85
64
/* Get source clock depending on SPI instance */
86
65
if (spi_inst != NP ) {
87
66
switch ((uint32_t )spi_inst ) {
88
67
case (uint32_t )SPI1 :
89
68
spi_freq = HAL_RCCEx_GetPeriphCLKFreq (RCC_PERIPHCLK_SPI1 );
90
69
break ;
91
70
case (uint32_t )SPI2 :
71
+ #if defined(RCC_PERIPHCLK_SPI23 )
72
+ spi_freq = HAL_RCCEx_GetPeriphCLKFreq (RCC_PERIPHCLK_SPI23 );
73
+ #else
74
+ spi_freq = HAL_RCCEx_GetPeriphCLKFreq (RCC_PERIPHCLK_SPI2 );
75
+ #endif
76
+ break ;
92
77
case (uint32_t )SPI3 :
78
+ #if defined(RCC_PERIPHCLK_SPI23 )
93
79
spi_freq = HAL_RCCEx_GetPeriphCLKFreq (RCC_PERIPHCLK_SPI23 );
80
+ #else
81
+ spi_freq = HAL_RCCEx_GetPeriphCLKFreq (RCC_PERIPHCLK_SPI3 );
82
+ #endif
94
83
break ;
84
+ #if defined(RCC_PERIPHCLK_SPI45 )
95
85
case (uint32_t )SPI4 :
96
86
case (uint32_t )SPI5 :
97
87
spi_freq = HAL_RCCEx_GetPeriphCLKFreq (RCC_PERIPHCLK_SPI45 );
98
88
break ;
89
+ #endif
90
+ #if defined(RCC_PERIPHCLK_SPI6 )
99
91
case (uint32_t )SPI6 :
100
92
spi_freq = HAL_RCCEx_GetPeriphCLKFreq (RCC_PERIPHCLK_SPI6 );
101
93
break ;
94
+ #endif
102
95
default :
103
96
core_debug ("CLK: SPI instance not set" );
104
97
break ;
@@ -267,9 +260,7 @@ void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb)
267
260
}
268
261
269
262
handle -> Init .TIMode = SPI_TIMODE_DISABLE ;
270
- #if defined(STM32F0xx ) || defined(STM32F3xx ) || defined(STM32F7xx ) || \
271
- defined(STM32G0xx ) || defined(STM32H7xx ) || defined(STM32L4xx ) || \
272
- defined(STM32WBxx ) || defined(STM32MP1xx )
263
+ #if defined(SPI_NSS_PULSE_DISABLE )
273
264
handle -> Init .NSSPMode = SPI_NSS_PULSE_DISABLE ;
274
265
#endif
275
266
@@ -429,23 +420,23 @@ spi_status_e spi_transfer(spi_t *obj, uint8_t *tx_buffer, uint8_t *rx_buffer,
429
420
}
430
421
tickstart = HAL_GetTick ();
431
422
432
- #if defined(STM32H7xx ) || defined( STM32MP1xx )
423
+ #if defined(SPI_CR2_TSIZE )
433
424
/* Start transfer */
434
425
LL_SPI_SetTransferSize (_SPI , size );
435
426
LL_SPI_Enable (_SPI );
436
427
LL_SPI_StartMasterTransfer (_SPI );
437
428
#endif
438
429
439
430
while (size -- ) {
440
- #if defined(STM32H7xx ) || defined( STM32MP1xx )
431
+ #if defined(SPI_SR_TXP )
441
432
while (!LL_SPI_IsActiveFlag_TXP (_SPI ));
442
433
#else
443
434
while (!LL_SPI_IsActiveFlag_TXE (_SPI ));
444
435
#endif
445
436
LL_SPI_TransmitData8 (_SPI , * tx_buffer ++ );
446
437
447
438
if (!skipReceive ) {
448
- #if defined(STM32H7xx ) || defined( STM32MP1xx )
439
+ #if defined(SPI_SR_RXP )
449
440
while (!LL_SPI_IsActiveFlag_RXP (_SPI ));
450
441
#else
451
442
while (!LL_SPI_IsActiveFlag_RXNE (_SPI ));
@@ -458,7 +449,7 @@ spi_status_e spi_transfer(spi_t *obj, uint8_t *tx_buffer, uint8_t *rx_buffer,
458
449
}
459
450
}
460
451
461
- #if defined(STM32H7xx ) || defined( STM32MP1xx )
452
+ #if defined(SPI_IFCR_EOTC )
462
453
/* Close transfer */
463
454
/* Clear flags */
464
455
LL_SPI_ClearFlag_EOT (_SPI );
0 commit comments