192c30ac3STejas Patel /* 2619bc13eSMichal Simek * Copyright (c) 2013-2019, Arm Limited and Contributors. All rights reserved. 324b5b53aSRajan Vaja * Copyright (c) 2020-2022, Xilinx, Inc. All rights reserved. 4*5cac1d85SRonak Jain * Copyright (c) 2022-2025, Advanced Micro Devices, Inc. All rights reserved. 592c30ac3STejas Patel * 692c30ac3STejas Patel * SPDX-License-Identifier: BSD-3-Clause 792c30ac3STejas Patel */ 892c30ac3STejas Patel 992c30ac3STejas Patel /* 1092c30ac3STejas Patel * Contains APU specific macros and macros to be defined depending on 1192c30ac3STejas Patel * the execution environment. 1292c30ac3STejas Patel */ 1392c30ac3STejas Patel 1492c30ac3STejas Patel #ifndef PM_CLIENT_H 1592c30ac3STejas Patel #define PM_CLIENT_H 1692c30ac3STejas Patel 1792c30ac3STejas Patel #include "pm_common.h" 1892c30ac3STejas Patel #include "pm_defs.h" 1992c30ac3STejas Patel 2092c30ac3STejas Patel /* Functions to be implemented by each PU */ 21*5cac1d85SRonak Jain void pm_client_suspend(const struct pm_proc *proc, uint32_t state, uint32_t flag); 2292c30ac3STejas Patel void pm_client_wakeup(const struct pm_proc *proc); 2392c30ac3STejas Patel 243ae28aa4SJay Buddhabhatti #if !defined(PLAT_zynqmp) 253ae28aa4SJay Buddhabhatti enum pm_device_node_idx irq_to_pm_node_idx(uint32_t irq); 263ae28aa4SJay Buddhabhatti #endif 273ae28aa4SJay Buddhabhatti 2892c30ac3STejas Patel /* Global variables to be set in pm_client.c */ 2992c30ac3STejas Patel extern const struct pm_proc *primary_proc; 3092c30ac3STejas Patel 3124b5b53aSRajan Vaja #if defined(PLAT_zynqmp) 3292c30ac3STejas Patel enum pm_ret_status pm_set_suspend_mode(uint32_t mode); 3324b5b53aSRajan Vaja #endif /* PLAT_zynqmp */ 3492c30ac3STejas Patel 3592c30ac3STejas Patel #endif /* PM_CLIENT_H */ 36