blob: fc0ae547e2a15dbc80dde630b60d1bba29946c6d [file] [log] [blame]
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2007-2009 coresystems GmbH
*
* 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)
Name (_GPE, 23) // GPI07 / GPE23 -> Runtime SCI
Name (ECON, 0)
Name (QEVT, 0)
OperationRegion(ERAM, EmbeddedControl, 0x00, 0xff)
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset(0x04), // Command interface
CMCM, 8,
CMD1, 8,
CMD2, 8,
CMD3, 8,
Offset(0x18), // SMBus
SMPR, 8,
SMST, 8,
SMAD, 8,
SMCM, 8,
Offset(0x1c),
SMW0, 16,
//SMD0, 264,
Offset(0x3d),
SMAA, 8,
Offset(0x78), // GPIs
P60S, 1,
P61S, 1,
P62S, 1,
P63S, 1,
P64S, 1,
P65S, 1,
P66S, 1,
P67S, 1,
Offset(0x83), // Thermal
RTMP, 8,
TML0, 8,
TMH0, 8,
Offset(0x87),
TMCR, 8,
Offset(0x89),
TML1, 8,
TMH1, 8
}
Method (_CRS, 0)
{
Name (ECMD, ResourceTemplate()
{
IO (Decode16, 0x62, 0x62, 1, 1)
IO (Decode16, 0x66, 0x66, 1, 1)
})
Return (ECMD)
}
Method (_REG, 2)
{
// This method is needed by Windows XP/2000 for
// EC initialization before a driver is loaded
If (LEqual(Arg0, 0x03)) {
Store (Arg1, ECON)
}
}
// EC Query methods
Method (_Q11, 0)
{
Store("_Q11: Fn-F8 (Sleep Button) pressed", Debug)
Notify(SLPB, 0x80)
}
Method (_Q12, 0)
{
Store("_Q12: Fn-F9 (Display Switch) pressed", Debug)
// Store(1, TLST)
// HKDS(10)
}
Method (_Q30, 0)
{
Store("_Q30: AC In/Out", Debug)
Notify(ADP1, 0x80) // Tell the Power Adapter
PNOT() // and the CPU and Battery
}
Method (_Q31, 0)
{
Store("_Q31: LID Open/Close", Debug)
Notify(LID0, 0x80)
}
Method (_Q32, 0)
{
Store("_Q32: Battery 1 In/Out", Debug)
If (ECON) {
Store (P62S, Local0)
If (Not(Local0)) {
Notify(BAT1, 0x80)
}
}
}
Method (_Q33, 0)
{
Store("_Q33: Battery 2 In/Out", Debug)
If (ECON) {
Store (P63S, Local0)
If (Not(Local0)) {
Notify(BAT2, 0x80)
}
}
}
Method (_Q34, 0)
{
Store("_Q34: LPT/FDD", Debug)
// PHSS(0x70)
}
Method (_Q35, 0)
{
Store("_Q35: Processor is hot", Debug)
}
Method (_Q36, 0)
{
Store("_Q36: Thermal Warning", Debug)
}
Method (_Q37, 0)
{
Store("_Q37: PME", Debug)
}
Method (_Q38, 0)
{
Store("_Q38: Thermal", Debug)
}
Method (_Q39, 0)
{
Store("_Q39: Thermal", Debug)
}
// TODO Scope _SB devices for AC power, LID, Power button
}