Hi,
I'm trying to shut the IVA powerdomain off on OMAP3730 in order to reduce power consumption.
I'm using Linux 3.4.0. After the powerdomains and clockdomains setup in omap3_pm_init() (in arch/arm/mach-omap2/pm34xx.c, line 748), I perform these steps:
1. Set next powerstate to PWRDM_POWER_OFF
2. Start a software sleep transition on the powerdomain
3. Disable wakeup upon wakeup events
4. Putting the clockdomain to sleep
Code:
//...
(void) clkdm_for_each(omap_pm_clkdms_setup, NULL);
//my code:
{
struct powerdomain *iva2_pwrdm = pwrdm_lookup("iva2_pwrdm");
struct clockdomain *iva2_clkdm = clkdm_lookup("iva2_clkdm");
pwrdm_set_next_pwrst(iva2_pwrdm, PWRDM_POWER_OFF); //step 1
omap2_cm_write_mod_reg(1, OMAP3430_IVA_MOD, OMAP2_CM_CLKSTCTRL); //step 2
omap2_prm_write_mod_reg(0, OMAP3430_IVA_MOD, PM_WKDEP); //step 3
clkdm_sleep(iva2_clkdm); //step 4
}
//end my code
mpu_pwrdm = pwrdm_lookup("mpu_pwrdm");
//...
reading the status register returns 0x555:
root:~|0 # devmem 0x483060e4 32
0x00000555
This means that the IVA2 logic is on...
How can I turn the IVA2 completely off?
thankS! :)