[OpenBIOS] r416 - cpu/x86/pc/olpc
svn at openbios.org
svn at openbios.org
Wed May 23 02:13:56 CEST 2007
Author: wmb
Date: 2007-05-23 02:13:56 +0200 (Wed, 23 May 2007)
New Revision: 416
Modified:
cpu/x86/pc/olpc/resume.bth
Log:
Fixed OLPC trac #1554 by clearing the positive and negative edge event status
bits for GPIO pins that are not powered during suspend.
Modified: cpu/x86/pc/olpc/resume.bth
===================================================================
--- cpu/x86/pc/olpc/resume.bth 2007-05-23 00:07:01 UTC (rev 415)
+++ cpu/x86/pc/olpc/resume.bth 2007-05-23 00:13:56 UTC (rev 416)
@@ -325,8 +325,8 @@
si bx cmp
= until
- h# 1840 # di mov \ PM1_STS/EN I/O port number
- di ax in ax di out \ Preserve EN bits and cleare STS bits
+ h# 1840 # dx mov \ PM1_STS/EN I/O port number
+ dx ax in ax dx out \ Preserve EN bits and clear STS bits
h# 38 [bp] si lea \ Save area
@@ -344,6 +344,12 @@
ax dx out \ Write to GPIO control register
4 # dx sub \ Next port address
loopa
+
+ \ Clear edge detects for GPIO pins that are not powered during suspend
+ h# ffff # ax mov
+ h# 1048 # dx mov ax dx out \ Pos edge status
+ h# 104c # dx mov ax dx out \ Neg edge status
+
ax lods h# 1040 # dx mov ax dx out \ Pos edge enable
ax lods h# 1044 # dx mov ax dx out \ Neg edge enable
ax lods h# 103c # dx mov ax dx out \ Low bank lock
@@ -355,6 +361,13 @@
ax dx out \ Write to GPIO control register
4 # dx sub \ Next port address
loopa
+
+ \ Clear edge detects for GPIO pins that are not powered during suspend
+ \ GPIOs 28:24 are in the suspend power well. GPIOs 31:29 don't exist.
+ h# e0ff # ax mov
+ h# 10c8 # dx mov ax dx out \ Pos edge status
+ h# 10cc # dx mov ax dx out \ Neg edge status
+
ax lods h# 10c0 # dx mov ax dx out \ Pos edge enable
ax lods h# 10c4 # dx mov ax dx out \ Neg edge enable
ax lods h# 10bc # dx mov ax dx out \ High bank lock
More information about the OpenBIOS
mailing list