aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorNishanth Menon <nm@ti.com>2014-06-05 22:40:39 -0400
committerNishanth Menon <nm@ti.com>2014-09-08 12:22:42 -0400
commit46ba55265254e8f47f8c2af6408841f31bab4870 (patch)
tree773a5fb38b904231dd8f62f26b7642bc4e818037 /arch/arm/mach-omap2
parentbd002d7bdafc695decf7d4aeba285097356938f1 (diff)
ARM: OMAP4+: PM: Make logic state programmable
Move the logic state as different for each power domain. This allows us to customize the deepest power state we should target over all for each powerdomain in the follow on patches. Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Kevin Hilman <khilman@linaro.org> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/pm44xx.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
index 0dda6cf8b855..b377b03ec1b2 100644
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -29,6 +29,7 @@ u16 pm44xx_errata;
29struct power_state { 29struct power_state {
30 struct powerdomain *pwrdm; 30 struct powerdomain *pwrdm;
31 u32 next_state; 31 u32 next_state;
32 u32 next_logic_state;
32#ifdef CONFIG_SUSPEND 33#ifdef CONFIG_SUSPEND
33 u32 saved_state; 34 u32 saved_state;
34 u32 saved_logic_state; 35 u32 saved_logic_state;
@@ -54,7 +55,7 @@ static int omap4_pm_suspend(void)
54 /* Set targeted power domain states by suspend */ 55 /* Set targeted power domain states by suspend */
55 list_for_each_entry(pwrst, &pwrst_list, node) { 56 list_for_each_entry(pwrst, &pwrst_list, node) {
56 omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state); 57 omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state);
57 pwrdm_set_logic_retst(pwrst->pwrdm, PWRDM_POWER_OFF); 58 pwrdm_set_logic_retst(pwrst->pwrdm, pwrst->next_logic_state);
58 } 59 }
59 60
60 /* 61 /*
@@ -121,6 +122,8 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused)
121 122
122 pwrst->pwrdm = pwrdm; 123 pwrst->pwrdm = pwrdm;
123 pwrst->next_state = PWRDM_POWER_RET; 124 pwrst->next_state = PWRDM_POWER_RET;
125 pwrst->next_logic_state = PWRDM_POWER_OFF;
126
124 list_add(&pwrst->node, &pwrst_list); 127 list_add(&pwrst->node, &pwrst_list);
125 128
126 return omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state); 129 return omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state);