aboutsummaryrefslogtreecommitdiff
path: root/plat/xilinx/zynqmp/pm_service/pm_api_sys.h
diff options
context:
space:
mode:
Diffstat (limited to 'plat/xilinx/zynqmp/pm_service/pm_api_sys.h')
-rw-r--r--plat/xilinx/zynqmp/pm_service/pm_api_sys.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/plat/xilinx/zynqmp/pm_service/pm_api_sys.h b/plat/xilinx/zynqmp/pm_service/pm_api_sys.h
new file mode 100644
index 00000000..af7b2523
--- /dev/null
+++ b/plat/xilinx/zynqmp/pm_service/pm_api_sys.h
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _PM_API_SYS_H_
+#define _PM_API_SYS_H_
+
+#include <stdint.h>
+#include "pm_defs.h"
+
+/**********************************************************
+ * System-level API function declarations
+ **********************************************************/
+enum pm_ret_status pm_req_suspend(enum pm_node_id nid,
+ enum pm_request_ack ack,
+ unsigned int latency,
+ unsigned int state);
+
+enum pm_ret_status pm_self_suspend(enum pm_node_id nid,
+ unsigned int latency,
+ unsigned int state,
+ uintptr_t address);
+
+enum pm_ret_status pm_force_powerdown(enum pm_node_id nid,
+ enum pm_request_ack ack);
+
+enum pm_ret_status pm_abort_suspend(enum pm_abort_reason reason);
+
+enum pm_ret_status pm_req_wakeup(enum pm_node_id nid,
+ unsigned int set_address,
+ uintptr_t address,
+ enum pm_request_ack ack);
+
+enum pm_ret_status pm_set_wakeup_source(enum pm_node_id target,
+ enum pm_node_id wkup_node,
+ unsigned int enable);
+
+enum pm_ret_status pm_system_shutdown(unsigned int type, unsigned int subtype);
+
+enum pm_ret_status pm_init_suspend_cb(enum pm_suspend_reason reason,
+ unsigned int latency,
+ unsigned int state,
+ unsigned int timeout);
+
+/* API functions for managing PM Slaves */
+enum pm_ret_status pm_req_node(enum pm_node_id nid,
+ unsigned int capabilities,
+ unsigned int qos,
+ enum pm_request_ack ack);
+enum pm_ret_status pm_release_node(enum pm_node_id nid);
+
+enum pm_ret_status pm_set_requirement(enum pm_node_id nid,
+ unsigned int capabilities,
+ unsigned int qos,
+ enum pm_request_ack ack);
+enum pm_ret_status pm_set_max_latency(enum pm_node_id nid,
+ unsigned int latency);
+
+/* Miscellaneous API functions */
+enum pm_ret_status pm_get_api_version(unsigned int *version);
+enum pm_ret_status pm_set_configuration(unsigned int phys_addr);
+enum pm_ret_status pm_get_node_status(enum pm_node_id node);
+enum pm_ret_status pm_register_notifier(enum pm_node_id nid,
+ unsigned int event,
+ unsigned int wake,
+ unsigned int enable);
+enum pm_ret_status pm_get_op_characteristic(enum pm_node_id nid,
+ enum pm_opchar_type type,
+ uint32_t *result);
+enum pm_ret_status pm_acknowledge_cb(enum pm_node_id nid,
+ enum pm_ret_status status,
+ unsigned int oppoint);
+enum pm_ret_status pm_notify_cb(enum pm_node_id nid,
+ unsigned int event,
+ unsigned int oppoint);
+
+/* Direct-Control API functions */
+enum pm_ret_status pm_reset_assert(unsigned int reset_id,
+ unsigned int assert);
+enum pm_ret_status pm_reset_get_status(unsigned int reset_id,
+ unsigned int *reset_status);
+enum pm_ret_status pm_mmio_write(uintptr_t address,
+ unsigned int mask,
+ unsigned int value);
+enum pm_ret_status pm_mmio_read(uintptr_t address, unsigned int *value);
+enum pm_ret_status pm_fpga_load(uint32_t address_low,
+ uint32_t address_high,
+ uint32_t size,
+ uint32_t flags);
+enum pm_ret_status pm_fpga_get_status(unsigned int *value);
+
+enum pm_ret_status pm_get_chipid(uint32_t *value);
+void pm_get_callbackdata(uint32_t *data, size_t count);
+
+#endif /* _PM_API_SYS_H_ */