diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index c7c46b0403..5dd9f299dc 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -3251,11 +3251,13 @@ config RTC_LSECLOCK config RTC_LSICLOCK bool "LSI clock" + depends on !STM32_STM32L15XX ---help--- Drive the RTC with the LSI clock config RTC_HSECLOCK bool "HSE clock" + depends on !STM32_STM32L15XX ---help--- Drive the RTC with the HSE clock, divided down to 1MHz. diff --git a/arch/arm/src/stm32/stm32_rtcc.c b/arch/arm/src/stm32/stm32_rtcc.c index 817111d587..ea49fa2e6a 100644 --- a/arch/arm/src/stm32/stm32_rtcc.c +++ b/arch/arm/src/stm32/stm32_rtcc.c @@ -51,6 +51,8 @@ #include "up_arch.h" +#include "stm32_rcc.h" +#include "stm32_pwr.h" #include "stm32_rtc.h" #ifdef CONFIG_RTC @@ -77,6 +79,14 @@ # undef CONFIG_DEBUG_RTC #endif +#ifdef CONFIG_STM32_STM32L15XX +# if defined(CONFIG_RTC_HSECLOCK) +# error "RTC with HSE clock not yet implemented for STM32L15XXX" +# elif defined(CONFIG_RTC_LSICLOCK) +# error "RTC with LSI clock not yet implemented for STM32L15XXX" +# endif +#endif + /* Constants ************************************************************************/ #define SYNCHRO_TIMEOUT (0x00020000) @@ -435,6 +445,7 @@ static int rtc_setup(void) uint32_t regval; int ret; +#ifndef CONFIG_STM32_STM32L15XX /* We might be changing RTCSEL - to ensure such changes work, we must reset the * backup domain */ @@ -475,6 +486,12 @@ static int rtc_setup(void) stm32_rcc_enablelse(); #endif +#else + /* Enable the LSE clock */ + + stm32_rcc_enablelse(); + +#endif /* CONFIG_STM32_STM32L15XX */ /* Wait for the RTC Time and Date registers to be synchronized with RTC APB * clock.