intel/apollolake: Add power management utility function

This patch adds a power management utility function to
clear wake status bits in ACPI GPE0 registers. We need
to call this function before going to sleep from
common smi handler function.

BUG=chrome-os-partner:55583
BRANCH=None
TEST=Verified that system goes to sleep on lidclose and
     powerd_dbus_suspend command issued from built-in
     keyboard.

Change-Id: Icd095d377c82f2e154f2e2db773f737aa49cda64
Signed-off-by: Shaunak Saha <shaunak.saha@intel.com>
Reviewed-on: https://review.coreboot.org/16298
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
diff --git a/src/soc/intel/apollolake/pmutil.c b/src/soc/intel/apollolake/pmutil.c
index aaa4018..39edc45 100644
--- a/src/soc/intel/apollolake/pmutil.c
+++ b/src/soc/intel/apollolake/pmutil.c
@@ -246,6 +246,16 @@
 	disable_gpe(~0);
 }
 
+/* Clear the gpio gpe0 status bits in ACPI registers */
+void clear_gpi_gpe_sts(void)
+{
+	int i;
+
+	for (i = 1; i < GPE0_REG_MAX; i++) {
+		uint32_t gpe_sts = inl(ACPI_PMIO_BASE + GPE0_STS(i));
+		outl(gpe_sts, ACPI_PMIO_BASE + GPE0_STS(i));
+	}
+}
 
 static uint32_t reset_gpe_status(void)
 {