blob: a64591e71386278299963c5e60abb8b0734070d5 [file] [log] [blame]
Antonio Nino Diaz652d20a2018-12-10 17:17:33 +00001/*
2 * Copyright (c) 2018, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef SPCI_HELPERS_H
8#define SPCI_HELPERS_H
9
10#include <utils_def.h>
11
12/* This error code must be different to the ones used by SPCI */
13#define SPCI_TFTF_ERROR -42
14
15/* Client ID used for SPCI calls */
16#define TFTF_SPCI_CLIENT_ID U(0x00007F7F)
17
18#ifndef __ASSEMBLY__
19
20#include <stdint.h>
Antonio Nino Diaz652d20a2018-12-10 17:17:33 +000021
22int spci_service_handle_open(uint16_t client_id, uint16_t *handle,
23 uint32_t uuid1, uint32_t uuid2,
24 uint32_t uuid3, uint32_t uuid4);
25int spci_service_handle_close(uint16_t client_id, uint16_t handle);
26
Antonio Nino Diazad8fcee2018-12-18 10:51:36 +000027int spci_service_request_start(u_register_t x1, u_register_t x2,
28 u_register_t x3, u_register_t x4,
29 u_register_t x5, u_register_t x6,
30 uint16_t client_id, uint16_t handle,
31 uint32_t *token);
32int spci_service_request_resume(uint16_t client_id, uint16_t handle,
33 uint32_t token, u_register_t *x1,
34 u_register_t *x2, u_register_t *x3);
35int spci_service_get_response(uint16_t client_id, uint16_t handle,
36 uint32_t token, u_register_t *x1,
37 u_register_t *x2, u_register_t *x3);
38
39int spci_service_request_blocking(u_register_t x1, u_register_t x2,
40 u_register_t x3, u_register_t x4,
41 u_register_t x5, u_register_t x6,
42 uint16_t client_id, uint16_t handle,
43 u_register_t *rx1, u_register_t *rx2,
44 u_register_t *rx3);
45
Antonio Nino Diaz652d20a2018-12-10 17:17:33 +000046#endif /* __ASSEMBLY__ */
47
48#endif /* SPCI_HELPERS_H */