AM62L FreeRTOS SDK  11.00.00
scmi_protocol.h File Reference

Go to the source code of this file.

Data Structures

struct  SCMI_ProtocolVersionData
 SCMI_ProtocolVersionData - Response for SCMI_PROTOCOL_VERSION command. More...
 
struct  SCMI_ProtocolAttributesData
 Response for SCMI_PROTOCOL_ATTRIBUTES. More...
 
struct  SCMI_ProtocolMessageAttributesData
 Response for SCMI_PROTOCOL_MESSAGE_ATTRIBUTES command. More...
 
struct  SCMI_BaseDiscoverVendorOut
 Response for SCMI_BASE_DISCOVER_VENDOR or SCMI_BASE_DISCOVER_SUB_VENDOR command. More...
 
struct  SCMI_BaseDiscoverImplementationVersionData
 Response for SCMI_BASE_DISCOVER_IMPL_VERSION command. More...
 
struct  SCMI_BaseDiscoverListProtocolsData
 Response for SCMI_BASE_DISCOVER_LIST_PROTOCOLS command. More...
 
struct  SCMI_PdProtocolAttrs
 
struct  SCMI_PdProtocolMessageAttrs
 
struct  SCMI_PowerDomainAttrsOutData
 
struct  SCMI_PowerDomainStateSetInput
 
struct  SCMI_PowerDomainStateGetOut
 
struct  SCMI_PowerDomainNameGetOut
 
struct  SCMI_ClockProtocolAttrsOut
 
struct  SCMI_ClockAttributeOut
 
struct  SCMI_ClockStateIn
 
struct  SCMI_ClockStateGetIn
 
struct  SCMI_ClockStateGetOut
 
struct  SCMI_ClockNameGetOut
 
struct  SCMI_ClockRateGetOut
 
struct  SCMI_ClockRateSetIn
 
struct  SCMI_ClockParentSetIn
 
struct  SCMI_ClockParentGetOut
 
struct  SCMI_ClockGetPossibleParentsOut
 
struct  SCMI_ClockGetPossibleParentsIn
 

Macros

#define SCMI_PROTOCOL_VENDOR_BASE   0x80
 
#define SCMI_MAX_STR_SIZE   64U
 
#define SCMI_MAX_NUM_RATES   16U
 
#define SCMI_BASE_PROTOCOL_VERSION   0x20000U
 
#define SCMI_BASE_NAME_LENGTH_MAX   16U
 
#define SCMI_BASE_MAX_NUM_PROTOCOLS   10U
 
#define GENMASK(h, l)   (((~0UL) << (l)) & (~0UL >> (32 - 1 - (h))))
 
#define SCMI_PROTOCOL_ATTRS_NUM_AGENTS(attributes)    (((attributes) & GENMASK(15, 8)) >> 8)
 
#define SCMI_PROTOCOL_ATTRS_NUM_PROTOCOLS(attributes)    ((attributes) & GENMASK(7, 0))
 
#define SCMI_PWD_POWER_STATE_ON   (uint32_t)(0U << 30U)
 
#define SCMI_PWD_POWER_STATE_OFF   (uint32_t)(1U << 30U)
 
#define SCMI_PWD_PROTOCOL_VERSION   0x30000
 
#define SCMI_PWD_PSTATE_TYPE_LOST   (1U << 30)
 
#define SCMI_PWD_PSTATE_ID   GENMASK(27, 0)
 
#define SCMI_PWD_PROTO_ATTRS_NUM_PWD(attributes)
 
#define SCMI_PWD_SHORT_NAME_SIZE   16
 
#define SCMI_PWD_NAME_LENGTH_MAX   64
 
#define SCMI_PWD_SET_FLAGS_ASYNC   (1U << 0)
 
#define SCMI_PWD_ATTR_PSTATE_CHANGE_NOTIFY   (1U << 31)
 
#define SCMI_PWD_ATTR_PSTATE_ASYNC   (1U << 30)
 
