1*271d9497SJames Liao /* 2*271d9497SJames Liao * Copyright (c) 2020, MediaTek Inc. All rights reserved. 3*271d9497SJames Liao * 4*271d9497SJames Liao * SPDX-License-Identifier: BSD-3-Clause 5*271d9497SJames Liao */ 6*271d9497SJames Liao 7*271d9497SJames Liao #ifndef PLAT_PM_H 8*271d9497SJames Liao #define PLAT_PM_H 9*271d9497SJames Liao 10*271d9497SJames Liao #include <lib/utils_def.h> 11*271d9497SJames Liao 12*271d9497SJames Liao #define MT_PLAT_PWR_STATE_CPU U(1) 13*271d9497SJames Liao #define MT_PLAT_PWR_STATE_CLUSTER U(2) 14*271d9497SJames Liao #define MT_PLAT_PWR_STATE_MCUSYS U(3) 15*271d9497SJames Liao #define MT_PLAT_PWR_STATE_SUSPEND2IDLE U(8) 16*271d9497SJames Liao #define MT_PLAT_PWR_STATE_SYSTEM_SUSPEND U(9) 17*271d9497SJames Liao 18*271d9497SJames Liao #define MTK_LOCAL_STATE_RUN U(0) 19*271d9497SJames Liao #define MTK_LOCAL_STATE_RET U(1) 20*271d9497SJames Liao #define MTK_LOCAL_STATE_OFF U(2) 21*271d9497SJames Liao 22*271d9497SJames Liao #define MTK_AFFLVL_CPU U(0) 23*271d9497SJames Liao #define MTK_AFFLVL_CLUSTER U(1) 24*271d9497SJames Liao #define MTK_AFFLVL_MCUSYS U(2) 25*271d9497SJames Liao #define MTK_AFFLVL_SYSTEM U(3) 26*271d9497SJames Liao 27*271d9497SJames Liao #define IS_CLUSTER_OFF_STATE(s) \ 28*271d9497SJames Liao is_local_state_off(s->pwr_domain_state[MTK_AFFLVL_CLUSTER]) 29*271d9497SJames Liao #define IS_MCUSYS_OFF_STATE(s) \ 30*271d9497SJames Liao is_local_state_off(s->pwr_domain_state[MTK_AFFLVL_MCUSYS]) 31*271d9497SJames Liao #define IS_SYSTEM_SUSPEND_STATE(s) \ 32*271d9497SJames Liao is_local_state_off(s->pwr_domain_state[MTK_AFFLVL_SYSTEM]) 33*271d9497SJames Liao 34*271d9497SJames Liao #define IS_PLAT_SUSPEND_ID(stateid)\ 35*271d9497SJames Liao ((stateid == MT_PLAT_PWR_STATE_SUSPEND2IDLE) \ 36*271d9497SJames Liao || (stateid == MT_PLAT_PWR_STATE_SYSTEM_SUSPEND)) 37*271d9497SJames Liao 38*271d9497SJames Liao #endif /* PLAT_PM_H */ 39