@@ -85,28 +85,9 @@ LOG_MODULE_REGISTER(counter_rtc_stm32, CONFIG_COUNTER_LOG_LEVEL);
8585/* Seconds from 1970-01-01T00:00:00 to 2000-01-01T00:00:00 */
8686#define T_TIME_OFFSET 946684800
8787
88- #if defined(CONFIG_SOC_SERIES_STM32L4X )
89- #define RTC_EXTI_LINE LL_EXTI_LINE_18
90- #elif defined(CONFIG_SOC_SERIES_STM32C0X ) \
91- || defined(CONFIG_SOC_SERIES_STM32G0X )
92- #define RTC_EXTI_LINE LL_EXTI_LINE_19
93- #elif defined(CONFIG_SOC_SERIES_STM32F4X ) \
94- || defined(CONFIG_SOC_SERIES_STM32C5X ) \
95- || defined(CONFIG_SOC_SERIES_STM32F0X ) \
96- || defined(CONFIG_SOC_SERIES_STM32F1X ) \
97- || defined(CONFIG_SOC_SERIES_STM32F2X ) \
98- || defined(CONFIG_SOC_SERIES_STM32F3X ) \
99- || defined(CONFIG_SOC_SERIES_STM32F7X ) \
100- || defined(CONFIG_SOC_SERIES_STM32WBX ) \
101- || defined(CONFIG_SOC_SERIES_STM32G4X ) \
102- || defined(CONFIG_SOC_SERIES_STM32L0X ) \
103- || defined(CONFIG_SOC_SERIES_STM32L1X ) \
104- || defined(CONFIG_SOC_SERIES_STM32L5X ) \
105- || defined(CONFIG_SOC_SERIES_STM32H7X ) \
106- || defined(CONFIG_SOC_SERIES_STM32H5X ) \
107- || defined(CONFIG_SOC_SERIES_STM32WLX )
108- #define RTC_EXTI_LINE LL_EXTI_LINE_17
109- #endif
88+ #if DT_INST_NODE_HAS_PROP (0 , alrm_exti_line )
89+ #define RTC_EXTI_LINE_NUM DT_INST_PROP(0, alrm_exti_line)
90+ #endif /* DT_INST_NODE_HAS_PROP(0, alrm_exti_line) */
11091
11192#if defined(CONFIG_SOC_SERIES_STM32F1X )
11293#define COUNTER_NO_DATE
@@ -761,21 +742,9 @@ void rtc_stm32_isr(const struct device *dev)
761742 }
762743 }
763744
764- #if defined(CONFIG_SOC_SERIES_STM32H7X ) && defined(CONFIG_CPU_CORTEX_M4 )
765- LL_C2_EXTI_ClearFlag_0_31 (RTC_EXTI_LINE );
766- #elif defined(CONFIG_SOC_SERIES_STM32C0X ) \
767- || defined(CONFIG_SOC_SERIES_STM32C5X ) \
768- || defined(CONFIG_SOC_SERIES_STM32G0X ) \
769- || defined(CONFIG_SOC_SERIES_STM32L5X ) \
770- || defined(CONFIG_SOC_SERIES_STM32H5X )
771- LL_EXTI_ClearRisingFlag_0_31 (RTC_EXTI_LINE );
772- #elif defined(CONFIG_SOC_SERIES_STM32U3X ) \
773- || defined(CONFIG_SOC_SERIES_STM32U5X ) \
774- || defined(CONFIG_SOC_SERIES_STM32WBAX )
775- /* RTC is not connected to EXTI for these SoC series */
776- #else
777- LL_EXTI_ClearFlag_0_31 (RTC_EXTI_LINE );
778- #endif
745+ #if defined(RTC_EXTI_LINE_NUM )
746+ stm32_exti_clear_pending (RTC_EXTI_LINE_NUM );
747+ #endif /* defined(RTC_EXTI_LINE_NUM) */
779748}
780749
781750
@@ -843,16 +812,16 @@ static int rtc_stm32_init(const struct device *dev)
843812 LL_RTC_EnableWriteProtection (STM32_ARG (RTC ));
844813#endif /* RTC_CR_BYPSHAD */
845814
846- #if defined(CONFIG_SOC_SERIES_STM32H7X ) && defined( CONFIG_CPU_CORTEX_M4 )
847- LL_C2_EXTI_EnableIT_0_31 ( RTC_EXTI_LINE );
848- LL_EXTI_EnableRisingTrig_0_31 ( RTC_EXTI_LINE );
849- #elif defined( CONFIG_SOC_SERIES_STM32U3X ) || defined( CONFIG_SOC_SERIES_STM32U5X ) || \
850- defined( CONFIG_SOC_SERIES_STM32WBAX )
851- /* RTC is not connected to EXTI for these SoC series */
852- #else
853- LL_EXTI_EnableIT_0_31 ( RTC_EXTI_LINE ) ;
854- LL_EXTI_EnableRisingTrig_0_31 ( RTC_EXTI_LINE );
855- #endif
815+ #if defined(RTC_EXTI_LINE_NUM )
816+ /* Trigger NVIC IRQ on RTC EXTI line rising edge */
817+ ret = stm32_exti_enable ( RTC_EXTI_LINE_NUM ,
818+ STM32_EXTI_TRIG_RISING ,
819+ STM32_EXTI_MODE_IT );
820+ if ( ret < 0 ) {
821+ LOG_ERR ( "Failed to enable RTC EXTI line" );
822+ goto out_disable_bkup_access ;
823+ }
824+ #endif /* defined(RTC_EXTI_LINE_NUM) */
856825
857826out_disable_bkup_access :
858827 stm32_backup_domain_disable_access ();
0 commit comments