summaryrefslogtreecommitdiff
path: root/include/bl31/services/psci.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/bl31/services/psci.h')
-rw-r--r--include/bl31/services/psci.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/bl31/services/psci.h b/include/bl31/services/psci.h
index 95e77809..20aa52e9 100644
--- a/include/bl31/services/psci.h
+++ b/include/bl31/services/psci.h
@@ -80,6 +80,10 @@
#define PSCI_FEATURES 0x8400000A
#define PSCI_SYSTEM_SUSPEND_AARCH32 0x8400000E
#define PSCI_SYSTEM_SUSPEND_AARCH64 0xc400000E
+#define PSCI_STAT_RESIDENCY_AARCH32 0x84000010
+#define PSCI_STAT_RESIDENCY_AARCH64 0xc4000010
+#define PSCI_STAT_COUNT_AARCH32 0x84000011
+#define PSCI_STAT_COUNT_AARCH64 0xc4000011
/* Macro to help build the psci capabilities bitfield */
#define define_psci_cap(x) (1 << (x & 0x1f))
@@ -87,7 +91,11 @@
/*
* Number of PSCI calls (above) implemented
*/
+#if ENABLE_PSCI_STAT
+#define PSCI_NUM_CALLS 22
+#else
#define PSCI_NUM_CALLS 18
+#endif
/*******************************************************************************
* PSCI Migrate and friends
@@ -274,6 +282,11 @@ typedef struct plat_psci_ops {
int (*validate_ns_entrypoint)(uintptr_t ns_entrypoint);
void (*get_sys_suspend_power_state)(
psci_power_state_t *req_state);
+ int (*get_pwr_lvl_state_idx)(plat_local_state_t pwr_domain_state,
+ int pwrlvl);
+ int (*translate_power_state_by_mpidr)(u_register_t mpidr,
+ unsigned int power_state,
+ psci_power_state_t *output_state);
} plat_psci_ops_t;
/*******************************************************************************