[SeaBIOS] [RFC][PATCH 1/2] acpi: add ASL for Embedded Controller

li guang lig.fnst at cn.fujitsu.com
Thu Apr 18 03:25:29 CEST 2013


在 2013-04-17三的 07:46 -0600,Marc Jones写道:
> What EC is this for? The device and interface is defined by the spec,
> but the offsets and methods are custom for every EC.
> 
> 

you're mostly right,
the specific content ACPI space will vary 
for different boards, this one just for
a common case

> 
> 
> Marc
> 
> 
> On Wed, Apr 17, 2013 at 1:22 AM, liguang <lig.fnst at cn.fujitsu.com>
> wrote:
>         defined at ACPI SPEC v5 chapter 12:
>         "ACPI Embedded Controller Interface Specification"
>         
>         Signed-off-by: liguang <lig.fnst at cn.fujitsu.com>
>         ---
>          src/acpi-dsdt-ec.dsl |  106
>         ++++++++++++++++++++++++++++++++++++++++++++++++++
>          1 files changed, 106 insertions(+), 0 deletions(-)
>          create mode 100644 src/acpi-dsdt-ec.dsl
>         
>         diff --git a/src/acpi-dsdt-ec.dsl b/src/acpi-dsdt-ec.dsl
>         new file mode 100644
>         index 0000000..6bd8edd
>         --- /dev/null
>         +++ b/src/acpi-dsdt-ec.dsl
>         @@ -0,0 +1,106 @@
>         +/*
>         + * This program is free software; you can redistribute it
>         and/or modify
>         + * it under the terms of the GNU General Public License as
>         published by
>         + * the Free Software Foundation; version 2 of the License.
>         + *
>         + * This program is distributed in the hope that it will be
>         useful,
>         + * but WITHOUT ANY WARRANTY; without even the implied
>         warranty of
>         + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
>         the
>         + * GNU General Public License for more details.
>         + *
>         + * You should have received a copy of the GNU General Public
>         License
>         + * along with this program; if not, write to the Free
>         Software
>         + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
>         02110-1301 USA
>         + */
>         +
>         +
>         +Device (EC0)
>         +{
>         +       Name (_HID, EISAID ("PNP0C09"))
>         +       Name(_UID, 1)
>         +
>         +       Method(_CRS, 0)
>         +       {
>         +       Name(BFFR, ResourceTemplate()
>         +       {
>         +               IO(Decode16, 0x62, 0x62, 0, 1)      // ACPI
>         DATA IN/OUT
>         +               IO(Decode16, 0x66, 0x66, 0, 1)      // CMD/STS
>         +               IRQ(Edge, ActiveHigh, Exclusive) {0x0B}
>         +       })
>         +    Return(BFFR)
>         +       }
>         +
>         +       OperationRegion(ECF0, EmbeddedControl, 0, 0xFF)
>         +    Field(ECF2, ByteAcc, Lock, Preserve)
>         +       {
>         +               Offset(1),
>         +               STMP,   8,      // 1,      Sensor Temperature
>         +               ACPW,   8,      // 2,      AC Power (AC
>         Present = 1, else 0)
>         +               LIDS,   8,      // 3,      Lid State (Lid Open
>         = 1, else 0)
>         +               PBNS,   8,      // 4,      Power Button State
>         (Pressed = 1, else 0)
>         +               BTST,   8,      // 5,      Battery Status
>         +               BTCR,   8,      // 6,      Battery Current
>         Rate
>         +               BTCC,   8,      // 7,      Battery Current
>         Capacity
>         +               BTVT,   8,      // 8,      Battery Voltage
>         +               offset(0x10),
>         +               SPTR,   8,      // 5,      SMBus Protocol
>         Register
>         +               SSTS,   8,      // 5,      SMBus Status
>         Register
>         +               SADR,   8,      // 6,      SMBus Address
>         Register
>         +               SCMD,   8,      // 7,      SMBus Command
>         Register
>         +               SBFR,   256,    // 8,      SMBus Block Buffer
>         +               SCNT,   8,      // 40,     SMBus Block Count
>         +       }
>         +
>         +       Method(_REG, 2)
>         +       {
>         +       }
>         +
>         +       /* AC status: present */
>         +       Method(_Q01, 0, NotSerialized)
>         +       {
>         +               Notify (AC, 0x80)
>         +       }
>         +
>         +       /* AC status: dispear*/
>         +       Method(_Q02, 0, NotSerialized)
>         +       {
>         +               Notify (AC, 0x80)
>         +       }
>         +
>         +    Method(_Q04, 0, NotSerialized)
>         +    {
>         +       Notify(LID, 0x80)
>         +    }
>         +
>         +    Method(_Q04, 0, NotSerialized)
>         +    {
>         +       Notify(LID, 0x80)
>         +    }
>         +
>         +       Device(AC)
>         +       {
>         +               Name(_HID, "ACPI0003")
>         +               Name(_UID, 0x00)
>         +               Name(_PCL, Package() { \_SB } )
>         +
>         +               Method(_PSR, 0, NotSerialized)
>         +               {
>         +                       return (ACPW)
>         +               }
>         +
>         +               Method(_STA, 0, NotSerialized)
>         +               {
>         +                       Return (0x0f)
>         +               }
>         +       }
>         +
>         +       Device(LID)
>         +       {
>         +               Name(_HID, "PNP0C0D")
>         +
>         +               Method(_LID, 0, NotSerialized)
>         +               {
>         +                       return (LIDS)
>         +               }
>         +       }
>         +}
>         --
>         1.7.2.5
>         
>         
>         _______________________________________________
>         SeaBIOS mailing list
>         SeaBIOS at seabios.org
>         http://www.seabios.org/mailman/listinfo/seabios
> 
> 
> 
> 
> -- 
> http://se-eng.com





More information about the SeaBIOS mailing list