[U-Boot] [PATCH] armv7: ls102xa: not power down OCRAM1
Biwen Li
biwen.li at nxp.com
Mon Sep 23 10:09:32 UTC 2019
- Not power down OCRAM1 for FlexTimer to wakeup
system with FlexTimer in deep sleep.
- Add errata ID A-008646 for workaround.
Signed-off-by: Biwen Li <biwen.li at nxp.com>
---
arch/arm/cpu/armv7/ls102xa/ls102xa_psci.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/arch/arm/cpu/armv7/ls102xa/ls102xa_psci.c b/arch/arm/cpu/armv7/ls102xa/ls102xa_psci.c
index bb169aaaf4..acd74c3ba4 100644
--- a/arch/arm/cpu/armv7/ls102xa/ls102xa_psci.c
+++ b/arch/arm/cpu/armv7/ls102xa/ls102xa_psci.c
@@ -68,12 +68,11 @@ static void __secure ls1_deepsleep_irq_cfg(void)
ippdexpcr0 = in_be32(&rcpm->ippdexpcr0);
/*
- * Workaround: There is bug of register ippdexpcr1, when read it always
+ * Workaround of errata A-008646: There is bug of register ippdexpcr1, when read it always
* returns zero, so its value is saved to a scrachpad register to be
* read, that is why we don't read it from register ippdexpcr1 itself.
*/
ippdexpcr1 = in_le32(&scfg->sparecr[7]);
- out_be32(&rcpm->ippdexpcr1, ippdexpcr1);
if (ippdexpcr0 & RCPM_IPPDEXPCR0_ETSEC)
pmcintecr |= SCFG_PMCINTECR_ETSECRXG0 |
@@ -87,8 +86,11 @@ static void __secure ls1_deepsleep_irq_cfg(void)
if (ippdexpcr1 & RCPM_IPPDEXPCR1_LPUART)
pmcintecr |= SCFG_PMCINTECR_LPUART;
- if (ippdexpcr1 & RCPM_IPPDEXPCR1_FLEXTIMER)
+ if (ippdexpcr1 & RCPM_IPPDEXPCR1_FLEXTIMER) {
pmcintecr |= SCFG_PMCINTECR_FTM;
+ /* Not power down OCRAM1 */
+ out_be32(&rcpm->ippdexpcr1, ippdexpcr1 | RCPM_IPPDEXPCR1_OCRAM1);
+ }
/* Always set external IRQ pins as wakeup source */
pmcintecr |= SCFG_PMCINTECR_IRQ0 | SCFG_PMCINTECR_IRQ1;
--
2.17.1
More information about the U-Boot
mailing list