summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/power.h10
-rw-r--r--power/common.c12
2 files changed, 21 insertions, 1 deletions
diff --git a/include/power.h b/include/power.h
index 9e0c29bd1b..b5c2771d70 100644
--- a/include/power.h
+++ b/include/power.h
@@ -83,6 +83,16 @@ uint32_t power_get_signals(void);
int power_signal_is_asserted(const struct power_signal_info *s);
/**
+ * Enable interrupt for provided input signal.
+ */
+int power_signal_enable_interrupt(enum gpio_signal signal);
+
+/**
+ * Disable interrupt for provided input signal.
+ */
+int power_signal_disable_interrupt(enum gpio_signal signal);
+
+/**
* Check for required inputs
*
* @param want Mask of signals which must be present (one or more
diff --git a/power/common.c b/power/common.c
index d17a0c9336..50a8096e0b 100644
--- a/power/common.c
+++ b/power/common.c
@@ -82,7 +82,17 @@ static int power_signal_get_level(enum gpio_signal signal)
return gpio_get_level(signal);
}
-static int power_signal_enable_interrupt(enum gpio_signal signal)
+int power_signal_disable_interrupt(enum gpio_signal signal)
+{
+#ifdef CONFIG_ESPI_VW_SIGNALS
+ /* Check signal is from GPIOs or VWs */
+ if ((int)signal > VW_SIGNAL_BASE)
+ return espi_vw_disable_wire_int(signal);
+#endif
+ return gpio_disable_interrupt(signal);
+}
+
+int power_signal_enable_interrupt(enum gpio_signal signal)
{
#ifdef CONFIG_ESPI_VW_SIGNALS
/* Check signal is from GPIOs or VWs */