On Thu, Oct 07, 2010 at 12:07:16PM -0700, Victor Gallardo wrote: >Add suspend/resume support for all 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 <vgalla...@apm.com> >--- > Documentation/powerpc/dts-bindings/4xx/cpm.txt | 43 +++ > arch/powerpc/Kconfig | 13 +- > arch/powerpc/platforms/44x/Makefile | 5 +- > arch/powerpc/sysdev/Makefile | 1 + > arch/powerpc/sysdev/ppc4xx_cpm.c | 339 ++++++++++++++++++++++++ > 5 files changed, 397 insertions(+), 4 deletions(-) > create mode 100644 Documentation/powerpc/dts-bindings/4xx/cpm.txt > create mode 100644 arch/powerpc/sysdev/ppc4xx_cpm.c > >diff --git a/Documentation/powerpc/dts-bindings/4xx/cpm.txt >b/Documentation/powerpc/dts-bindings/4xx/cpm.txt >new file mode 100644 >index 0000000..9635df8 >--- /dev/null >+++ b/Documentation/powerpc/dts-bindings/4xx/cpm.txt >@@ -0,0 +1,43 @@ >+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.
So the difference, from what I can tell, between standby and suspend is really only what devices are turned off. I don't see any code to put the DRAM into self-refresh mode, etc. If that is the case, perhaps we could add a bit of description as to the different kinds of devices that may be disabled in one mode but not the other. >+ >+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>; >+ standby = <0xfeff791d>; One of these two should be illustrating suspend. josh _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev