summaryrefslogtreecommitdiff
path: root/src/soc/intel
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel')
-rw-r--r--src/soc/intel/apollolake/include/soc/pm.h1
-rw-r--r--src/soc/intel/apollolake/pmutil.c7
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)