Commit | Line | Data |
---|---|---|
3ac804e3 FE |
1 | /* |
2 | * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved. | |
3 | * | |
4 | * The code contained herein is licensed under the GNU General Public | |
5 | * License. You may obtain a copy of the GNU General Public License | |
6 | * Version 2 or later at the following locations: | |
7 | * | |
8 | * http://www.opensource.org/licenses/gpl-license.html | |
9 | * http://www.gnu.org/copyleft/gpl.html | |
10 | */ | |
11 | #include <linux/io.h> | |
e3372474 SG |
12 | |
13 | #include "common.h" | |
3ac804e3 | 14 | #include "crmregs-imx3.h" |
e0557c0d | 15 | #include "devices/devices-common.h" |
50f2de61 | 16 | #include "hardware.h" |
3ac804e3 FE |
17 | |
18 | /* | |
19 | * Set cpu low power mode before WFI instruction. This function is called | |
20 | * mx3 because it can be used for mx31 and mx35. | |
21 | * Currently only WAIT_MODE is supported. | |
22 | */ | |
23 | void mx3_cpu_lp_set(enum mx3_cpu_pwr_mode mode) | |
24 | { | |
eb92044e | 25 | int reg = __raw_readl(mx3_ccm_base + MXC_CCM_CCMR); |
3ac804e3 FE |
26 | reg &= ~MXC_CCM_CCMR_LPM_MASK; |
27 | ||
28 | switch (mode) { | |
29 | case MX3_WAIT: | |
30 | if (cpu_is_mx35()) | |
31 | reg |= MXC_CCM_CCMR_LPM_WAIT_MX35; | |
eb92044e | 32 | __raw_writel(reg, mx3_ccm_base + MXC_CCM_CCMR); |
3ac804e3 FE |
33 | break; |
34 | default: | |
35 | pr_err("Unknown cpu power mode: %d\n", mode); | |
36 | return; | |
37 | } | |
38 | } |