.\" $NetBSD: acpiec.4,v 1.6 2010/02/27 20:39:42 snj Exp $
.\"
.\" Copyright (c) 2002, 2004, 2010 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd February 27, 2010
.Dt ACPIEC 4
.Os
.Sh NAME
.Nm acpiec
.Nd ACPI Embedded Controller
.Sh SYNOPSIS
.Cd "acpiec* at acpi?"
.Cd "acpiecdt* at acpi?"
.Sh DESCRIPTION
The
.Nm
driver supports ACPI Embedded Controllers.
.Pp
An ACPI Embedded Controller
.Pq Tn EC
is typically a small microprocessor that is responsible for various tasks
related to
.Tn ACPI .
The primary task is to handle
.Tn ACPI
specific interrupts, which are mapped to so-called
.Tn ACPI
General Purpose Events
.Pq Tn GPEs .
Other possible functions include embedded access to other buses such as the
.Xr iic 4 .
.Pp
The
.Tn ACPI
specific events range from user initiated events to events triggered by
the hardware.
When such an event occurs, typically either a System Management Interrupt
.Pq Tn SMI
or a System Control Interrupt
.Pq Tn SCI
is raised.
The latter is an active, visible, shareable, level interrupt.
On most Intel chipsets
.Tn SCI
is hardwired to the interrupt number 9.
The main task of an
.Tn EC
is to raise a system control interrupt.
.Pp
All GPEs generate SCIs.
A typical example of the internal wiring of
.Tn GPEs
could involve
.Xr gpio 4 :
when, e.g., the
.Tn AC
adapter is connected, a certain
.Tn GPIO
line becomes active, a given
.Tn GPE
is flagged, and a
.Tn SCI
interrupt is raised by the
.Tn EC ,
leading to execution of
.Tn ACPI
machine code in order to locate the handler associated with the event.
A corresponding driver,
.Xr acpiacad 4
in this case, will finally finish the processing of the event.
.Pp
Due to the reasons described above, majority of
.Tn ACPI
specific drivers are dysfunctional without
.Nm .
It is therefore recommended that
.Nm
is always enabled,
even though it may not be required on some older systems.
.Sh SEE ALSO
.Xr acpi 4
.Sh HISTORY
The
.Nm
driver
appeared in
.Nx 1.6 .
.Sh CAVEATS
Many machines depend on early attachment of
.Nm .
In such cases the information required by
.Nm
should be available as a separate and optional
Embedded Controller Descriptor Table
.Pq Tn ECDT .
If an
.Tn ECDT
is not available or early attachment can not be carried out due other reasons,
the initialization of the whole
.Xr acpi 4
subsystem may be problematic.