#define SCMI_PWD_ATTR_PSTATE_SYNC   (1U << 29)
 
#define SCMI_PWD_ATTR_PSTATE_CHANGE_RQ_NOTIFY   (1U << 28)
 
#define SCMI_PWD_ATTR_EXTENDED_NAME   (1U << 27)
 
#define SCMI_PWD_EXTENDED_NAME_MAX   64U
 
#define SCMI_CLK_PROTO_ATTR_COUNT_MASK   GENMASK(15, 0)
 
#define SCMI_CLK_ATTR_RATE_CHANGED_NOTIFY   (1U << 31)
 
#define SCMI_CLK_ATTR_RATE_CHANGE_REQUESTED_NOTIFY   (1U << 30)
 
#define SCMI_CLK_ATTR_EXTENDED_NAMES   (1U << 29)
 
#define SCMI_CLK_ATTR_PARENT_CLOCK   (1U << 28)
 
#define SCMI_CLK_ATTR_EXTENDED_CONFIG   (1U << 28)
 
#define SCMI_CLK_ATTR_GET_PERMISSIONS   (1U << 1)
 
#define SCMI_CLK_RATE_ASYNC_NOTIFY   (1U << 0)
 
#define SCMI_CLK_RATE_ASYNC_NORESP   ((1U << 0U)) | (1U << 1U))
 
#define SCMI_CLK_RATE_ROUND_DOWN   0
 
#define SCMI_CLK_RATE_ROUND_UP   (1U << 2)
 
#define SCMI_CLK_RATE_ROUND_CLOSEST   (1U << 3)
 
#define SCMI_CLK_SHORT_NAME_SIZE   16
 
#define SCMI_CLK_NAME_LENGTH_MAX   64
 
#define SCMI_CLK_CONFIG_SET_ENABLE   (1U << 0)
 
#define SCMI_CLK_CONFIG_SET_DISABLE   (0U)
 
#define SCMI_CLK_POSSIBLE_PARENTS_MASK   255U
 
#define SCMI_CLK_POSSIBLE_PARENTS_NUM_PARENTS_RECV(x)   ((x) & (uint32_t)0xFF)
 
#define SCMI_CLK_POSSIBLE_PARENTS_NUM_PARENTS_REM(x)   ((x) >> 24)
 

Enumerations

enum  SCMI_CommonCommand { SCMI_PROTOCOL_VERSION = 0x0, SCMI_PROTOCOL_ATTRIBUTES = 0x1, SCMI_PROTOCOL_MESSAGE_ATTRIBUTES = 0x2, SCMI_NEGOTIATE_PROTOCOL_VERSION = 0x10 }
 
enum  SCMI_StandardProtocol {
  SCMI_PROTOCOL_BASE = 0x10, SCMI_PROTOCOL_POWER = 0x11, SCMI_PROTOCOL_SYSTEM = 0x12, SCMI_PROTOCOL_PERF = 0x13,
  SCMI_PROTOCOL_CLOCK = 0x14, SCMI_PROTOCOL_SENSOR = 0x15, SCMI_PROTOCOL_RESET = 0x16, SCMI_PROTOCOL_VOLTAGE = 0x17,
  SCMI_PROTOCOL_POWERCAP = 0x18, SCMI_PROTOCOL_PINCTRL = 0x19
}
 
enum  SCMI_StatusCode {
  SCMI_SUCCESS = 0, SCMI_NOT_SUPPORTED = -1, SCMI_INVALID_PARAMETERS = -2, SCMI_DENIED = -3,
  SCMI_NOT_FOUND = -4, SCMI_OUT_OF_RANGE = -5, SCMI_BUSY = -6, SCMI_COMMS_ERROR = -7,
  SCMI_GENERIC_ERROR = -8, SCMI_HARDWARE_ERROR = -9, SCMI_PROTOCOL_ERROR = -10
}
 
