Zephyr API 3.6.99
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...
 
struct  scmi_clock_attributes
 Describes the content of the CLOCK_ATTRIBUTES command reply. 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
 
#define SCMI_CLK_NAME_LEN   16
 clock name length (short version)
 
#define SCMI_CLK_ENABLED(attributes)
 get the clock's enabled status based on given attributes
 

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.
 
int scmi_clock_attributes (struct scmi_protocol *proto, uint32_t clk_id, struct scmi_clock_attributes *attributes)
 Send the CLOCK_ATTRIBUTES command and get its reply.
 

Detailed Description

Header file for the SCMI Clock Protocol.