Zephyr API Documentation 4.1.99
A Scalable Open Source RTOS
 4.1.99
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...
 
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)
 

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

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

◆ SCMI_CLK_RATE_SET_FLAGS_ASYNC

#define SCMI_CLK_RATE_SET_FLAGS_ASYNC   BIT(0)

◆ SCMI_CLK_RATE_SET_FLAGS_IGNORE_DELEAYED_RESP

#define SCMI_CLK_RATE_SET_FLAGS_IGNORE_DELEAYED_RESP   BIT(1)

◆ SCMI_CLK_RATE_SET_FLAGS_ROUNDS_AUTO

#define SCMI_CLK_RATE_SET_FLAGS_ROUNDS_AUTO   BIT(3)

◆ SCMI_CLK_RATE_SET_FLAGS_ROUNDS_UP_DOWN

#define SCMI_CLK_RATE_SET_FLAGS_ROUNDS_UP_DOWN   BIT(2)

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_parent_get()

int scmi_clock_parent_get ( struct scmi_protocol * proto,
uint32_t clk_id,
uint32_t * parent_id )

Query the parent of a clock.

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

◆ scmi_clock_parent_set()

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.

Parameters
protopointer to SCMI clock protocol data
clk_idID of the clock for which the query is done
parent_idto be set via this command 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

◆ scmi_clock_rate_set()

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.

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