enum  SCMI_BaseMessageCommand {
  SCMI_BASE_DISCOVER_VENDOR = 0x3, SCMI_BASE_DISCOVER_SUB_VENDOR = 0x4, SCMI_BASE_DISCOVER_IMPL_VERSION = 0x5, SCMI_BASE_DISCOVER_LIST_PROTOCOLS = 0x6,
  SCMI_BASE_DISCOVER_AGENT = 0x7, SCMI_BASE_NOTIFY_ERRORS = 0x8, SCMI_BASE_SET_DEVICE_PERMISSIONS = 0x9, SCMI_BASE_SET_PROTOCOL_PERMISSIONS = 0xa,
  SCMI_BASE_RESET_AGENT_CONFIGURATION = 0xb
}
 
enum  SCMI_PowerDomainMessageId {
  SCMI_PWD_ATTRIBUTES = 0x3, SCMI_PWD_STATE_SET = 0x4, SCMI_PWD_STATE_GET = 0x5, SCMI_PWD_STATE_NOTIFY = 0x6,
  SCMI_PWD_STATE_CHANGE_REQUESTED_NOTIFY = 0x7, SCMI_PWD_NAME_GET = 0x8
}
 
enum  SCMI_ClockMessageId {
  SCMI_CLOCK_ATTRIBUTES = 0x3, SCMI_CLOCK_RATE_SET = 0x5, SCMI_CLOCK_RATE_GET = 0x6, SCMI_CLOCK_CONFIG_SET = 0x7,
  SCMI_CLOCK_NAME_GET = 0x8, SCMI_CLOCK_CONFIG_GET = 0xB, SCMI_CLOCK_POSSIBLE_PARENTS_GET = 0xC, SCMI_CLOCK_PARENT_SET = 0xD,
  SCMI_CLOCK_PARENT_GET = 0xE
}
 

Macro Definition Documentation

◆ SCMI_PROTOCOL_VENDOR_BASE

#define SCMI_PROTOCOL_VENDOR_BASE   0x80

◆ SCMI_MAX_STR_SIZE

#define SCMI_MAX_STR_SIZE   64U

◆ SCMI_MAX_NUM_RATES

#define SCMI_MAX_NUM_RATES   16U

◆ SCMI_BASE_PROTOCOL_VERSION

#define SCMI_BASE_PROTOCOL_VERSION   0x20000U

◆ SCMI_BASE_NAME_LENGTH_MAX

#define SCMI_BASE_NAME_LENGTH_MAX   16U

◆ SCMI_BASE_MAX_NUM_PROTOCOLS

#define SCMI_BASE_MAX_NUM_PROTOCOLS   10U

◆ GENMASK

#define GENMASK (   h,
 
)    (((~0UL) << (l)) & (~0UL >> (32 - 1 - (h))))

◆ SCMI_PROTOCOL_ATTRS_NUM_AGENTS

#define SCMI_PROTOCOL_ATTRS_NUM_AGENTS (   attributes)     (((attributes) & GENMASK(15, 8)) >> 8)

◆ SCMI_PROTOCOL_ATTRS_NUM_PROTOCOLS

#define SCMI_PROTOCOL_ATTRS_NUM_PROTOCOLS (   attributes)     ((attributes) & GENMASK(7, 0))

◆ SCMI_PWD_POWER_STATE_ON

#define SCMI_PWD_POWER_STATE_ON   (uint32_t)(0U << 30U)

◆ SCMI_PWD_POWER_STATE_OFF

#define SCMI_PWD_POWER_STATE_OFF   (uint32_t)(1U << 30U)

◆ SCMI_PWD_PROTOCOL_VERSION

#define SCMI_PWD_PROTOCOL_VERSION   0x30000

◆ SCMI_PWD_PSTATE_TYPE_LOST

#define SCMI_PWD_PSTATE_TYPE_LOST   (1U << 30)

◆ SCMI_PWD_PSTATE_ID

#define SCMI_PWD_PSTATE_ID   GENMASK(27, 0)

◆ SCMI_PWD_PROTO_ATTRS_NUM_PWD

