From bb1cb7f9e65f27c4bb01e2bc88c16544b04d79ae Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Thu, 7 Sep 2023 17:11:51 +0200 Subject: [PATCH] fix(clock): handle HSE TCXO when available Signed-off-by: Frederic Pillon --- libraries/SrcWrapper/src/stm32/clock.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libraries/SrcWrapper/src/stm32/clock.c b/libraries/SrcWrapper/src/stm32/clock.c index 2f6c7c8a1d..543df9583f 100644 --- a/libraries/SrcWrapper/src/stm32/clock.c +++ b/libraries/SrcWrapper/src/stm32/clock.c @@ -129,10 +129,15 @@ void enableClock(sourceClock_t source) } break; case HSE_CLOCK: - __HAL_RCC_HSE_CONFIG(RCC_HSE_ON); +#if defined(RCC_HSE_BYPASS_PWR) && defined(LORAWAN_BOARD_HAS_TCXO) && (LORAWAN_BOARD_HAS_TCXO == 1) + uint32_t HSEState = RCC_HSE_BYPASS_PWR; +#else + uint32_t HSEState = RCC_HSE_ON; +#endif + __HAL_RCC_HSE_CONFIG(HSEState); if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) { RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; - RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.HSEState = HSEState; } break; default: