chromeec: Add event methods for EC requested throttle

Two new events possible from the EC for starting and stopping throttle.

These are handled in a per-board method that is defined under the
thermal zone.  This is not quite where I wanted it but the scoping
rules in ACPI don't let me have a defined external object in the
same scope.

Change-Id: I766f07b4365b29df3daa8e45e88f7c38c645c287
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/63988
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/4415
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
This commit is contained in:
Duncan Laurie 2013-07-31 15:30:41 -07:00 committed by Patrick Georgi
parent 7ad61f6262
commit d338b46504
2 changed files with 26 additions and 0 deletions

View File

@ -23,6 +23,9 @@
* re-evaluate their _PPC and _CST tables.
*/
// Mainboard specific throttle handler
External (\_TZ.THRT, MethodObj)
Device (EC0)
{
Name (_HID, EISAID ("PNP0C09"))
@ -226,6 +229,24 @@ Device (EC0)
Store ("EC: KEY PRESSED", Debug)
}
// Throttle Start
Method (_Q12, 0, NotSerialized)
{
Store ("EC: THROTTLE START", Debug)
If (CondRefOf (\_TZ.THRT, Local0)) {
\_TZ.THRT (1)
}
}
// Throttle Stop
Method (_Q13, 0, NotSerialized)
{
Store ("EC: THROTTLE STOP", Debug)
If (CondRefOf (\_TZ.THRT, Local0)) {
\_TZ.THRT (0)
}
}
#include "ac.asl"
#include "battery.asl"
}

View File

@ -239,6 +239,11 @@ enum host_event_code {
/* Shutdown due to battery level too low */
EC_HOST_EVENT_BATTERY_SHUTDOWN = 17,
/* Suggest that the AP throttle itself */
EC_HOST_EVENT_THROTTLE_START = 18,
/* Suggest that the AP resume normal speed */
EC_HOST_EVENT_THROTTLE_STOP = 19,
/*
* The high bit of the event mask is not used as a host event code. If
* it reads back as set, then the entire event mask should be