Can an embedded controller (EC) report both wake and non-wake events?
Yes. However, separate signals must be used. The EC’s service interrupt signal (used to generate a system control interrupt (SCI) to notify the EC driver that service is required) must be dedicated to runtime (S0 state) communication with the EC. Any wake-up event(s) must be connected to a separate general purpose event (GPE) register bit. This follows from the ACPI specification’s requirement to not mix wake and non-wake events on the same GPE. The reason for this is wake and non-wake events must be enabled and disabled independently of each other. Wake-up GPEs will be disabled until they are explicitly enabled due to a request from a driver or application. This obviously will have a very bad effect on the normal operation of a device that depends on a non-wake, runtime event connected to the same GPE. In the specific case of the EC there exists a time window during which wrong behavior can occur if the EC’s GPE should happen to be enabled as a wake event. When going to sleep, the ope