Sanitise includes across codebase
[project/bcm63xx/atf.git] / plat / xilinx / zynqmp / pm_service / pm_common.h
1 /*
2 * Copyright (c) 2013-2015, 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
17 #include <common/debug.h>
18
19 #include "pm_defs.h"
20
21 #define PAYLOAD_ARG_CNT 6U
22 #define PAYLOAD_ARG_SIZE 4U /* size in bytes */
23
24 #define ZYNQMP_TZ_VERSION_MAJOR 1
25 #define ZYNQMP_TZ_VERSION_MINOR 0
26 #define ZYNQMP_TZ_VERSION ((ZYNQMP_TZ_VERSION_MAJOR << 16) | \
27 ZYNQMP_TZ_VERSION_MINOR)
28
29 /**
30 * pm_ipi - struct for capturing IPI-channel specific info
31 * @apu_ipi_id APU IPI agent ID
32 * @pmu_ipi_id PMU Agent ID
33 * @buffer_base base address for payload buffer
34 */
35 struct pm_ipi {
36 const uint32_t apu_ipi_id;
37 const uint32_t pmu_ipi_id;
38 const uintptr_t buffer_base;
39 };
40
41 /**
42 * pm_proc - struct for capturing processor related info
43 * @node_id node-ID of the processor
44 * @pwrdn_mask cpu-specific mask to be used for power control register
45 * @ipi pointer to IPI channel structure
46 * (in APU all processors share one IPI channel)
47 */
48 struct pm_proc {
49 const enum pm_node_id node_id;
50 const unsigned int pwrdn_mask;
51 const struct pm_ipi *ipi;
52 };
53
54 const struct pm_proc *pm_get_proc(unsigned int cpuid);
55 const struct pm_proc *pm_get_proc_by_node(enum pm_node_id nid);
56
57 #endif /* PM_COMMON_H */