mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
powerpc/4xx: Add suspend and idle support
Add suspend/resume support for 4xx compatible CPUs. See /sys/power/state for available power states configured in. Add two different idle states (idle-wait and idle-doze) controlled via sysfs. Default is idle-wait. cat /sys/devices/system/cpu/cpu0/idle [wait] doze To save additional power, use idle-doze. echo doze > /sys/devices/system/cpu/cpu0/idle cat /sys/devices/system/cpu/cpu0/idle wait [doze] Signed-off-by: Victor Gallardo <[email protected]> Signed-off-by: Josh Boyer <[email protected]>
This commit is contained in:
parent
46f5221049
commit
d164f6d4f9
5 changed files with 413 additions and 4 deletions
52
Documentation/powerpc/dts-bindings/4xx/cpm.txt
Normal file
52
Documentation/powerpc/dts-bindings/4xx/cpm.txt
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
PPC4xx Clock Power Management (CPM) node
|
||||
|
||||
Required properties:
|
||||
- compatible : compatible list, currently only "ibm,cpm"
|
||||
- dcr-access-method : "native"
|
||||
- dcr-reg : < DCR register range >
|
||||
|
||||
Optional properties:
|
||||
- er-offset : All 4xx SoCs with a CPM controller have
|
||||
one of two different order for the CPM
|
||||
registers. Some have the CPM registers
|
||||
in the following order (ER,FR,SR). The
|
||||
others have them in the following order
|
||||
(SR,ER,FR). For the second case set
|
||||
er-offset = <1>.
|
||||
- unused-units : specifier consist of one cell. For each
|
||||
bit in the cell, the corresponding bit
|
||||
in CPM will be set to turn off unused
|
||||
devices.
|
||||
- idle-doze : specifier consist of one cell. For each
|
||||
bit in the cell, the corresponding bit
|
||||
in CPM will be set to turn off unused
|
||||
devices. This is usually just CPM[CPU].
|
||||
- standby : specifier consist of one cell. For each
|
||||
bit in the cell, the corresponding bit
|
||||
in CPM will be set on standby and
|
||||
restored on resume.
|
||||
- suspend : specifier consist of one cell. For each
|
||||
bit in the cell, the corresponding bit
|
||||
in CPM will be set on suspend (mem) and
|
||||
restored on resume. Note, for standby
|
||||
and suspend the corresponding bits can
|
||||
be different or the same. Usually for
|
||||
standby only class 2 and 3 units are set.
|
||||
However, the interface does not care.
|
||||
If they are the same, the additional
|
||||
power saving will be seeing if support
|
||||
is available to put the DDR in self
|
||||
refresh mode and any additional power
|
||||
saving techniques for the specific SoC.
|
||||
|
||||
Example:
|
||||
CPM0: cpm {
|
||||
compatible = "ibm,cpm";
|
||||
dcr-access-method = "native";
|
||||
dcr-reg = <0x160 0x003>;
|
||||
er-offset = <0>;
|
||||
unused-units = <0x00000100>;
|
||||
idle-doze = <0x02000000>;
|
||||
standby = <0xfeff0000>;
|
||||
suspend = <0xfeff791d>;
|
||||
};
|
||||
Loading…
Reference in a new issue