[HD Mini Android Development] tzacapaca:
I found some more things for power management

devs check pls :)

Enabling system for hitting OFF

#echo 1 > /debug/pm_debug/enable_off_mode

By default sleep_while_idle is set to false and enable_off_mode is set to true

CPU Dynamic Voltage Frequency Scaling settings

Enabling ondemand frequency governor

The ondemand governor enables DVFS(frequency/OPP) transitions based on CPU load.

#echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Enabling performance frequency governor

The performance governor keeps the CPU always at the highest frequency.

#echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Enabling powersave frequency governor

The powersave governor keeps the CPU always at the lowest frequency.

#echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Enabling userspace frequency governor

Once this governor is enabled, DVFS( frequency) transitions will be manually triggered by a userspace application by using the CPUfreq sysfs interface

#echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

See all the available operating points

#cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

Application can select any of the available frequency from the above

#echo <Desired Frequancy> > /sys/devices/system/cpu/cpu0/cpufreq/ scaling_setspeed

Checking CPU IDLE states usage

There are seven power states introduced by CPU Idle

The usage and time count for these different states can be checked via

#cat /sys/devices/system/cpu/cpu0/cpuidle/state*/time

#cat /sys/devices/system/cpu/cpu0/cpuidle/state*/usage

Enabling system for hitting OFF

#echo 1 > /debug/pm_debug/enable_off_mode

By default sleep_while_idle is set to false and enable_off_mode is set to true

CPU Dynamic Voltage Frequency Scaling settings

Enabling ondemand frequency governor

The ondemand governor enables DVFS(frequency/OPP) transitions based on CPU load.

#echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Enabling performance frequency governor

The performance governor keeps the CPU always at the highest frequency.

#echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Enabling powersave frequency governor

The powersave governor keeps the CPU always at the lowest frequency.

#echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Enabling userspace frequency governor

Once this governor is enabled, DVFS( frequency) transitions will be manually triggered by a userspace application by using the CPUfreq sysfs interface

#echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

See all the available operating points

#cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

Application can select any of the available frequency from the above

#echo <Desired Frequancy> > /sys/devices/system/cpu/cpu0/cpufreq/ scaling_setspeed

Checking CPU IDLE states usage

There are seven power states introduced by CPU Idle

The usage and time count for these different states can be checked via

#cat /sys/devices/system/cpu/cpu0/cpuidle/state*/time

#cat /sys/devices/system/cpu/cpu0/cpuidle/state*/usage

source: http://processors.wiki.ti.com/index.php/Android_Devkit_Power_Management_Porting_Guide

this is very interesting also:

Saving battery time for mobile devices has been a goal for the industry for many years. With the

advent of smartphones, reduction of energy consumption is even more important since they

consume a lot more energy than the generation of mobile phones before them. Consumers are

demanding longer battery life and greener electronics. One way to meet these demands is to

reduce energy consumption.

In order to make the mobile operating system utilize the Central Processing Unit (CPU) more

efficiently, applications should have different reservations based on how much they need to use

the CPU. A challenge the industry is facing is its lack of knowledge of the behavior of third

party applications. Especially since they are an increasing portion of the applications run on

smartphones. Without knowledge of how third party applications behave, it is hard to make

good reservations for them. If there was a way to dynamically make reservations for the

applications with adequate performance while they are running, the system could use this

information to reduce battery consumption by e.g. clocking down the CPU when a high clock

frequency is not needed. In this master thesis project, an open source resource manager called

ACTORS Resource Manager (ACTORS RM) [5][6] for desktop Linux [57] is ported to the

Android [37] operating system. The resource manager is also optimized for the applications

being run there. A power management patch to the Linux kernel was also used to get greater

control over the CPU’s frequency changes.

source: https://rapidshare.com/files/3398178110/Resource_reservation_and_power_management_in_Android.pdf