[openfirmware] [commit] r2573 - in cpu/arm: mmp2 olpc/1.75

repository service svn at openfirmware.info
Tue Oct 4 02:42:46 CEST 2011


Author: wmb
Date: Tue Oct  4 02:42:45 2011
New Revision: 2573
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2573

Log:
OLPC XO-1.75 - trac #11095 - implemented lid switch power-off.

Modified:
   cpu/arm/mmp2/timer.fth
   cpu/arm/olpc/1.75/switches.fth

Modified: cpu/arm/mmp2/timer.fth
==============================================================================
--- cpu/arm/mmp2/timer.fth	Tue Oct  4 02:05:46 2011	(r2572)
+++ cpu/arm/mmp2/timer.fth	Tue Oct  4 02:42:45 2011	(r2573)
@@ -168,8 +168,13 @@
    then
 ;
 code wfi   ( -- )  wfi   c;
+
+defer do-lid
+: lid-off ( -- )  ['] noop to do-lid  ;
+lid-off
+
 : safe-idle  ( -- )
    can-idle?  if  wfi  then
-   \ do-lid
+   do-lid
 ;
 ' safe-idle to stdin-idle

Modified: cpu/arm/olpc/1.75/switches.fth
==============================================================================
--- cpu/arm/olpc/1.75/switches.fth	Tue Oct  4 02:05:46 2011	(r2572)
+++ cpu/arm/olpc/1.75/switches.fth	Tue Oct  4 02:42:45 2011	(r2573)
@@ -36,6 +36,39 @@
    ['] all-switch-states catch
 ;
 
+false value lid-already-down?
+0 value lid-down-time
+d# 10000 constant lid-shutdown-ms
+d#  2000 constant lid-warning-ms
+0 value lid-warned?
+
+: ?lid-shutdown  ( -- )
+   lid?  if
+      lid-already-down?  if
+         get-msecs lid-down-time -               ( ms )
+
+         dup lid-warning-ms >=  lid-warned? 0=  and  if
+            ." Lid switch is active - Powering off in 8 seconds" cr
+            ." Type  lid-off  to disable this function" cr
+            true to lid-warned?
+         then                                    ( ms )
+
+         lid-shutdown-ms >=  if
+            ." Powering off after 10 seconds of lid down" cr
+            power-off
+         then
+      else
+         get-msecs to lid-down-time
+         true to lid-already-down?
+      then
+   else
+      false to lid-already-down?
+      false to lid-warned?
+   then
+;
+: lid-on  ( -- )  ['] ?lid-shutdown to do-lid  ;
+' lid-on to do-lid
+
 end-package
 
 \ LICENSE_BEGIN



More information about the openfirmware mailing list