#define SCMI_PWD_PROTO_ATTRS_NUM_PWD (   attributes)
Value:
((attributes) & \
GENMASK(15, 0))

◆ SCMI_PWD_SHORT_NAME_SIZE

#define SCMI_PWD_SHORT_NAME_SIZE   16

◆ SCMI_PWD_NAME_LENGTH_MAX

#define SCMI_PWD_NAME_LENGTH_MAX   64

◆ SCMI_PWD_SET_FLAGS_ASYNC

#define SCMI_PWD_SET_FLAGS_ASYNC   (1U << 0)

◆ SCMI_PWD_ATTR_PSTATE_CHANGE_NOTIFY

#define SCMI_PWD_ATTR_PSTATE_CHANGE_NOTIFY   (1U << 31)

◆ SCMI_PWD_ATTR_PSTATE_ASYNC

#define SCMI_PWD_ATTR_PSTATE_ASYNC   (1U << 30)

◆ SCMI_PWD_ATTR_PSTATE_SYNC

#define SCMI_PWD_ATTR_PSTATE_SYNC   (1U << 29)

◆ SCMI_PWD_ATTR_PSTATE_CHANGE_RQ_NOTIFY

#define SCMI_PWD_ATTR_PSTATE_CHANGE_RQ_NOTIFY   (1U << 28)

◆ SCMI_PWD_ATTR_EXTENDED_NAME

#define SCMI_PWD_ATTR_EXTENDED_NAME   (1U << 27)

◆ SCMI_PWD_EXTENDED_NAME_MAX

#define SCMI_PWD_EXTENDED_NAME_MAX   64U

◆ SCMI_CLK_PROTO_ATTR_COUNT_MASK

#define SCMI_CLK_PROTO_ATTR_COUNT_MASK   GENMASK(15, 0)

◆ SCMI_CLK_ATTR_RATE_CHANGED_NOTIFY

#define SCMI_CLK_ATTR_RATE_CHANGED_NOTIFY   (1U << 31)

◆ SCMI_CLK_ATTR_RATE_CHANGE_REQUESTED_NOTIFY

#define SCMI_CLK_ATTR_RATE_CHANGE_REQUESTED_NOTIFY   (1U << 30)

◆ SCMI_CLK_ATTR_EXTENDED_NAMES

#define SCMI_CLK_ATTR_EXTENDED_NAMES   (1U << 29)

◆ SCMI_CLK_ATTR_PARENT_CLOCK

#define SCMI_CLK_ATTR_PARENT_CLOCK   (1U << 28)

◆ SCMI_CLK_ATTR_EXTENDED_CONFIG

#define SCMI_CLK_ATTR_EXTENDED_CONFIG   (1U << 28)

◆ SCMI_CLK_ATTR_GET_PERMISSIONS

#define SCMI_CLK_ATTR_GET_PERMISSIONS   (1U << 1)

◆ SCMI_CLK_RATE_ASYNC_NOTIFY

#define SCMI_CLK_RATE_ASYNC_NOTIFY   (1U << 0)

◆ SCMI_CLK_RATE_ASYNC_NORESP

#define SCMI_CLK_RATE_ASYNC_NORESP   ((1U << 0U)) | (1U << 1U))

◆ SCMI_CLK_RATE_ROUND_DOWN

#define SCMI_CLK_RATE_ROUND_DOWN   0

◆ SCMI_CLK_RATE_ROUND_UP

#define SCMI_CLK_RATE_ROUND_UP   (1U << 2)

◆ SCMI_CLK_RATE_ROUND_CLOSEST

#define SCMI_CLK_RATE_ROUND_CLOSEST   (1U << 3)

◆ SCMI_CLK_SHORT_NAME_SIZE

#define SCMI_CLK_SHORT_NAME_SIZE   16

◆ SCMI_CLK_NAME_LENGTH_MAX

#define SCMI_CLK_NAME_LENGTH_MAX   64

