blob: c0a51f0294adf3461f79eef4fb2e979b0292be79 [file] [log] [blame]
Soren Brinkmann76fcae32016-03-06 20:16:27 -08001/*
Jolly Shah259afe52019-01-09 12:37:57 -08002 * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
Soren Brinkmann76fcae32016-03-06 20:16:27 -08003 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Soren Brinkmann76fcae32016-03-06 20:16:27 -08005 */
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
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000012#ifndef PM_COMMON_H
13#define PM_COMMON_H
Soren Brinkmann76fcae32016-03-06 20:16:27 -080014
Soren Brinkmann76fcae32016-03-06 20:16:27 -080015#include <stdint.h>
Jolly Shah259afe52019-01-09 12:37:57 -080016#include <plat_pm_common.h>
Rajan Vajac7ee23d2018-02-14 23:10:54 -080017
Soren Brinkmann76fcae32016-03-06 20:16:27 -080018/**
19 * pm_ipi - struct for capturing IPI-channel specific info
Jolly Shah36c930b2019-01-07 12:51:40 -080020 * @local_ipi_id Local IPI agent ID
21 * @remote_ipi_id Remote IPI Agent ID
Soren Brinkmann76fcae32016-03-06 20:16:27 -080022 * @buffer_base base address for payload buffer
23 */
24struct pm_ipi {
Jolly Shah36c930b2019-01-07 12:51:40 -080025 const uint32_t local_ipi_id;
26 const uint32_t remote_ipi_id;
Soren Brinkmann76fcae32016-03-06 20:16:27 -080027 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 */
37struct pm_proc {
Jolly Shah259afe52019-01-09 12:37:57 -080038 const uint32_t node_id;
Soren Brinkmann76fcae32016-03-06 20:16:27 -080039 const unsigned int pwrdn_mask;
40 const struct pm_ipi *ipi;
41};
42
43const struct pm_proc *pm_get_proc(unsigned int cpuid);
Soren Brinkmann76fcae32016-03-06 20:16:27 -080044
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000045#endif /* PM_COMMON_H */