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