blob: 368afa828dcff52fc4c0a4d8f53f87a093b819f1 [file] [log] [blame]
/*
* This file is part of the coreboot project.
*
* Copyright (c) 2011 Sven Schnelle <svens@stackframe.org>
*
* 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
*/
#include "smi.h"
Device(EC)
{
Name (_HID, EISAID("PNP0C09"))
Name (_UID, 0)
Name (_GPE, 28)
Mutex (ECLK, 0)
OperationRegion(ERAM, EmbeddedControl, 0x00, 0x100)
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x05),
HSPA, 1,
Offset (0x0C),
LEDS, 8, /* LED state */
Offset (0x2a),
EVNT, 8, /* write will trigger EC event */
Offset (0x3a),
AMUT, 1, /* Audio Mute */
Offset (0x3B),
, 1,
KBLT, 1, /* Keyboard Light */
, 2,
USPW, 1, /* USB Power enable */
Offset (0x4e),
WAKE, 16,
Offset (0x78),
TMP0, 8, /* Thermal Zone 0 temperature */
TMP1, 8, /* Thermal Zone 1 temperature */
Offset (0x81),
PAGE, 8 /* Information Page Selector */
}
Method (_CRS, 0)
{
Name (ECMD, ResourceTemplate()
{
IO (Decode16, 0x62, 0x62, 1, 1)
IO (Decode16, 0x66, 0x66, 1, 1)
})
Return (ECMD)
}
Method (LED, 1, NotSerialized)
{
Store(Arg0, LEDS)
}
Method (_INI, 0, NotSerialized)
{
}
Method (MUTE, 1, NotSerialized)
{
Store(Arg0, AMUT)
}
Method (USBP, 1, NotSerialized)
{
Store(Arg0, USPW)
}
/* Sleep Button pressed */
Method(_Q13, 0, NotSerialized)
{
Notify(\_SB.PCI0.LPCB.EC.SLPB, 0x80)
}
/* Brightness up GPE */
Method(_Q14, 0, NotSerialized)
{
\DSPC.BRTU ()
}
/* Brightness down GPE */
Method(_Q15, 0, NotSerialized)
{
\DSPC.BRTD()
}
/* AC status change: present */
Method(_Q26, 0, NotSerialized)
{
Notify (AC, 0x80)
}
/* AC status change: not present */
Method(_Q27, 0, NotSerialized)
{
Notify (AC, 0x80)
Store(0x50, EVNT)
}
Method(_Q2A, 0, NotSerialized)
{
Notify(\_SB.PCI0.LPCB.EC.LID, 0x80)
}
Method(_Q2B, 0, NotSerialized)
{
Notify(\_SB.PCI0.LPCB.EC.LID, 0x80)
}
#include "ac.asl"
#include "battery.asl"
#include "sleepbutton.asl"
#include "lid.asl"
#include "beep.asl"
#include "thermal.asl"
#include "systemstatus.asl"
}