We are working on getting our system (OMAP3730 and TPS65930) to sleep and wakeup.
Using the information on http://elinux.org/OMAP_Power_Management,
and I have gone through the web page http://processors.wiki.ti.com/index.php/OMAP35x_Debug_Steps_for_Idle_Entry
I do the following sequences to test sleep and wakeup:
1.
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
2.
echo mem > /sys/power/state
3.
Now it can show "Successfully put all powerdomains to target state " ,But resume immediately, the wakeup debug message is "WAKEUP BY: PRM_IRQSTATUS(0x8004c10)".
************
My question:
************
Does the information above can indicate that it got to the OFF state?
If so, why does it wakeup?
How could i diagnose this issue?
Below is more debug informations :
-------------------------------------------------------
/sys/kernel/debug/pm_debug # cat count
usbhost_pwrdm (ON),OFF:1,RET:0,INA:0,ON:2
sgx_pwrdm (OFF),OFF:19,RET:0,INA:0,ON:19
per_pwrdm (ON),OFF:1,RET:2830,INA:0,ON:2832
dss_pwrdm (ON),OFF:1,RET:0,INA:0,ON:2
cam_pwrdm (OFF),OFF:1,RET:2,INA:0,ON:2
core_pwrdm (ON),OFF:1,RET:0,INA:0,ON:2
neon_pwrdm (ON),OFF:1,RET:2811,INA:28,ON:2841
mpu_pwrdm (ON),OFF:1,RET:2811,INA:28,ON:2841
iva2_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1
per_clkdm->per_pwrdm (9)
usbhost_clkdm->usbhost_pwrdm (3)
cam_clkdm->cam_pwrdm (0)
dss_clkdm->dss_pwrdm (3)
core_l4_clkdm->core_pwrdm (9)
core_l3_clkdm->core_pwrdm (5)
d2d_clkdm->core_pwrdm (0)
sgx_clkdm->sgx_pwrdm (0)
iva2_clkdm->iva2_pwrdm (0)
neon_clkdm->neon_pwrdm (0)
mpu_clkdm->mpu_pwrdm (0)
prm_clkdm->wkup_pwrdm (0)
cm_clkdm->core_pwrdm (0)
-------------------------------------------------------
It's sound that all the power domain got to the off state once when system sleep.
But when I check the dump register in /sys/kernel/debug/pm_debug/registers/1 as below command:
/sys/kernel/debug/pm_debug/registers # cat 1
In http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/p/77848/278434.aspx#278434, [Kazunobu Shin] provided a PRCM register snapshot taken just before a successful suspend,
After compare mine with this example , and lookup to DM3730's datasheet, I find that all the CM module registers are porper,But the PRM module registers are not OK:the RM_RSTST_XXX is not clear to 0. Below is the detail
-------------------------------------------------------
MOD: PRM_MPU (48306900)
58 => 0000000c = 0b1100
bit3:Read 0x1: MPU domain has been reset following a CORE power domain wake-up from OFF to ON.
bit2:Read 0x1: MPU domain has been reset following a MPU power domain wake-up.
MOD: PRM_CORE (48306a00)
58 => 00000304 = 0b0100
bit2: Read 0x1: CORE domain has been reset following a CORE power domain wake-up.
MOD: PRM_SGX (48306b00)
58 => 0000000d = 0b1101
bit3:Read 0x1: SGX domain has been reset following a CORE power domain wake-up from OFF to ON.
bit2:Read 0x1: SGX domain has been reset following a SGX domain wake-up.
bit0:Read 0x1: SGX domain has been reset upon a global cold reset
MOD: PRM_DSS (48306e00)
58 => 0000000c = 0b1100
bit3:Read 0x1: DSS domain has been reset following a CORE power domain wake-up from OFF to ON.
bit2:Read 0x1: DSS domain has been reset following a DSS power domain wake-up.
MOD: PRM_CAM (48306f00)
58 => 00000001 = 0b0001
bit0:Read 0x1: CAM domain has been reset upon a global cold reset
MOD: PRM_PER (48307000)
58 => 0000000c = 0b1100
bit3:Read 0x1: PER domain has been reset following a CORE power domain wake-up from OFF to ON.
bit2:Read 0x1: PER domain has been reset following a PERIPHERAL power domain wake-up.
MOD: PRM_EMU (48307100)
58 => 00000004 = 0b0100
bit2:Read 0x1: EMULATION domain has been reset following an EMULATION power domain wake-up.
MOD: PRM_NEON (48307300)
58 => 0000000c = 0b1100
bit3:Read 0x1: NEON domain has been reset following a CORE power domain wake-up from OFF to ON.
bit2:Read 0x1: NEON domain has been reset following a NEON power domain wake-up.
MOD: PRM_USB (48307400)
58 => 0000000c = 0b1100
bit3:Read 0x1: USB HOST domain has been reset following a CORE power domain wake-up from OFF to ON.
bit2:Read 0x1: USB HOST domain has been reset following an USB HOST power domain wake-up.
-------------------------------------------------------
Please give some suggestion to me, any suggestion is useful to me.
thanks for any assistance!