addp3: Use virtual wire for calculating power state
This commit is contained in:
@ -34,10 +34,10 @@ extern struct Gpio __code PWR_BTN_N;
|
|||||||
extern struct Gpio __code PWR_SW_N;
|
extern struct Gpio __code PWR_SW_N;
|
||||||
extern struct Gpio __code SLP_SUS_N;
|
extern struct Gpio __code SLP_SUS_N;
|
||||||
#define HAVE_SUS_PWR_ACK 0
|
#define HAVE_SUS_PWR_ACK 0
|
||||||
extern struct Gpio __code SUSB_N_PCH;
|
#define HAVE_SUSB_N_PCH 0
|
||||||
extern struct Gpio __code SUSC_N_PCH;
|
#define HAVE_SUSC_N_PCH 0
|
||||||
extern struct Gpio __code VA_EC_EN;
|
extern struct Gpio __code VA_EC_EN;
|
||||||
extern struct Gpio __code WLAN_EN;
|
#define HAVE_WLAN_EN 0
|
||||||
extern struct Gpio __code WLAN_PWR_EN;
|
extern struct Gpio __code WLAN_PWR_EN;
|
||||||
extern struct Gpio __code XLP_OUT;
|
extern struct Gpio __code XLP_OUT;
|
||||||
|
|
||||||
|
@ -64,9 +64,14 @@
|
|||||||
#define HAVE_SLP_SUS_N 1
|
#define HAVE_SLP_SUS_N 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_XLP_OUT
|
#ifndef HAVE_SUSB_N_PCH
|
||||||
#define HAVE_XLP_OUT 1
|
#define HAVE_SUSB_N_PCH 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_SUSC_N_PCH
|
||||||
|
#define HAVE_SUSC_N_PCH 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_SUSWARN_N
|
#ifndef HAVE_SUSWARN_N
|
||||||
#define HAVE_SUSWARN_N 1
|
#define HAVE_SUSWARN_N 1
|
||||||
#endif
|
#endif
|
||||||
@ -128,15 +133,31 @@ enum PowerState power_state = POWER_STATE_OFF;
|
|||||||
enum PowerState calculate_power_state(void) {
|
enum PowerState calculate_power_state(void) {
|
||||||
//TODO: Deep Sx states using SLP_SUS#
|
//TODO: Deep Sx states using SLP_SUS#
|
||||||
|
|
||||||
|
#if HAVE_SUSB_N_PCH
|
||||||
if (gpio_get(&SUSB_N_PCH)) {
|
if (gpio_get(&SUSB_N_PCH)) {
|
||||||
// S3, S4, and S5 planes powered
|
// S3, S4, and S5 planes powered
|
||||||
return POWER_STATE_S0;
|
return POWER_STATE_S0;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
// Use eSPI virtual wire if there is no dedicated GPIO
|
||||||
|
if (vw_get(&VW_SLP_S3_N)) {
|
||||||
|
// S3, S4, and S5 planes powered
|
||||||
|
return POWER_STATE_S0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAVE_SUSC_N_PCH
|
||||||
if (gpio_get(&SUSC_N_PCH)) {
|
if (gpio_get(&SUSC_N_PCH)) {
|
||||||
// S4 and S5 planes powered
|
// S4 and S5 planes powered
|
||||||
return POWER_STATE_S3;
|
return POWER_STATE_S3;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
// Use eSPI virtual wire if there is no dedicated GPIO
|
||||||
|
if (vw_get(&VW_SLP_S4_N)) {
|
||||||
|
// S4 and S5 planes powered
|
||||||
|
return POWER_STATE_S3;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (gpio_get(&EC_RSMRST_N)) {
|
if (gpio_get(&EC_RSMRST_N)) {
|
||||||
// S5 plane powered
|
// S5 plane powered
|
||||||
|
Reference in New Issue
Block a user