Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
SCMI clock protocol helpers. More...
#include <zephyr/drivers/firmware/scmi/protocol.h>
Go to the source code of this file.
Data Structures | |
struct | scmi_clock_config |
Describes the parameters for the CLOCK_CONFIG_SET command. More... | |
Macros | |
#define | SCMI_CLK_CONFIG_DISABLE_ENABLE_MASK GENMASK(1, 0) |
#define | SCMI_CLK_CONFIG_ENABLE_DISABLE(x) ((uint32_t)(x) & SCMI_CLK_CONFIG_DISABLE_ENABLE_MASK) |
#define | SCMI_CLK_ATTRIBUTES_CLK_NUM(x) ((x) & GENMASK(15, 0)) |
Enumerations | |
enum | scmi_clock_message { SCMI_CLK_MSG_PROTOCOL_VERSION = 0x0 , SCMI_CLK_MSG_PROTOCOL_ATTRIBUTES = 0x1 , SCMI_CLK_MSG_PROTOCOL_MESSAGE_ATTRIBUTES = 0x2 , SCMI_CLK_MSG_CLOCK_ATTRIBUTES = 0x3 , SCMI_CLK_MSG_CLOCK_DESCRIBE_RATES = 0x4 , SCMI_CLK_MSG_CLOCK_RATE_SET = 0x5 , SCMI_CLK_MSG_CLOCK_RATE_GET = 0x6 , SCMI_CLK_MSG_CLOCK_CONFIG_SET = 0x7 , SCMI_CLK_MSG_CLOCK_NAME_GET = 0x8 , SCMI_CLK_MSG_CLOCK_RATE_NOTIFY = 0x9 , SCMI_CLK_MSG_CLOCK_RATE_CHANGE_REQUESTED_NOTIFY = 0xa , SCMI_CLK_MSG_CLOCK_CONFIG_GET = 0xb , SCMI_CLK_MSG_CLOCK_POSSIBLE_PARENTS_GET = 0xc , SCMI_CLK_MSG_CLOCK_PARENT_SET = 0xd , SCMI_CLK_MSG_CLOCK_PARENT_GET = 0xe , SCMI_CLK_MSG_CLOCK_GET_PERMISSIONS = 0xf , SCMI_CLK_MSG_NEGOTIATE_PROTOCOL_VERSION = 0x10 } |
Clock protocol command message IDs. More... | |
Functions | |
int | scmi_clock_protocol_attributes (struct scmi_protocol *proto, uint32_t *attributes) |
Send the PROTOCOL_ATTRIBUTES command and get its reply. | |
int | scmi_clock_config_set (struct scmi_protocol *proto, struct scmi_clock_config *cfg) |
Send the CLOCK_CONFIG_SET command and get its reply. | |
int | scmi_clock_rate_get (struct scmi_protocol *proto, uint32_t clk_id, uint32_t *rate) |
Query the rate of a clock. | |
SCMI clock protocol helpers.
#define SCMI_CLK_ATTRIBUTES_CLK_NUM | ( | x | ) | ((x) & GENMASK(15, 0)) |
#define SCMI_CLK_CONFIG_DISABLE_ENABLE_MASK GENMASK(1, 0) |
#define SCMI_CLK_CONFIG_ENABLE_DISABLE | ( | x | ) | ((uint32_t)(x) & SCMI_CLK_CONFIG_DISABLE_ENABLE_MASK) |
enum scmi_clock_message |
Clock protocol command message IDs.
int scmi_clock_config_set | ( | struct scmi_protocol * | proto, |
struct scmi_clock_config * | cfg | ||
) |
Send the CLOCK_CONFIG_SET command and get its reply.
proto | pointer to SCMI clock protocol data |
cfg | pointer to structure containing configuration to be set |
0 | if successful |
negative | errno if failure |
int scmi_clock_protocol_attributes | ( | struct scmi_protocol * | proto, |
uint32_t * | attributes | ||
) |
Send the PROTOCOL_ATTRIBUTES command and get its reply.
proto | pointer to SCMI clock protocol data |
attributes | pointer to attributes to be set via this command |
0 | if successful |
negative | errno if failure |
int scmi_clock_rate_get | ( | struct scmi_protocol * | proto, |
uint32_t | clk_id, | ||
uint32_t * | rate | ||
) |
Query the rate of a clock.
proto | pointer to SCMI clock protocol data |
clk_id | ID of the clock for which the query is done |
rate | pointer to rate to be set via this command |
0 | if successful |
negative | errno if failure |