summaryrefslogtreecommitdiff
path: root/zephyr/shim/src/power_host_sleep_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr/shim/src/power_host_sleep_api.c')
-rw-r--r--zephyr/shim/src/power_host_sleep_api.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/zephyr/shim/src/power_host_sleep_api.c b/zephyr/shim/src/power_host_sleep_api.c
index 99d535bdff..95d9496782 100644
--- a/zephyr/shim/src/power_host_sleep_api.c
+++ b/zephyr/shim/src/power_host_sleep_api.c
@@ -7,6 +7,7 @@
#include <ap_power/ap_power_interface.h>
#include <power_host_sleep.h>
+#ifndef CONFIG_AP_PWRSEQ_DRIVER
static enum power_state
translate_ap_power_state(enum power_states_ndsx ap_power_state)
{
@@ -34,6 +35,36 @@ int ap_power_get_lazy_wake_mask(enum power_states_ndsx state,
return -EINVAL;
return get_lazy_wake_mask(st, mask);
}
+#else
+#include "ap_power/ap_pwrseq.h"
+
+static enum power_state
+translate_ap_power_state(enum ap_pwrseq_state ap_power_state)
+{
+ switch (ap_power_state) {
+ case AP_POWER_STATE_S5:
+ return POWER_S5;
+ case AP_POWER_STATE_S3:
+ return POWER_S3;
+#if CONFIG_AP_PWRSEQ_S0IX
+ case AP_POWER_STATE_S0IX:
+ return POWER_S0ix;
+#endif
+ default:
+ return 0;
+ }
+}
+
+int ap_power_get_lazy_wake_mask(enum ap_pwrseq_state state, host_event_t *mask)
+{
+ enum power_state st;
+
+ st = translate_ap_power_state(state);
+ if (!st)
+ return -EINVAL;
+ return get_lazy_wake_mask(st, mask);
+}
+#endif /* CONFIG_AP_PWRSEQ_DRIVER */
#if CONFIG_AP_PWRSEQ_HOST_SLEEP
void power_chipset_handle_host_sleep_event(enum host_sleep_event state,