27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACPI Hardware <strong>Specification</strong><br />

4.8.2.2.2 Sleep Button<br />

When using the two button model, ACPI supports a second button that when pressed will request<br />

OSPM to transition the platform between the G0 working <strong>and</strong> G1 sleeping states. Support for a sleep<br />

button is indicated by a combination of the SLEEP_BUTTON flag <strong>and</strong> the sleep button device<br />

object:<br />

Table 4-14 Sleep Button Support<br />

Indicated Support SLEEP_BUTTON Flag Sleep Button Device Object<br />

No sleep button Set Absent<br />

Fixed hardware sleep button Clear Absent<br />

Control method sleep button Set Present<br />

4.8.2.2.2.1 Fixed Hardware Sleeping Button<br />

SLPBTN#<br />

Debounce<br />

Logic<br />

SLPBTN<br />

State machine<br />

SLPBTN_STS<br />

PM1x_STS.9<br />

SLPBTN Event<br />

SLPBTN_EN<br />

PM1x_EN.9<br />

Figure 4-17 Fixed Hardware Sleep Button Logic<br />

The fixed hardware sleep button has its event programming model in the PM1x_EVT_BLK. This<br />

logic consists of a single enable bit <strong>and</strong> sticky status bit. When the user presses the sleep button, the<br />

sleep button status bit (SLPBTN_STS) is unconditionally set. Additionally, if the sleep button<br />

enable bit (SLPBTN_EN) is set, <strong>and</strong> the sleep button status bit is set (SLPBTN_STS, due to a button<br />

press) while the system is in the G0 state, then an SCI is generated. OSPM responds to the event by<br />

clearing the SLPBTN_STS bit. The sleep button logic provides debounce logic that sets the<br />

SLPBTN_STS bit on the button press “edge.”<br />

While the system is sleeping (in either the S0, S1, S2, S3 or S4 states), any further sleep button press<br />

(after the button press that caused the system transition into the sleeping state) sets the sleep button<br />

status bit (SLPBTN_STS) <strong>and</strong> wakes the system if the SLP_EN bit is set. OSPM responds by<br />

clearing the sleep button status bit <strong>and</strong> waking the system.<br />

4.8.2.2.2.2 Control Method Sleeping Button<br />

The sleep button programming model can also use the generic hardware programming model. This<br />

allows the sleep button to reside in any of the generic hardware address spaces (for example, the<br />

embedded controller) instead of fixed space. If the sleep button is implemented via generic<br />

hardware, then the OEM needs to define the sleep button as a device with an _HID object value of<br />

“PNP0C0E”, which then identifies this device as the sleep button to OSPM. The AML event h<strong>and</strong>ler<br />

then generates a Notify comm<strong>and</strong> to notify OSPM that a sleep button event was generated. While in<br />

the working state, a sleep button press is a user request to transition the system into the sleeping (G1)<br />

state. In these cases the sleep button event h<strong>and</strong>ler issues the Notify comm<strong>and</strong> with the device<br />

specific code of 0x80. This will indicate to OSPM to pass control to the sleep button driver<br />

(PNP0C0E) with the knowledge that the user is requesting a transition out of the G0 state. Upon<br />

Version 6.0 79

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!