diff options
Diffstat (limited to 'src/soc/intel')
-rw-r--r-- | src/soc/intel/apollolake/include/soc/pm.h | 1 | ||||
-rw-r--r-- | src/soc/intel/apollolake/pmutil.c | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/soc/intel/apollolake/include/soc/pm.h b/src/soc/intel/apollolake/include/soc/pm.h index b40a12fce3..bc50b87d45 100644 --- a/src/soc/intel/apollolake/include/soc/pm.h +++ b/src/soc/intel/apollolake/include/soc/pm.h @@ -108,6 +108,7 @@ #define MC_SMI_STS_BIT 12 #define GPIO_UNLOCK_SMI_STS_BIT 11 #define GPIO_STS_BIT 10 +#define GPE0_STS_BIT 9 /* Datasheet says this is reserved */ #define PM1_STS_BIT 8 #define SWSMI_TMR_STS_BIT 6 #define APM_STS_BIT 5 diff --git a/src/soc/intel/apollolake/pmutil.c b/src/soc/intel/apollolake/pmutil.c index 1d4a55835e..8f222dd244 100644 --- a/src/soc/intel/apollolake/pmutil.c +++ b/src/soc/intel/apollolake/pmutil.c @@ -48,6 +48,7 @@ const char *const *soc_smi_sts_array(size_t *a) [APM_STS_BIT] = "APM", [SWSMI_TMR_STS_BIT] = "SWSMI_TMR", [PM1_STS_BIT] = "PM1", + [GPE0_STS_BIT] = "GPE0 (reserved)", [GPIO_STS_BIT] = "GPIO_SMI", [GPIO_UNLOCK_SMI_STS_BIT] = "GPIO_UNLOCK_SSMI", [MC_SMI_STS_BIT] = "MCSMI", @@ -86,7 +87,11 @@ uint32_t soc_get_smi_status(uint32_t generic_sts) generic_sts |= (1 << PM1_STS_BIT); } - return generic_sts; + /* + * GPE0_STS is reserved in APL/GLK datasheets. For compatibility + * with common code, mask it out so that it is always zero. + */ + return generic_sts & ~(1 << GPE0_STS_BIT); } const char *const *soc_tco_sts_array(size_t *a) |