Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
 4.0.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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)
 
#define SCMI_CLK_ATTRIBUTES_CLK_NUM(x)
 

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)
Value:
((x) & GENMASK(15, 0))
#define GENMASK(h, l)
Create a contiguous bitmask starting at bit position l and ending at position h.
Definition util.h:79

◆ 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)
Value:
#define SCMI_CLK_CONFIG_DISABLE_ENABLE_MASK
Definition clk.h:17
__UINT32_TYPE__ uint32_t
Definition stdint.h:90

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