1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* << 3 * Xilinx Event Management Driver << 4 * << 5 * Copyright (C) 2024, Advanced Micro Devices, << 6 */ << 7 2 8 #ifndef _FIRMWARE_XLNX_EVENT_MANAGER_H_ 3 #ifndef _FIRMWARE_XLNX_EVENT_MANAGER_H_ 9 #define _FIRMWARE_XLNX_EVENT_MANAGER_H_ 4 #define _FIRMWARE_XLNX_EVENT_MANAGER_H_ 10 5 11 #include <linux/firmware/xlnx-zynqmp.h> 6 #include <linux/firmware/xlnx-zynqmp.h> 12 7 13 #define CB_MAX_PAYLOAD_SIZE (4U) /*In payl 8 #define CB_MAX_PAYLOAD_SIZE (4U) /*In payload maximum 32bytes */ 14 << 15 #define EVENT_SUBSYSTEM_RESTART (4U) << 16 << 17 #define PM_DEV_ACPU_0_0 (0x181 << 18 #define PM_DEV_ACPU_0 (0x181 << 19 9 20 /************************** Exported Function 10 /************************** Exported Function *****************************/ 21 11 22 typedef void (*event_cb_func_t)(const u32 *pay 12 typedef void (*event_cb_func_t)(const u32 *payload, void *data); 23 13 24 #if IS_REACHABLE(CONFIG_XLNX_EVENT_MANAGER) 14 #if IS_REACHABLE(CONFIG_XLNX_EVENT_MANAGER) 25 int xlnx_register_event(const enum pm_api_cb_i 15 int xlnx_register_event(const enum pm_api_cb_id cb_type, const u32 node_id, 26 const u32 event, const 16 const u32 event, const bool wake, 27 event_cb_func_t cb_fun 17 event_cb_func_t cb_fun, void *data); 28 18 29 int xlnx_unregister_event(const enum pm_api_cb 19 int xlnx_unregister_event(const enum pm_api_cb_id cb_type, const u32 node_id, 30 const u32 event, eve 20 const u32 event, event_cb_func_t cb_fun, void *data); 31 #else 21 #else 32 static inline int xlnx_register_event(const en 22 static inline int xlnx_register_event(const enum pm_api_cb_id cb_type, const u32 node_id, 33 const u3 23 const u32 event, const bool wake, 34 event_cb 24 event_cb_func_t cb_fun, void *data) 35 { 25 { 36 return -ENODEV; 26 return -ENODEV; 37 } 27 } 38 28 39 static inline int xlnx_unregister_event(const 29 static inline int xlnx_unregister_event(const enum pm_api_cb_id cb_type, const u32 node_id, 40 const 30 const u32 event, event_cb_func_t cb_fun, void *data) 41 { 31 { 42 return -ENODEV; 32 return -ENODEV; 43 } 33 } 44 #endif 34 #endif 45 35 46 #endif /* _FIRMWARE_XLNX_EVENT_MANAGER_H_ */ 36 #endif /* _FIRMWARE_XLNX_EVENT_MANAGER_H_ */ 47 37
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.