27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACPI Embedded Controller <strong>Interface</strong> <strong>Specification</strong><br />

After ownership is acquired, the protocol always consists of the passing of a comm<strong>and</strong> byte. The<br />

comm<strong>and</strong> byte will indicate the type of action to be taken. Following the comm<strong>and</strong> byte, zero or<br />

more data bytes can be exchanged in either direction. The data bytes are defined according to the<br />

comm<strong>and</strong> byte that is transferred.<br />

The embedded controller also has two status bits that indicate whether the registers have been read.<br />

This is used to ensure that the host or embedded controller has received data from the embedded<br />

controller or host. When the host writes data to the comm<strong>and</strong> or data register of the embedded<br />

controller, the input buffer flag (IBF) in the status register is set within 1 microsecond. When the<br />

embedded controller reads this data from the input buffer, the input buffer flag is reset. When the<br />

embedded controller writes data into the output buffer, the output buffer flag (OBF) in the status<br />

register is set. When the host processor reads this data from the output buffer, the output buffer flag<br />

is reset.<br />

12.8 Embedded Controller Description Information<br />

Certain aspects of the embedded controller’s operation have OEM-definable values associated with<br />

them. The following is a list of values that are defined in the software layers of the ACPI<br />

specification:<br />

• Status flag indicating whether the interface requires the use of the Global Lock.<br />

• Bit position of embedded controller interrupt in general-purpose status register.<br />

• Decode address for comm<strong>and</strong>/status register.<br />

• Decode address for data register.<br />

• Base address <strong>and</strong> query value of any EC-SMBus controller.<br />

For implementation details of the above listed information, see Section 12.11, “Defining an<br />

Embedded Controller Device in ACPI Namespace,” <strong>and</strong> Section 12.12, “Defining an EC SMBus<br />

Host Controller in ACPI Namespace.”<br />

An embedded controller will require the inclusion of the GLK method in its ACPI namespace if<br />

potentially contentious accesses to device resources are performed by non-OS code. See<br />

Section 6.5.7, “_GLK (Global Lock)” for details about the _GLK method.<br />

12.9 SMBus Host Controller <strong>Interface</strong> via Embedded<br />

Controller<br />

This section specifies a st<strong>and</strong>ard interface that an ACPI-compatible OS can use to communicate with<br />

embedded controller-based SMBus host controllers (EC-SMB-HC). This interface allows the host<br />

processor (under control of OSPM) to manage devices on the SMBus. Typical devices residing on<br />

the SMBus include Smart Batteries, Smart Battery Chargers, contrast/backlight control, <strong>and</strong><br />

temperature sensors.<br />

The EC-SMB-HC interface consists of a block of registers that reside in embedded controller space.<br />

These registers are used by software to initiate SMBus transactions <strong>and</strong> receive SMBus<br />

notifications. By using a well-defined register set, OS software can be written to operate with any<br />

vendor’s embedded controller hardware.<br />

Version 6.0 645

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

Saved successfully!

Ooh no, something went wrong!