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.

OMAP Off Modes and TPS65950 Powering Off

Other Parts Discussed in Thread: TPS65950, OMAP3530

I am trying to reduce the power consumption on our board (OMAP-3530 + TPS65950) which is running Linux version PSP 03.00.01.06.

Using the information on power management kernel found on http://elinux.org/OMAP_Power_Management I believe I am configuring it for sleeping at lowest power when I do the following:

echo 1 > /debug/pm_debug/sleep_while_idle

echo 1 > /debug/pm_debug/enable_off_mode

echo 1 > /debug/pm_debug/voltage_off_while_idle

Does the lowest power sleep state require any other configuration commands?

I then tell it to sleep:

echo mem > /sys/power/state

Unfortunately at this point the behavior is not completely consistent.  Sometimes it will not wake up from sleep.  Sometimes it will go to it's lowest power state, but sometimes it is unable to get CORE and DSS to go to the OFF state.  Any suggestions to improve consistency?

In any case, my main questions relate to what the Linux kernel tells me about its states after it wakes up.  Using the command

cat /debug/pm_debug/count

or even the output from the above sleep command:

Successfully put all powerdomains to target state

The kernel seems to be telling me that everything went appropriately to sleep--to the OFF state, but I'm not sure.  The power consumed by the board is much higher than I want/expect.  I have gone through the web page http://processors.wiki.ti.com/index.php/OMAP35x_Debug_Steps_for_Idle_Entry and it appears that there are several things that could keep the CORE domain from going idle.  However, the kernel tells me it's reaching the OFF state.  Is it really reaching the OFF state?

I rather expected the voltage rails, VDD1 and VDD2 to reach 0.0V, but in fact, they stay pretty close to 1.2V.  Is this expected?

I want to have VPLL1 go to 0.0V as well.  I believe I need to modify the scripts in the TPS65950 to accomplish this, correct?

We are using I2C4 to communicate power down modes to the TPS65950.  I understand that once the 3530 has reached a certain state, it will automatically tell the 65950 to shut off supplies.  Is this correct?

Is there something beyond reaching the OFF state that is required before the 3530 will send that shutoff command to the 65950?  If so what is it?

 

Sorry for the many questions, but thanks for any assistance,

 

Chris

  • Some observations on my quest:

    1.  It does appear that /sys/power/state counts or the "Successfully put all powerdomains to target state" statement can indicate that it got to the OFF state, but the PM_PREPWSTST_ registers may indicate otherwise.  It looks best to monitor the values of the PM_PREPWSTST_ registers to make sure they indicate that the OFF state was actually reached.

    2.  It helped to add code to pm-debug.c so that register names are included in /debug/pm_debug/registers/2.  Then you can just grep for PM_PREPWSTST in that file and quickly know if you reached the OFF state.

  • Another observation:

    Setting echo 1 > /debug/pm_debug/voltage_off_while_idle causes the OMAP3530 to switch from using I2C to communicate off mode to using SYS_OFF_MODE pin, and setting it back to 0 switches it back to the I2C.  (This is done in the PRM_VOLTCTRL configuration register).

    Is it only possible to hit 0V in the off mode using SYS_OFF_MODE, and not just using I2C?

  • I miss-wrote.  We use I2C1 for control of the TPS65950