• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 /*
8  * Contains definitions of commonly used macros and data types needed
9  * for PU Power Management. This file should be common for all PU's.
10  */
11 
12 #ifndef PM_COMMON_H
13 #define PM_COMMON_H
14 
15 #include <stdint.h>
16 #include <plat_pm_common.h>
17 
18 /**
19  * pm_ipi - struct for capturing IPI-channel specific info
20  * @local_ipi_id	Local IPI agent ID
21  * @remote_ipi_id	Remote IPI Agent ID
22  * @buffer_base	base address for payload buffer
23  */
24 struct pm_ipi {
25 	const uint32_t local_ipi_id;
26 	const uint32_t remote_ipi_id;
27 	const uintptr_t buffer_base;
28 };
29 
30 /**
31  * pm_proc - struct for capturing processor related info
32  * @node_id	node-ID of the processor
33  * @pwrdn_mask	cpu-specific mask to be used for power control register
34  * @ipi		pointer to IPI channel structure
35  *		(in APU all processors share one IPI channel)
36  */
37 struct pm_proc {
38 	const uint32_t node_id;
39 	const unsigned int pwrdn_mask;
40 	const struct pm_ipi *ipi;
41 };
42 
43 const struct pm_proc *pm_get_proc(unsigned int cpuid);
44 
45 #endif /* PM_COMMON_H */
46