From c68d3f49707d12820711a9a66fd79928d313f01b Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Wed, 30 Jun 2021 10:48:48 +0200 Subject: [PATCH] core: backup: use register definition instead of serie name Some serie still require to use their name due to wrong LL API prototype using RTC parameter instead of TAMP. Signed-off-by: Frederic Pillon --- cores/arduino/stm32/backup.h | 42 ++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/cores/arduino/stm32/backup.h b/cores/arduino/stm32/backup.h index 6d4a647096..63ad162dd5 100644 --- a/cores/arduino/stm32/backup.h +++ b/cores/arduino/stm32/backup.h @@ -30,15 +30,7 @@ extern "C" { #endif /* Exported macro ------------------------------------------------------------*/ -#if (!defined(STM32F0xx) && !defined(STM32F3xx) && !defined(STM32L0xx) &&\ - !defined(STM32L1xx) && !defined(STM32L4xx) && !defined(STM32MP1xx)) || \ - defined(RTC_BACKUP_SUPPORT) -#if !defined(STM32L412xx) && !defined(STM32L422xx) -#define ENABLE_BACKUP_SUPPORT -#endif -#endif - -#if !defined(RTC_BKP_INDEX) && defined(ENABLE_BACKUP_SUPPORT) +#if !defined(RTC_BKP_INDEX) && defined(LL_RTC_BKP_DR1) #define RTC_BKP_INDEX LL_RTC_BKP_DR1 #else #define RTC_BKP_INDEX 0 @@ -109,38 +101,42 @@ static inline void disableBackupDomain(void) static inline void setBackupRegister(uint32_t index, uint32_t value) { -#if defined(STM32F1xx) +#if defined(BKP_BASE) LL_RTC_BKP_SetRegister(BKP, index, value); -#elif defined(STM32G0xx) - LL_RTC_BKP_SetRegister(TAMP, index, value); -#elif defined(STM32G4xx) || defined(STM32L5xx) +#elif defined(RTC_BKP0R) + LL_RTC_BAK_SetRegister(RTC, index, value); +#elif defined(TAMP_BKP0R) +#if defined(STM32G4xx) || defined(STM32L5xx) || defined(STM32MP1xx) + /* For those series this API requires RTC even if it is not used + and TAMP is used instead */ LL_RTC_BKP_SetRegister(RTC, index, value); #else -#ifdef ENABLE_BACKUP_SUPPORT - LL_RTC_BAK_SetRegister(RTC, index, value); + LL_RTC_BKP_SetRegister(TAMP, index, value); +#endif #else UNUSED(index); UNUSED(value); #endif -#endif } static inline uint32_t getBackupRegister(uint32_t index) { -#if defined(STM32F1xx) +#if defined(BKP_BASE) return LL_RTC_BKP_GetRegister(BKP, index); -#elif defined(STM32G0xx) - return LL_RTC_BKP_GetRegister(TAMP, index); -#elif defined(STM32G4xx) || defined(STM32L5xx) +#elif defined(RTC_BKP0R) + return LL_RTC_BAK_GetRegister(RTC, index); +#elif defined(TAMP_BKP0R) +#if defined(STM32G4xx) || defined(STM32L5xx) || defined(STM32MP1xx) + /* For those series this API requires RTC even if it is not used + and TAMP is used instead */ return LL_RTC_BKP_GetRegister(RTC, index); #else -#ifdef ENABLE_BACKUP_SUPPORT - return LL_RTC_BAK_GetRegister(RTC, index); + return LL_RTC_BKP_GetRegister(TAMP, index); +#endif #else UNUSED(index); return 0; #endif -#endif } static inline void writeBackupSRAM(uint32_t offset, uint32_t *data, uint32_t length)