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