Zephyr Project API 4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
clk.h File Reference

Header file for the SCMI Clock Protocol. More...

Go to the source code of this file.

Data Structures

struct  scmi_clock_config
 Describes the parameters for the CLOCK_CONFIG_SET command. More...
struct  scmi_clock_rate_config
 Describes the parameters for the CLOCK_RATE_SET command. More...

Macros

#define SCMI_CLK_CONFIG_DISABLE_ENABLE_MASK   GENMASK(1, 0)
#define SCMI_CLK_CONFIG_ENABLE_DISABLE(x)
#define SCMI_CLK_ATTRIBUTES_CLK_NUM(x)
#define SCMI_CLK_RATE_SET_FLAGS_ASYNC   BIT(0)
#define SCMI_CLK_RATE_SET_FLAGS_IGNORE_DELEAYED_RESP   BIT(1)
#define SCMI_CLK_RATE_SET_FLAGS_ROUNDS_UP_DOWN   BIT(2)
#define SCMI_CLK_RATE_SET_FLAGS_ROUNDS_AUTO   BIT(3)
#define SCMI_CLK_PROTOCOL_SUPPORTED_VERSION   0x30000

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.
int scmi_clock_rate_set (struct scmi_protocol *proto, struct scmi_clock_rate_config *cfg)
 Send the CLOCK_RATE_SET command and get its reply.
int scmi_clock_parent_get (struct scmi_protocol *proto, uint32_t clk_id, uint32_t *parent_id)
 Query the parent of a clock.
int scmi_clock_parent_set (struct scmi_protocol *proto, uint32_t clk_id, uint32_t parent_id)
 Send the CLOCK_PARENT_SET command and get its reply.

Detailed Description

Header file for the SCMI Clock Protocol.