coreboot-kgpe-d16/src/ec
Jenny TC 1dfc2c3e54 google/chromeec: Enable unified host event programming interface
Unified Host Event Programming Interface (UHEPI) enables a unified host
command EC_CMD_PROGRAM_HOST_EVENT to set/get/clear different host events.
Old host event commands (0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E,
0x8F) is supported for backward compatibility. But newer version of
BIOS/OS is expected to use UHEPI command (EC_CMD_PROGRAM_HOST_EVENT)

The UHEPI also enables the active and lazy wake masks. Active wake mask
is the mask that is programmed in the LPC driver (i.e. the mask that is
actively used by LPC driver for waking the host during suspended state).
It is same as the current wake mask that is set by the smihandler on host
just before entering sleep state S3/S5. On the other hand, lazy wake masks
are per-sleep masks (S0ix, S3, S5) so that they can be used by EC to set
the active wake mask depending upon the type of sleep that the host has
entered. This allows the host BIOS to perform one-time programming of
the wake masks for each supported sleep type and then EC can take care
of appropriately setting the active mask when host enters a particular
sleep state.

BRANCH=none
BUG=b:63969337
TEST=verify masks with ec hostevent command on S0,S3,S5 and S0ix
1). Verified wake masks with ec hostevent command on S0,S3,S5 and S0ix
2). suspend_stress_test with S3 and S0ix
3). Verified "mosys eventlog list" in S3 and s0ix resume to confirm
	wake sources (Lid, power buttton and Mode change)
4). Verified "mosys eventlog list" in S5 resume to confirm wake sources
	(Power Button)
5). Verified above scenarios with combination of Old BIOS + New EC and
    New BIOS + Old EC

Change-Id: I4917a222c79b6aaecb71d7704ffde57bf3bc99d9
Signed-off-by: Jenny TC <jenny.tc@intel.com>
Reviewed-on: https://review.coreboot.org/21085
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
2018-01-17 17:10:32 +00:00
..
acpi ec/acpi: add mechanisms to clear EC output queue 2017-11-07 12:26:42 +00:00
compal/ene932 device/pnp: remove struct io_info 2017-06-13 15:21:58 +02:00
google/chromeec google/chromeec: Enable unified host event programming interface 2018-01-17 17:10:32 +00:00
hp/kbc1126 ec/hp/kbc1126: change the default offset of the blobs 2017-12-25 14:44:23 +00:00
kontron/it8516e device/pnp: remove struct io_info 2017-06-13 15:21:58 +02:00
lenovo ec/h8: Store PWRS and notify CPU on AC power plug/unplug events 2018-01-17 17:08:22 +00:00
purism/librem ec/purism/librem: fix battery present rate 2017-09-19 14:11:07 +00:00
quanta ec/quanta/it8518: add missing HID to SIO device 2017-09-19 14:11:26 +00:00
roda/it8518 device/pnp: remove struct io_info 2017-06-13 15:21:58 +02:00
smsc/mec1308 ec/mec1308: Fix fan control ACPI 2017-07-08 19:06:00 +00:00
ec.h mainboards,ec: provide common declaration for mainboard_ec_init() 2016-09-26 23:53:12 +02:00