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

SCMI clock protocol helpers. 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...
 

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.
 

Detailed Description

SCMI clock protocol helpers.

Macro Definition Documentation

◆ SCMI_CLK_ATTRIBUTES_CLK_NUM

#define SCMI_CLK_ATTRIBUTES_CLK_NUM (   x)    ((x) & GENMASK(15, 0))

◆ SCMI_CLK_CONFIG_DISABLE_ENABLE_MASK

#define SCMI_CLK_CONFIG_DISABLE_ENABLE_MASK   GENMASK(1, 0)

◆ SCMI_CLK_CONFIG_ENABLE_DISABLE

#define SCMI_CLK_CONFIG_ENABLE_DISABLE (   x)     ((uint32_t)(x) & SCMI_CLK_CONFIG_DISABLE_ENABLE_MASK)

Enumeration Type Documentation

◆ scmi_clock_message

Clock protocol command message IDs.

Enumerator
SCMI_CLK_MSG_PROTOCOL_VERSION 
SCMI_CLK_MSG_PROTOCOL_ATTRIBUTES 
SCMI_CLK_MSG_PROTOCOL_MESSAGE_ATTRIBUTES 
SCMI_CLK_MSG_CLOCK_ATTRIBUTES 
SCMI_CLK_MSG_CLOCK_DESCRIBE_RATES 
SCMI_CLK_MSG_CLOCK_RATE_SET 
SCMI_CLK_MSG_CLOCK_RATE_GET 
SCMI_CLK_MSG_CLOCK_CONFIG_SET 
SCMI_CLK_MSG_CLOCK_NAME_GET 
SCMI_CLK_MSG_CLOCK_RATE_NOTIFY 
SCMI_CLK_MSG_CLOCK_RATE_CHANGE_REQUESTED_NOTIFY 
SCMI_CLK_MSG_CLOCK_CONFIG_GET 
SCMI_CLK_MSG_CLOCK_POSSIBLE_PARENTS_GET 
SCMI_CLK_MSG_CLOCK_PARENT_SET 
SCMI_CLK_MSG_CLOCK_PARENT_GET 
SCMI_CLK_MSG_CLOCK_GET_PERMISSIONS 
SCMI_CLK_MSG_NEGOTIATE_PROTOCOL_VERSION 

Function Documentation

◆ scmi_clock_config_set()

int scmi_clock_config_set ( struct scmi_protocol proto,
struct scmi_clock_config cfg 
)

Send the CLOCK_CONFIG_SET command and get its reply.

Parameters
protopointer to SCMI clock protocol data
cfgpointer to structure containing configuration to be set
Return values
0if successful
negativeerrno if failure

◆ scmi_clock_protocol_attributes()

int scmi_clock_protocol_attributes ( struct scmi_protocol proto,
uint32_t attributes 
)

Send the PROTOCOL_ATTRIBUTES command and get its reply.

Parameters
protopointer to SCMI clock protocol data
attributespointer to attributes to be set via this command
Return values
0if successful
negativeerrno if failure

◆ scmi_clock_rate_get()

int scmi_clock_rate_get ( struct scmi_protocol proto,
uint32_t  clk_id,
uint32_t rate 
)

Query the rate of a clock.

Parameters
protopointer to SCMI clock protocol data
clk_idID of the clock for which the query is done
ratepointer to rate to be set via this command
Return values
0if successful
negativeerrno if failure