◆ SCMI_CLK_CONFIG_SET_ENABLE

#define SCMI_CLK_CONFIG_SET_ENABLE   (1U << 0)

◆ SCMI_CLK_CONFIG_SET_DISABLE

#define SCMI_CLK_CONFIG_SET_DISABLE   (0U)

◆ SCMI_CLK_POSSIBLE_PARENTS_MASK

#define SCMI_CLK_POSSIBLE_PARENTS_MASK   255U

◆ SCMI_CLK_POSSIBLE_PARENTS_NUM_PARENTS_RECV

#define SCMI_CLK_POSSIBLE_PARENTS_NUM_PARENTS_RECV (   x)    ((x) & (uint32_t)0xFF)

◆ SCMI_CLK_POSSIBLE_PARENTS_NUM_PARENTS_REM

#define SCMI_CLK_POSSIBLE_PARENTS_NUM_PARENTS_REM (   x)    ((x) >> 24)

Enumeration Type Documentation

◆ SCMI_CommonCommand

Enumerator
SCMI_PROTOCOL_VERSION 
SCMI_PROTOCOL_ATTRIBUTES 
SCMI_PROTOCOL_MESSAGE_ATTRIBUTES 
SCMI_NEGOTIATE_PROTOCOL_VERSION 

◆ SCMI_StandardProtocol

Enumerator
SCMI_PROTOCOL_BASE 
SCMI_PROTOCOL_POWER 
SCMI_PROTOCOL_SYSTEM 
SCMI_PROTOCOL_PERF 
SCMI_PROTOCOL_CLOCK 
SCMI_PROTOCOL_SENSOR 
SCMI_PROTOCOL_RESET 
SCMI_PROTOCOL_VOLTAGE 
SCMI_PROTOCOL_POWERCAP 
SCMI_PROTOCOL_PINCTRL 

◆ SCMI_StatusCode

Enumerator
SCMI_SUCCESS 
SCMI_NOT_SUPPORTED 
SCMI_INVALID_PARAMETERS 
SCMI_DENIED 
SCMI_NOT_FOUND 
SCMI_OUT_OF_RANGE 
SCMI_BUSY 
SCMI_COMMS_ERROR 
SCMI_GENERIC_ERROR 
SCMI_HARDWARE_ERROR 
SCMI_PROTOCOL_ERROR 

◆ SCMI_BaseMessageCommand

Enumerator
SCMI_BASE_DISCOVER_VENDOR 
SCMI_BASE_DISCOVER_SUB_VENDOR 
SCMI_BASE_DISCOVER_IMPL_VERSION 
SCMI_BASE_DISCOVER_LIST_PROTOCOLS 
SCMI_BASE_DISCOVER_AGENT 
SCMI_BASE_NOTIFY_ERRORS 
SCMI_BASE_SET_DEVICE_PERMISSIONS 
SCMI_BASE_SET_PROTOCOL_PERMISSIONS 
SCMI_BASE_RESET_AGENT_CONFIGURATION 

◆ SCMI_PowerDomainMessageId

Enumerator
SCMI_PWD_ATTRIBUTES 
SCMI_PWD_STATE_SET 
SCMI_PWD_STATE_GET 
SCMI_PWD_STATE_NOTIFY 
SCMI_PWD_STATE_CHANGE_REQUESTED_NOTIFY 
SCMI_PWD_NAME_GET 

◆ SCMI_ClockMessageId

Enumerator
SCMI_CLOCK_ATTRIBUTES 
SCMI_CLOCK_RATE_SET 
SCMI_CLOCK_RATE_GET 
SCMI_CLOCK_CONFIG_SET 
SCMI_CLOCK_NAME_GET 
SCMI_CLOCK_CONFIG_GET 
SCMI_CLOCK_POSSIBLE_PARENTS_GET 
SCMI_CLOCK_PARENT_SET 
SCMI_CLOCK_PARENT_GET 
GENMASK
#define GENMASK(h, l)
Definition: scmi_protocol.h:55