xref: /rk3399_ARM-atf/plat/xilinx/common/include/pm_client.h (revision 92c30ac35b298bb4049778ed1c0b95713e44e44c)
1*92c30ac3STejas Patel /*
2*92c30ac3STejas Patel  * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
3*92c30ac3STejas Patel  *
4*92c30ac3STejas Patel  * SPDX-License-Identifier: BSD-3-Clause
5*92c30ac3STejas Patel  */
6*92c30ac3STejas Patel 
7*92c30ac3STejas Patel /*
8*92c30ac3STejas Patel  * Contains APU specific macros and macros to be defined depending on
9*92c30ac3STejas Patel  * the execution environment.
10*92c30ac3STejas Patel  */
11*92c30ac3STejas Patel 
12*92c30ac3STejas Patel #ifndef PM_CLIENT_H
13*92c30ac3STejas Patel #define PM_CLIENT_H
14*92c30ac3STejas Patel 
15*92c30ac3STejas Patel #include "pm_common.h"
16*92c30ac3STejas Patel #include "pm_defs.h"
17*92c30ac3STejas Patel 
18*92c30ac3STejas Patel /* Functions to be implemented by each PU */
19*92c30ac3STejas Patel void pm_client_suspend(const struct pm_proc *proc, unsigned int state);
20*92c30ac3STejas Patel void pm_client_abort_suspend(void);
21*92c30ac3STejas Patel void pm_client_wakeup(const struct pm_proc *proc);
22*92c30ac3STejas Patel 
23*92c30ac3STejas Patel /* Global variables to be set in pm_client.c */
24*92c30ac3STejas Patel extern const struct pm_proc *primary_proc;
25*92c30ac3STejas Patel 
26*92c30ac3STejas Patel #ifndef VERSAL_PLATFORM
27*92c30ac3STejas Patel enum pm_ret_status set_ocm_retention(void);
28*92c30ac3STejas Patel enum pm_ret_status pm_set_suspend_mode(uint32_t mode);
29*92c30ac3STejas Patel const struct pm_proc *pm_get_proc_by_node(enum pm_node_id nid);
30*92c30ac3STejas Patel #endif
31*92c30ac3STejas Patel 
32*92c30ac3STejas Patel #endif /* PM_CLIENT_H */
33