mfd: cros_ec: Add host_sleep_event_v1 command
Introduce the command and response structures for the second revision of the host sleep event. These structures are part of a new EC change that enables detection of failure to enter S0ix. The EC waits a kernel-specified timeout (or a default amount of time) for the S0_SLP pin to change, and wakes the system if that change does not occur in time. Signed-off-by: Evan Green <evgreen@chromium.org> Reviewed-by: Rajat Jain <rajatja@chromium.org> Reviewed-by: Guenter Roeck <groeck@chromium.org> Acked-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
Родитель
49a65e3c27
Коммит
afe2bb5c4b
|
@ -2731,6 +2731,63 @@ struct ec_params_host_sleep_event {
|
|||
uint8_t sleep_event;
|
||||
} __packed;
|
||||
|
||||
/*
|
||||
* Use a default timeout value (CONFIG_SLEEP_TIMEOUT_MS) for detecting sleep
|
||||
* transition failures
|
||||
*/
|
||||
#define EC_HOST_SLEEP_TIMEOUT_DEFAULT 0
|
||||
|
||||
/* Disable timeout detection for this sleep transition */
|
||||
#define EC_HOST_SLEEP_TIMEOUT_INFINITE 0xFFFF
|
||||
|
||||
struct ec_params_host_sleep_event_v1 {
|
||||
/* The type of sleep being entered or exited. */
|
||||
uint8_t sleep_event;
|
||||
|
||||
/* Padding */
|
||||
uint8_t reserved;
|
||||
union {
|
||||
/* Parameters that apply for suspend messages. */
|
||||
struct {
|
||||
/*
|
||||
* The timeout in milliseconds between when this message
|
||||
* is received and when the EC will declare sleep
|
||||
* transition failure if the sleep signal is not
|
||||
* asserted.
|
||||
*/
|
||||
uint16_t sleep_timeout_ms;
|
||||
} suspend_params;
|
||||
|
||||
/* No parameters for non-suspend messages. */
|
||||
};
|
||||
} __packed;
|
||||
|
||||
/* A timeout occurred when this bit is set */
|
||||
#define EC_HOST_RESUME_SLEEP_TIMEOUT 0x80000000
|
||||
|
||||
/*
|
||||
* The mask defining which bits correspond to the number of sleep transitions,
|
||||
* as well as the maximum number of suspend line transitions that will be
|
||||
* reported back to the host.
|
||||
*/
|
||||
#define EC_HOST_RESUME_SLEEP_TRANSITIONS_MASK 0x7FFFFFFF
|
||||
|
||||
struct ec_response_host_sleep_event_v1 {
|
||||
union {
|
||||
/* Response fields that apply for resume messages. */
|
||||
struct {
|
||||
/*
|
||||
* The number of sleep power signal transitions that
|
||||
* occurred since the suspend message. The high bit
|
||||
* indicates a timeout occurred.
|
||||
*/
|
||||
uint32_t sleep_transitions;
|
||||
} resume_response;
|
||||
|
||||
/* No response fields for non-resume messages. */
|
||||
};
|
||||
} __packed;
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Smart battery pass-through */
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче