pm_ipi.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * Copyright (c) 2013-2020, ARM Limited and Contributors. All rights reserved.
  3. * Copyright (c) 2020-2022, Xilinx, Inc. All rights reserved.
  4. * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  5. *
  6. * SPDX-License-Identifier: BSD-3-Clause
  7. */
  8. #ifndef PM_IPI_H
  9. #define PM_IPI_H
  10. #include <plat_ipi.h>
  11. #include <stddef.h>
  12. #include "pm_common.h"
  13. #define IPI_BLOCKING 1
  14. #define IPI_NON_BLOCKING 0
  15. void pm_ipi_init(const struct pm_proc *proc);
  16. enum pm_ret_status pm_ipi_send(const struct pm_proc *proc,
  17. uint32_t payload[PAYLOAD_ARG_CNT]);
  18. enum pm_ret_status pm_ipi_send_non_blocking(const struct pm_proc *proc,
  19. uint32_t payload[PAYLOAD_ARG_CNT]);
  20. enum pm_ret_status pm_ipi_send_sync(const struct pm_proc *proc,
  21. uint32_t payload[PAYLOAD_ARG_CNT],
  22. uint32_t *value, size_t count);
  23. enum pm_ret_status pm_ipi_buff_read_callb(uint32_t *value, size_t count);
  24. void pm_ipi_irq_enable(const struct pm_proc *proc);
  25. void pm_ipi_irq_clear(const struct pm_proc *proc);
  26. uint32_t pm_ipi_irq_status(const struct pm_proc *proc);
  27. #if IPI_CRC_CHECK
  28. uint32_t calculate_crc(uint32_t payload[PAYLOAD_ARG_CNT], uint32_t buffersize);
  29. #endif
  30. #endif /* PM_IPI_H */