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.

<strong>Advanced</strong> <strong>Configuration</strong> <strong>and</strong> <strong>Power</strong> <strong>Interface</strong> <strong>Specification</strong><br />

}<br />

Return(0xFFFFFFFF)<br />

}<br />

{<br />

...<br />

Store(Store(P2, \_SB.I2C1.P2), BUFF)<br />

If(LEqual(STAT, 0x00))<br />

//Transaction was _NOT_successful<br />

Return(0xFFFFFFFF)<br />

}<br />

}<br />

Name(_DEP, Package() {"\\_SB.I2C1"}) //Identify the OpRegion dependency for this device<br />

9.19 Generic Buttons Device<br />

The Generic Button device is a st<strong>and</strong>ard device for reporting button events via hardware interrupts,<br />

<strong>and</strong> mapping those interrupts to specific usages defined in the Human <strong>Interface</strong> Device (HID)<br />

specification. In order to express the functionality of a button to the OS, two pieces of information<br />

are required: Usage of the HID Control, <strong>and</strong> Usage of the HID Collection that the Control belongs<br />

to. A Usage is a combination of a Usage Page <strong>and</strong> Usage ID. For example, the Volume Up button is<br />

identified as the Volume Up Usage (Usage Page 0x0C, Usage Id 0xE9) in the Consumer Control<br />

Collection (Usage Page 0x0C, Usage Id 0x01).<br />

The Plug <strong>and</strong> Play ID of the Generic Button device is ACPI0011.<br />

Note: If the <strong>Power</strong> button is described using this device, it must also support the <strong>Power</strong> Button Override<br />

feature defined in Section 4.8.2.2.1.3 <strong>Power</strong> Button Override.<br />

Table 9-267 Generic Buttons Device Child Objects<br />

Object<br />

_CRS<br />

_DSD<br />

Description<br />

Lists the resources consumed by the Generic Button device. Only interrupt resources (GpioInt()<br />

<strong>and</strong> Interrupt() ) are valid for this device. Each interrupt listed must signal one distinct button<br />

event.<br />

Provides a list of HID Button Descriptors, as defined by UUID FA6BD625-9CE8-470D-A2C7-<br />

B3CA36C4282E. (See http://www.uefi.org/sites/default/files/resources/_DSD-HIDbuttondescriptor-UUID.pdf).<br />

Only HID 2-state button usages are valid for the descriptors<br />

returned for this device.<br />

Note: If there are more HID Button Descriptors returned by _DSD than there are interrupts listed in<br />

_CRS, behavior is OS-specific.<br />

9.19.1 Button Interrupts<br />

Interrupts for the Generic Buttons Device are required to be edge-triggered <strong>and</strong> not level-triggered<br />

since there is no interface defined for the driver to quiesce the interrupt line once the interrupt is<br />

received. The polarity (ActiveLow/High vs. ActiveBoth) of the interrupt is determined by the Usage<br />

Type of the HID Usage associated with the interrupt, as described in Table 9-268.<br />

552 April, 2015 Version 6.0

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

Saved successfully!

Ooh no, something went wrong!