diff options
author | Duncan Laurie <dlaurie@chromium.org> | 2013-07-31 15:30:41 -0700 |
---|---|---|
committer | Patrick Georgi <patrick@georgi-clan.de> | 2013-12-21 12:02:14 +0100 |
commit | d338b46504bde900a18fc32eff7cda14ba3711b4 (patch) | |
tree | 66dd39436c56ed9a05858944647b5acde30ecd8c /src/ec | |
parent | 7ad61f6262c3056232c414ed9482b7d6f8719948 (diff) |
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>
Diffstat (limited to 'src/ec')
-rw-r--r-- | src/ec/google/chromeec/acpi/ec.asl | 21 | ||||
-rw-r--r-- | src/ec/google/chromeec/ec_commands.h | 5 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/ec/google/chromeec/acpi/ec.asl b/src/ec/google/chromeec/acpi/ec.asl index 24519c272f..31ef90520e 100644 --- a/src/ec/google/chromeec/acpi/ec.asl +++ b/src/ec/google/chromeec/acpi/ec.asl @@ -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" } diff --git a/src/ec/google/chromeec/ec_commands.h b/src/ec/google/chromeec/ec_commands.h index baf16d31f9..d4992a15bf 100644 --- a/src/ec/google/chromeec/ec_commands.h +++ b/src/ec/google/chromeec/ec_commands.h @@ -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 |