1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  *
7  * Description:
8  *     MORELLO power domain header file.
9  */
10 
11 #ifndef MORELLO_POWER_DOMAIN_H
12 #define MORELLO_POWER_DOMAIN_H
13 
14 #include <mod_power_domain.h>
15 
16 /*! Additional MORELLO power domain states */
17 enum morello_power_domain_states {
18     MORELLO_POWER_DOMAIN_STATE_FUNC_RET = MOD_PD_STATE_COUNT,
19     MORELLO_POWER_DOMAIN_STATE_FULL_RET,
20     MORELLO_POWER_DOMAIN_STATE_MEM_RET,
21     MORELLO_POWER_DOMAIN_STATE_COUNT
22 };
23 
24 /*! Power domain state masks */
25 enum morello_power_domain_state_masks {
26     MORELLO_POWER_DOMAIN_STATE_FUNC_RET_MASK =
27         (1 << MORELLO_POWER_DOMAIN_STATE_FUNC_RET),
28     MORELLO_POWER_DOMAIN_STATE_FULL_RET_MASK =
29         (1 << MORELLO_POWER_DOMAIN_STATE_FULL_RET),
30     MORELLO_POWER_DOMAIN_STATE_MEM_RET_MASK =
31         (1 << MORELLO_POWER_DOMAIN_STATE_MEM_RET),
32 };
33 
34 /*! Mask for the cluster valid power states */
35 #define MORELLO_CLUSTER_VALID_STATE_MASK \
36     (MOD_PD_STATE_OFF_MASK | MOD_PD_STATE_ON_MASK | MOD_PD_STATE_SLEEP_MASK | \
37      MORELLO_POWER_DOMAIN_STATE_MEM_RET_MASK | \
38      MORELLO_POWER_DOMAIN_STATE_FUNC_RET_MASK)
39 
40 /*! Mask for the core valid power states */
41 #define MORELLO_CORE_VALID_STATE_MASK \
42     (MOD_PD_STATE_OFF_MASK | MOD_PD_STATE_ON_MASK | MOD_PD_STATE_SLEEP_MASK | \
43      MORELLO_POWER_DOMAIN_STATE_FULL_RET_MASK)
44 
45 #endif /* MORELLO_POWER_DOMAIN_H */
46