From 0c583441f175a228b08e0df956758a46f9b74bcd Mon Sep 17 00:00:00 2001 From: Youssef Zini Date: Fri, 13 Jun 2025 13:35:28 +0200 Subject: [PATCH] drivers: hwinfo_stm32.c: add support for stm32mp2 Add support for STM32MP2 series in the hwinfo driver. The STM32MP2 series uses the HAL functions since it doesn't have a ll_utils. Signed-off-by: Youssef Zini --- drivers/hwinfo/hwinfo_stm32.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/hwinfo/hwinfo_stm32.c b/drivers/hwinfo/hwinfo_stm32.c index 1d4a1fed0a0..c29bb3a36da 100644 --- a/drivers/hwinfo/hwinfo_stm32.c +++ b/drivers/hwinfo/hwinfo_stm32.c @@ -15,7 +15,8 @@ #include #include -#if defined(CONFIG_SOC_SERIES_STM32MP13X) +#if defined(CONFIG_SOC_SERIES_STM32MP13X) \ + || defined(CONFIG_SOC_SERIES_STM32MP2X) /* No ll_utils for the stm32mp13x series, instead use the HAL functions */ /* zephyr-keep-sorted-start */ @@ -32,7 +33,7 @@ #define STM32_UID_WORD_2 LL_GetUID_Word0() /* zephyr-keep-sorted-stop */ -#endif /* CONFIG_SOC_SERIES_STM32MP13X */ +#endif /* CONFIG_SOC_SERIES_STM32MP13X || CONFIG_SOC_SERIES_STM32MP2X */ struct stm32_uid { uint32_t id[3]; @@ -171,6 +172,10 @@ int z_impl_hwinfo_get_reset_cause(uint32_t *cause) if (LL_PWR_MPU_IsActiveFlag_SB()) { flags |= RESET_LOW_POWER_WAKE; } +#elif defined(CONFIG_SOC_SERIES_STM32MP2X) && defined(PWR_FLAG_SB) + if (LL_PWR_HasSystemBeenInStandby()) { + flags |= RESET_LOW_POWER_WAKE; + } #elif defined(CONFIG_SOC_SERIES_STM32WLX) || defined(CONFIG_SOC_SERIES_STM32WBX) if (LL_PWR_IsActiveFlag_C1SB()) { flags |= RESET_LOW_POWER_WAKE; @@ -200,6 +205,8 @@ int z_impl_hwinfo_clear_reset_cause(void) LL_PWR_ClearFlag_MCU(); #elif defined(CONFIG_SOC_SERIES_STM32MP13X) LL_PWR_ClearFlag_MPU(); +#elif defined(CONFIG_SOC_SERIES_STM32MP2X) && defined(PWR_FLAG_SB) + __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB); #elif defined(CONFIG_SOC_SERIES_STM32WLX) || defined(CONFIG_SOC_SERIES_STM32WBX) LL_PWR_ClearFlag_C1STOP_C1STB(); #elif defined(CONFIG_SOC_SERIES_STM32U0X) && defined(PWR_FLAG_SB)