1 /*
2  * Copyright (c) 2020, MediaTek Inc. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef MTSPMC_H
8 #define MTSPMC_H
9 
10 #include <stdint.h>
11 
12 int spmc_init(void);
13 
14 void spm_poweron_cpu(uint32_t cluster, uint32_t cpu);
15 void spm_poweroff_cpu(uint32_t cluster, uint32_t cpu);
16 
17 void spm_poweroff_cluster(uint32_t cluster);
18 void spm_poweron_cluster(uint32_t cluster);
19 
20 bool spm_get_cpu_powerstate(uint32_t cluster, uint32_t cpu);
21 bool spm_get_cluster_powerstate(uint32_t cluster);
22 bool spm_get_powerstate(uint32_t mask);
23 
24 void mcucfg_init_archstate(uint32_t cluster, uint32_t cpu, bool arm64);
25 void mcucfg_set_bootaddr(uint32_t cluster, uint32_t cpu, uintptr_t bootaddr);
26 uintptr_t mcucfg_get_bootaddr(uint32_t cluster, uint32_t cpu);
27 
28 void mcucfg_disable_gic_wakeup(uint32_t cluster, uint32_t cpu);
29 void mcucfg_enable_gic_wakeup(uint32_t cluster, uint32_t cpu);
30 
31 #endif /* MTSPMC_H */
32