summaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx/cpuidle-imx6q.c
diff options
context:
space:
mode:
authorAnson Huang <b20788@freescale.com>2014-10-20 16:16:20 +0800
committerNitin Garg <nitin.garg@freescale.com>2015-01-15 21:18:24 -0600
commit95769d948ae37838aa3206f2d964ce7fe06d09e7 (patch)
tree920fa79b584b776f4c28d0219b2de8e494f711b2 /arch/arm/mach-imx/cpuidle-imx6q.c
parentee24070ba739ddc2ce623874b0e626333dfd5575 (diff)
MLK-9708 arm: imx: add low power idle support for i.mx6sx
1. improve imx6q_set_int_mem_clk_lpm routine; 2. export rbc enable interface for cpuidle; 3. enable low power idle for i.MX6SX: WFI -> first level idle; WAIT mode -> second level idle; Low power idle -> third level idle, only when system is in low bus mode. In low powe idle mode, below operations will be done: ARM power off; AHB freq lower to 3MHz; PERCLK freq lower to 6MHz; MMDC freq lower to 1MHz; Anatop will be put into low power mode, and regular band-gap will be off and low power band-gap will be enabled instead. Also, in low power idle mode, 24MHz XTAL power will be off and 24MHz clk source will be switched to RC-OSC to save power, this feature is only enabled on i.MX6SX TO1.2. Signed-off-by: Anson Huang <b20788@freescale.com>
Diffstat (limited to 'arch/arm/mach-imx/cpuidle-imx6q.c')
-rw-r--r--arch/arm/mach-imx/cpuidle-imx6q.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mach-imx/cpuidle-imx6q.c b/arch/arm/mach-imx/cpuidle-imx6q.c
index d88448209354..b458490f59a2 100644
--- a/arch/arm/mach-imx/cpuidle-imx6q.c
+++ b/arch/arm/mach-imx/cpuidle-imx6q.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 Freescale Semiconductor, Inc.
+ * Copyright (C) 2012-2014 Freescale Semiconductor, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -66,7 +66,7 @@ static struct cpuidle_driver imx6q_cpuidle_driver = {
int __init imx6q_cpuidle_init(void)
{
/* Set INT_MEM_CLK_LPM bit to get a reliable WAIT mode support */
- imx6q_set_int_mem_clk_lpm();
+ imx6q_set_int_mem_clk_lpm(true);
return cpuidle_register(&imx6q_cpuidle_driver, NULL);
}