|
15 | 15 | #include <string.h>
|
16 | 16 | #include <zephyr/sys/byteorder.h>
|
17 | 17 |
|
18 |
| -#if defined(CONFIG_SOC_SERIES_STM32MP13X) |
| 18 | +#if defined(CONFIG_SOC_SERIES_STM32MP13X) \ |
| 19 | + || defined(CONFIG_SOC_SERIES_STM32MP2X) |
19 | 20 |
|
20 | 21 | /* No ll_utils for the stm32mp13x series, instead use the HAL functions */
|
21 | 22 | /* zephyr-keep-sorted-start */
|
|
32 | 33 | #define STM32_UID_WORD_2 LL_GetUID_Word0()
|
33 | 34 | /* zephyr-keep-sorted-stop */
|
34 | 35 |
|
35 |
| -#endif /* CONFIG_SOC_SERIES_STM32MP13X */ |
| 36 | +#endif /* CONFIG_SOC_SERIES_STM32MP13X || CONFIG_SOC_SERIES_STM32MP2X */ |
36 | 37 |
|
37 | 38 | struct stm32_uid {
|
38 | 39 | uint32_t id[3];
|
@@ -171,6 +172,10 @@ int z_impl_hwinfo_get_reset_cause(uint32_t *cause)
|
171 | 172 | if (LL_PWR_MPU_IsActiveFlag_SB()) {
|
172 | 173 | flags |= RESET_LOW_POWER_WAKE;
|
173 | 174 | }
|
| 175 | +#elif defined(CONFIG_SOC_SERIES_STM32MP2X) && defined(PWR_FLAG_SB) |
| 176 | + if (LL_PWR_HasSystemBeenInStandby()) { |
| 177 | + flags |= RESET_LOW_POWER_WAKE; |
| 178 | + } |
174 | 179 | #elif defined(CONFIG_SOC_SERIES_STM32WLX) || defined(CONFIG_SOC_SERIES_STM32WBX)
|
175 | 180 | if (LL_PWR_IsActiveFlag_C1SB()) {
|
176 | 181 | flags |= RESET_LOW_POWER_WAKE;
|
@@ -200,6 +205,8 @@ int z_impl_hwinfo_clear_reset_cause(void)
|
200 | 205 | LL_PWR_ClearFlag_MCU();
|
201 | 206 | #elif defined(CONFIG_SOC_SERIES_STM32MP13X)
|
202 | 207 | LL_PWR_ClearFlag_MPU();
|
| 208 | +#elif defined(CONFIG_SOC_SERIES_STM32MP2X) && defined(PWR_FLAG_SB) |
| 209 | + __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB); |
203 | 210 | #elif defined(CONFIG_SOC_SERIES_STM32WLX) || defined(CONFIG_SOC_SERIES_STM32WBX)
|
204 | 211 | LL_PWR_ClearFlag_C1STOP_C1STB();
|
205 | 212 | #elif defined(CONFIG_SOC_SERIES_STM32U0X) && defined(PWR_FLAG_SB)
|
|
0 commit comments