AnsweredAssumed Answered

iMX8QXP SCU wakes up once a second during suspend?

Question asked by John Ernberg on Apr 1, 2020
Latest reply on Apr 23, 2020 by igorpadykov

Hi,

 

SCFW: 1.2.7.1
Linux BSP: 4.19.35
SoC: iMX8QXP
PMIC: PF8100

 

When I put the system into suspend (KS1) I can see the PMIC coming out of standby via the SCU disabling SCU_PMIC_STANDBY. The PMIC then turns on all the rails that are STBY_OFF, and then going back to suspend, once a second. These wakeups have quite a negative impact on our power consumption.
The PMIC watchdog is not enabled, and we cannot see any events on the PMIC interrupt pin when this happens. but the SCU_PMIC_STANDBY pin is pulsed at 1Hz (~8ms duty cycle).

Re-configuring the SCU watchdog to set enableWait=false seems to make the wakeups happen every 2 seconds instead. Disabling the watchdog does not seem to have any effect at all, and the wakeups again seem to happen once a second.

 

Changing enableWait was done like this, in board_init() during BOOT_PHASE_FINAL_INIT:

wdog32_config_t config;
WDOG32_GetDefaultConfig(&config);
config.workMode.enableWait = false;
config.enableUpdate = true;
WDOG32_Init(WDOG_SC, &config);

Disabling/enabling the watchdog was done like this in board_power() as the final steps:

wdog32_config_t config;
WDOG32_GetDefaultConfig(&config);
config.enableUpdate = true;
if (mode < SC_PM_PW_MODE_ON && mode != SC_PM_PW_MODE_OFF)
{
    config.enableWdog32 = false;
}
else if (mode == SC_PM_PW_MODE_ON)
{
    config.enableWdog32 = true;
}
WDOG32_Init(WDOG_SC, &config);

These settings were not tried together.

What could be the reason for these wakeups? Is it a watchdog? How do we avoid it in suspension?

Thank you in advance.

 

Regards // John

Outcomes