mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-05 20:56:12 +02:00
STM32MP1:
- Ping IWDG on exit from PSCI suspend code -----BEGIN PGP SIGNATURE----- iQJQBAABCgA6FiEEXyrViUccKBz9c35Jysd4L3sz/6YFAmZv7BUcHHBhdHJpY2Uu Y2hvdGFyZEBmb3NzLnN0LmNvbQAKCRDKx3gvezP/ps0IEACVL0/4tPOB9YYFJ5zX D7PVt6L1S4hamAJl7ozpC4P6aD8/oHxDzOnGFPPMd1uPS+enW/PLhwvqywFKvg8W ndeY+N1CHL5hBWT4/tZ/P+9hzJV4DGtcgQOhc3oVIQamIy6NXDVkwqadFPa8uDOQ xcuo513O6E3OiuJ4brBI1OWUgXrN0U9BBpC0+B5Y6YhP8wUAtLXuKVtDDIgBZqR3 hJtJ6MqvFXj5TGCobOW7p+WSXBcLev24BFiBhnStZwQaj948Qwava5UKJN4fTPUi ac715naZFZWQXVQsZ5qZ4g2CdgrOt1ydbHTTveoB/8k6CPrATCAmtdz7gEunnyYp l87v5GUPp5WDAmYmZ3ri0vU89IAkTCKAxXb3DefTvVpgZrAO5VP1J1gnSlhO704n RlqraO4axXRAuCVBPHG5nJ3aksag5YBWg1SFa76ti43ral240m+Z3LUGlPYz7W9c wZoJtFfpJiTmPNardTSDu4UP/56GW34hVftZWWt0Zz5nDmJimiPsG/2tLpDjlpm8 GrQs9cL1Pr7q9nGXnyj0uoyiyjKpGPcG/TFBECIuaauzkiYUTeWMp26PpPMbaNYr 8Eo7uypZjFQtqhIwlSjXPUpzrZerWV+9Rvs6DfVGUZVGqZ1thg4i6Zk/hK2Om9o9 G77CcURHuR+BTEQMGSicCXnXWA== =AO8u -----END PGP SIGNATURE----- Merge tag 'u-boot-stm32-20240617' of https://source.denx.de/u-boot/custodians/u-boot-stm STM32MP1: - Ping IWDG on exit from PSCI suspend code
This commit is contained in:
commit
4d07da3333
@ -808,6 +808,27 @@ void __secure psci_system_suspend(u32 __always_unused function_id,
|
||||
writel(SYSCFG_CMPENR_MPUEN, STM32_SYSCFG_BASE + SYSCFG_CMPENSETR);
|
||||
clrbits_le32(STM32_SYSCFG_BASE + SYSCFG_CMPCR, SYSCFG_CMPCR_SW_CTRL);
|
||||
|
||||
/*
|
||||
* Make sure the OS would not get any spurious IWDG pretimeout IRQ
|
||||
* right after the system wakes up. This may happen in case the SoC
|
||||
* got woken up by another source than the IWDG pretimeout and the
|
||||
* pretimeout IRQ arrived immediately afterward, but too late to be
|
||||
* handled by the main loop above. In case either of the IWDG is
|
||||
* enabled, ping it first and then return to the OS.
|
||||
*/
|
||||
|
||||
/* Ping IWDG1 and ACK pretimer IRQ */
|
||||
if (gic_enabled[4] & BIT(22)) {
|
||||
writel(IWDG_KR_RELOAD_KEY, STM32_IWDG1_BASE + IWDG_KR);
|
||||
writel(IWDG_EWCR_EWIC, STM32_IWDG1_BASE + IWDG_EWCR);
|
||||
}
|
||||
|
||||
/* Ping IWDG2 and ACK pretimer IRQ */
|
||||
if (gic_enabled[4] & BIT(23)) {
|
||||
writel(IWDG_KR_RELOAD_KEY, STM32_IWDG2_BASE + IWDG_KR);
|
||||
writel(IWDG_EWCR_EWIC, STM32_IWDG2_BASE + IWDG_EWCR);
|
||||
}
|
||||
|
||||
/*
|
||||
* The system has resumed successfully. Rewrite LR register stored
|
||||
* on stack with 'ep' value, so that on return from this PSCI call,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user