1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright (c) 2019-2021, Linaro Limited 4 */ 5 #ifndef PTA_SCMI_CLIENT_H 6 #define PTA_SCMI_CLIENT_H 7 8 #define PTA_SCMI_UUID { 0xa8cfe406, 0xd4f5, 0x4a2e, \ 9 { 0x9f, 0x8d, 0xa2, 0x5d, 0xc7, 0x54, 0xc0, 0x99 } } 10 11 #define PTA_SCMI_NAME "PTA-SCMI" 12 13 /* 14 * PTA_SCMI_CMD_CAPABILITIES - Get channel capabilities 15 * 16 * [out] value[0].a: Capabilities bit mask (PTA_SCMI_CAPS_*) 17 * [out] value[0].b: Extended capabilities or 0 18 */ 19 #define PTA_SCMI_CMD_CAPABILITIES 0 20 21 /* 22 * PTA_SCMI_CMD_PROCESS_SMT_CHANNEL - Process SCMI message in SMT buffer 23 * 24 * [in] value[0].a: Channel handle 25 * 26 * Shared memory used for SCMI message/response exhange is expected 27 * already identified and bound to channel handle in both SCMI agent 28 * and SCMI server (OP-TEE) parts. 29 * The memory uses SMT header to carry SCMI meta-data (protocol ID and 30 * protocol message ID). 31 */ 32 #define PTA_SCMI_CMD_PROCESS_SMT_CHANNEL 1 33 34 /* 35 * PTA_SCMI_CMD_PROCESS_SMT_CHANNEL_MESSAGE - Process SCMI message in 36 * SMT buffer pointed by memref parameters 37 * 38 * [in] value[0].a: Channel handle 39 * [in/out] memref[1]: Message/response buffer (SMT and SCMI payload) 40 * 41 * Shared memory used for SCMI message/response is a SMT buffer 42 * referenced by param[1]. It shall be 128 bytes large to fit response 43 * payload whatever message playload size. 44 * The memory uses SMT header to carry SCMI meta-data (protocol ID and 45 * protocol message ID). 46 */ 47 #define PTA_SCMI_CMD_PROCESS_SMT_CHANNEL_MESSAGE 2 48 49 /* 50 * PTA_SCMI_CMD_GET_CHANNEL_HANDLE - Get handle for an SCMI channel 51 * 52 * Get a handle for the SCMI channel. This handle value is to be passed 53 * as argument to some commands as PTA_SCMI_CMD_PROCESS_*. 54 * 55 * [in] value[0].a: Channel identifier or 0 if no assigned ID 56 * [in] value[0].b: Requested capabilities mask (PTA_SCMI_CAPS_*) 57 * [out] value[0].a: Returned channel handle 58 */ 59 #define PTA_SCMI_CMD_GET_CHANNEL_HANDLE 3 60 61 /* 62 * PTA_SCMI_CMD_PROCESS_MSG_CHANNEL - Process SCMI message in a MSG 63 * buffer pointed by memref parameters 64 * 65 * [in] value[0].a: Channel handle 66 * [in] memref[1]: Input message shared buffer 67 * [out] memref[2]: Output message shared buffer 68 */ 69 #define PTA_SCMI_CMD_PROCESS_MSG_CHANNEL 4 70 71 /* 72 * Capabilities 73 */ 74 75 /* Channel supports shared memory using the SMT header protocol */ 76 #define PTA_SCMI_CAPS_SMT_HEADER BIT32(0) 77 78 /* Channel supports shared memory using the MSG header protocol */ 79 #define PTA_SCMI_CAPS_MSG_HEADER BIT32(1) 80 81 /* Mask of defined capabilities */ 82 #define PTA_SCMI_CAPS_MASK GENMASK_32(1, 0) 83 84 #endif /* SCMI_PTA_SCMI_CLIENT_H */ 85