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