xref: /rk3399_ARM-atf/plat/xilinx/common/include/pm_client.h (revision ffa910312c371080f4d0d50eb1354ad05b7be7a8)
192c30ac3STejas Patel /*
292c30ac3STejas Patel  * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
392c30ac3STejas Patel  *
492c30ac3STejas Patel  * SPDX-License-Identifier: BSD-3-Clause
592c30ac3STejas Patel  */
692c30ac3STejas Patel 
792c30ac3STejas Patel /*
892c30ac3STejas Patel  * Contains APU specific macros and macros to be defined depending on
992c30ac3STejas Patel  * the execution environment.
1092c30ac3STejas Patel  */
1192c30ac3STejas Patel 
1292c30ac3STejas Patel #ifndef PM_CLIENT_H
1392c30ac3STejas Patel #define PM_CLIENT_H
1492c30ac3STejas Patel 
1592c30ac3STejas Patel #include "pm_common.h"
1692c30ac3STejas Patel #include "pm_defs.h"
1792c30ac3STejas Patel 
1892c30ac3STejas Patel /* Functions to be implemented by each PU */
19*ffa91031SVenkatesh Yadav Abbarapu void pm_client_suspend(const struct pm_proc *proc, uint32_t state);
2092c30ac3STejas Patel void pm_client_abort_suspend(void);
2192c30ac3STejas Patel void pm_client_wakeup(const struct pm_proc *proc);
2292c30ac3STejas Patel 
2392c30ac3STejas Patel /* Global variables to be set in pm_client.c */
2492c30ac3STejas Patel extern const struct pm_proc *primary_proc;
2592c30ac3STejas Patel 
2692c30ac3STejas Patel #ifndef VERSAL_PLATFORM
2792c30ac3STejas Patel enum pm_ret_status set_ocm_retention(void);
2892c30ac3STejas Patel enum pm_ret_status pm_set_suspend_mode(uint32_t mode);
2992c30ac3STejas Patel const struct pm_proc *pm_get_proc_by_node(enum pm_node_id nid);
3092c30ac3STejas Patel #endif
3192c30ac3STejas Patel 
3292c30ac3STejas Patel #endif /* PM_CLIENT_H */
33