1 /* 2 * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef __CSS_PM_H__ 8 #define __CSS_PM_H__ 9 10 #include <cdefs.h> 11 #include <psci.h> 12 #include <types.h> 13 14 /* System power domain at level 2, as currently implemented by CSS platforms */ 15 #define CSS_SYSTEM_PWR_DMN_LVL ARM_PWR_LVL2 16 17 /* Macros to read the CSS power domain state */ 18 #define CSS_CORE_PWR_STATE(state) (state)->pwr_domain_state[ARM_PWR_LVL0] 19 #define CSS_CLUSTER_PWR_STATE(state) (state)->pwr_domain_state[ARM_PWR_LVL1] 20 #define CSS_SYSTEM_PWR_STATE(state) \ 21 ((PLAT_MAX_PWR_LVL == CSS_SYSTEM_PWR_DMN_LVL) ?\ 22 (state)->pwr_domain_state[CSS_SYSTEM_PWR_DMN_LVL] : 0) 23 24 int css_pwr_domain_on(u_register_t mpidr); 25 void css_pwr_domain_on_finish(const psci_power_state_t *target_state); 26 void css_pwr_domain_off(const psci_power_state_t *target_state); 27 void css_pwr_domain_suspend(const psci_power_state_t *target_state); 28 void css_pwr_domain_suspend_finish( 29 const psci_power_state_t *target_state); 30 void __dead2 css_system_off(void); 31 void __dead2 css_system_reset(void); 32 void css_cpu_standby(plat_local_state_t cpu_state); 33 void css_get_sys_suspend_power_state(psci_power_state_t *req_state); 34 int css_node_hw_state(u_register_t mpidr, unsigned int power_level); 35 36 #endif /* __CSS_PM_H__ */ 37