Power Management Tips: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
m (Reverted edits by 89.19.172.22 (Talk) to last version by Leejc)
 
(2 intermediate revisions by 2 users not shown)
Line 12: Line 12:
struct input_event ev;
struct input_event ev;
input_fd = open("/dev/input/event0", O_RDONLY);
input_fd = open("/dev/input/event0", O_RDONLY);
read(input_fd,
read(input_fd, &event, sizeof(struct input_event));
if (ev.type == EV_SW && ev.code == SW_LID) {
if (ev.value == 1)
lid_down();
else
lid_up();
}

=== DCON sleep ===

The [[DCON]] can be put to sleep (ie - blanked). This is useful for those times when the system should stay up, but the [[DCON]] is drawing too much power. To put it to sleep:

echo "1" > /sys/devices/platform/dcon/sleep

and to wake back up:

echo "0" > /sys/devices/platform/dcon/sleep

This is particularly useful when combined with the lid events (above).

[[Category:Software development]]
[[Category:Battery & Power]]

Latest revision as of 06:55, 17 December 2008

Power Management Tips and Tricks

These are tips and tricks for saving power on the XO platform.

Lid events

Starting with the B2 platform, we now have the capability to get events when the lid is closed and opened. The events can be collected along with the power button event from the geode_pm input device. Here is a bit of pseudo code for doing that:

#include <linux/event.h>

struct input_event ev;
input_fd = open("/dev/input/event0", O_RDONLY);
read(input_fd, &event, sizeof(struct input_event));
if (ev.type == EV_SW && ev.code == SW_LID) {
 if (ev.value == 1)
   lid_down();
 else
   lid_up();
}

DCON sleep

The DCON can be put to sleep (ie - blanked). This is useful for those times when the system should stay up, but the DCON is drawing too much power. To put it to sleep:

echo "1" > /sys/devices/platform/dcon/sleep 

and to wake back up:

echo "0" > /sys/devices/platform/dcon/sleep

This is particularly useful when combined with the lid events (above).