This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TWL6030 primary watchdog timer expires on suspend

Other Parts Discussed in Thread: TWL6030

Hi,

I am working on a custom board based on OMAP4460. The TWL6030 has a primary watchdog timer which has to be programmed once every 128 seconds.

This primary watchdog timer cannot be disabled by software.

As part of power management when i echo mem > /sys/power/state/  the board goes to suspend. In suspend, if the board is left idle for more than 128 seconds it freezes.

How do i make sure that the board does not freeze when left idle in suspend for more than 128 seconds ?

Any pointers would be helpful.

Thank you for your time.

Regards,

Sanjay

  • Hello Sanjay,

    Have you observed the same behavior on the sw development platforms running the same SW release?  The current Android releases have not been using the twl6030 watchdog as it reduces the power savings from OFF mode.  Testing ICS and JB on Blaze tablet, I don't see the system waking up out of OFF mode from RTC to pet the pmic.  

    Regards,

    Alex Trinh

  • Hello Alex Trinh,

    Thank you very much for the reply.

    In our custom board we are using TWL6030B1AACMR as the PMIC. In TWL6030B1AACMR the Primary watchdog timer is enabled by default in hardware. 

    Hence, software must program PRIMARY_WATCHDOG_CFG register once within every 128 seconds to prevent TWL6030 from entering WAIT-ON/OFF state.

    Is there any way to suspend the primary watchdog during OMAP in suspend mode ?

    Thanks and Regards,

    Sanjay

  • Looking at the twl6030 data sheet (under NDA) which lists the various part numbers and respective watchdogs used, it confirms pmic you are using has the primary watchdog enabled.  Unfortunately you cannot suspend this watchdog in suspend mode.  The OMAP sw development platforms use the twl6030 that have the primary and charging watchdogs disabled.

    Regards,

    Alex

  • Hi,

    As a workaround for the problem, i was able to use a general purpose timer to wake up the omap, in suspend mode once every 60 seconds and reprogram the primary watchdog timer.

    There is a gp timer available in the debug filesystem, programming the wakeup_timer_seconds and wakeup_timer_milliseconds, helped us.

    Regards,

    Sanjay