-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ARM: mx3: Let mx31 and mx35 enter in LPM mode in WFI
The LPM field of register CCMR is used to select the mode that the processor will run when it goes to WFI. When mx31 enters in WFI mode the LPM field is at its reset value of 0, which configures the mx31 to enter in "wait mode". On mx35, the LPM field on mx35 is also at 0 after reset, which corresponds to "run mode" instead of "wait mode". Instead of relying on the reset value of LPM to set the low power mode for WFI, configure mx31 and mx35 to run in "wait mode" Reported-by: Benoit Thebaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
- Loading branch information
Fabio Estevam
authored and
Sascha Hauer
committed
Mar 2, 2012
1 parent
d65b4e9
commit 3ac804e
Showing
5 changed files
with
50 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
/* | ||
* Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved. | ||
* | ||
* The code contained herein is licensed under the GNU General Public | ||
* License. You may obtain a copy of the GNU General Public License | ||
* Version 2 or later at the following locations: | ||
* | ||
* http://www.opensource.org/licenses/gpl-license.html | ||
* http://www.gnu.org/copyleft/gpl.html | ||
*/ | ||
#include <linux/io.h> | ||
#include <mach/common.h> | ||
#include <mach/hardware.h> | ||
#include <mach/devices-common.h> | ||
#include "crmregs-imx3.h" | ||
|
||
/* | ||
* Set cpu low power mode before WFI instruction. This function is called | ||
* mx3 because it can be used for mx31 and mx35. | ||
* Currently only WAIT_MODE is supported. | ||
*/ | ||
void mx3_cpu_lp_set(enum mx3_cpu_pwr_mode mode) | ||
{ | ||
int reg = __raw_readl(MXC_CCM_CCMR); | ||
reg &= ~MXC_CCM_CCMR_LPM_MASK; | ||
|
||
switch (mode) { | ||
case MX3_WAIT: | ||
if (cpu_is_mx35()) | ||
reg |= MXC_CCM_CCMR_LPM_WAIT_MX35; | ||
__raw_writel(reg, MXC_CCM_CCMR); | ||
break; | ||
default: | ||
pr_err("Unknown cpu power mode: %d\n", mode); | ||
return; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters