From: Jouni Hogander <jouni.hogander@xxxxxxxxx> Signed-off-by: Jouni Hogander <jouni.hogander@xxxxxxxxx> --- arch/arm/mach-omap2/Kconfig | 6 ++++++ arch/arm/mach-omap2/cpuidle34xx.c | 12 ++++++++++++ arch/arm/mach-omap2/pm34xx.c | 4 ++++ 3 files changed, 22 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 362edfa..5c0eafc 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -142,3 +142,9 @@ config OMAP_TICK_GPTIMER due to hardware sensitivity to glitches on the OMAP 32kHz clock input. +config OMAP3_OFF_MODE + bool "OMAP 3430 OFF mode support" + depends on ARCH_OMAP3 + default n + help + Use off mode for powerdomains. \ No newline at end of file diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c index c970a06..248b365 100644 --- a/arch/arm/mach-omap2/cpuidle34xx.c +++ b/arch/arm/mach-omap2/cpuidle34xx.c @@ -555,7 +555,11 @@ void omap_init_power_states(void) CPUIDLE_FLAG_BALANCED; /* C3 . MPU OFF + Core active */ +#ifdef CONFIG_OMAP3_OFF_MODE omap3_power_states[OMAP3_STATE_C3].valid = 1; +#else + omap3_power_states[OMAP3_STATE_C3].valid = 0; +#endif omap3_power_states[OMAP3_STATE_C3].type = OMAP3_STATE_C3; omap3_power_states[OMAP3_STATE_C3].sleep_latency = 1500; omap3_power_states[OMAP3_STATE_C3].wakeup_latency = 1800; @@ -577,7 +581,11 @@ void omap_init_power_states(void) CPUIDLE_FLAG_BALANCED | CPUIDLE_FLAG_CHECK_BM; /* C5 . MPU OFF + Core CSWR */ +#ifdef CONFIG_OMAP3_OFF_MODE omap3_power_states[OMAP3_STATE_C5].valid = 1; +#else + omap3_power_states[OMAP3_STATE_C5].valid = 0; +#endif omap3_power_states[OMAP3_STATE_C5].type = OMAP3_STATE_C5; omap3_power_states[OMAP3_STATE_C5].sleep_latency = 3000; omap3_power_states[OMAP3_STATE_C5].wakeup_latency = 8500; @@ -588,7 +596,11 @@ void omap_init_power_states(void) CPUIDLE_FLAG_BALANCED | CPUIDLE_FLAG_CHECK_BM; /* C6 . MPU OFF + Core OFF */ +#ifdef CONFIG_OMAP3_OFF_MODE omap3_power_states[OMAP3_STATE_C6].valid = 1; +#else + omap3_power_states[OMAP3_STATE_C6].valid = 0; +#endif omap3_power_states[OMAP3_STATE_C6].type = OMAP3_STATE_C6; omap3_power_states[OMAP3_STATE_C6].sleep_latency = 10000; omap3_power_states[OMAP3_STATE_C6].wakeup_latency = 30000; diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index fc7da5a..53814b6 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -801,7 +801,11 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm) if (!pwrst) return -ENOMEM; pwrst->pwrdm = pwrdm; +#ifdef CONFIG_OMAP3_OFF_MODE + pwrst->next_state = PWRDM_POWER_OFF; +#else pwrst->next_state = PWRDM_POWER_RET; +#endif list_add(&pwrst->node, &pwrst_list); if (pwrdm_has_hdwr_sar(pwrdm)) -- 1.6.0 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html