Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
NXP CPU Domain Protocol

NXP vendor-specific CPU domain management via SCMI. More...

Files

file  cpu.h
 Header file for the NXP SCMI CPU Domain Protocol.

Data Structures

struct  scmi_nxp_cpu_sleep_mode_config
 Describes the parameters for the CPU_STATE_SET command. More...
struct  scmi_pd_lpm_settings
 Low power mode setting for a single power domain. More...
struct  scmi_nxp_cpu_pd_lpm_config
 Describes CPU power domain low power mode setting. More...
struct  scmi_nxp_cpu_irq_mask_config
 Describes the parameters for the CPU_IRQ_WAKE_SET command. More...
struct  scmi_nxp_cpu_vector_config
 Describes the parameters for the CPU_RESET_VECTOR_SET command. More...
struct  scmi_nxp_cpu_info
 Describes the parameters for the CPU_INFO_GET command. More...

Macros

#define SCMI_NXP_CPU_SLEEP_FLAG_IRQ_MUX   0x1U
 CPU sleep flag: wake-up is routed through the IRQ mux.
#define SCMI_PROTOCOL_NXP_CPU_DOMAIN   130
 Protocol ID of the NXP CPU domain protocol.
#define SCMI_NXP_CPU_MAX_PDCONFIGS_T   7U
 Maximum number of power-domain LPM configurations per request.
#define SCMI_NXP_CPU_IRQ_WAKE_NUM   22U
 Maximum number of IRQ wake mask words per request.
#define SCMI_NXP_CPU_VEC_FLAGS_BOOT   BIT(29)
 CPU vector flag: Boot address (cold boot/reset).
#define SCMI_NXP_CPU_VEC_FLAGS_START   BIT(30)
 CPU vector flag: Start address (warm start).
#define SCMI_NXP_CPU_VEC_FLAGS_RESUME   BIT(31)
 CPU vector flag: Resume address (exit from suspend).
#define SCMI_NXP_CPU_PROTOCOL_SUPPORTED_VERSION   0x10000
 Version of the NXP SCMI CPU domain protocol supported by this driver.

Functions

int scmi_nxp_cpu_sleep_mode_set (struct scmi_nxp_cpu_sleep_mode_config *cfg)
 Send the CPU_SLEEP_MODE_SET command and get its reply.
int scmi_nxp_cpu_pd_lpm_set (struct scmi_nxp_cpu_pd_lpm_config *cfg)
 Send the SCMI_NXP_CPU_DOMAIN_MSG_CPU_PD_LPM_CONFIG_SET command and get its reply.
int scmi_nxp_cpu_set_irq_mask (struct scmi_nxp_cpu_irq_mask_config *cfg)
 Send the CPU_IRQ_WAKE_SET command and get its reply.
int scmi_nxp_cpu_reset_vector (struct scmi_nxp_cpu_vector_config *cfg)
 Send the CPU_RESET_VECTOR_SET command and get its reply.
int scmi_nxp_cpu_info_get (uint32_t cpu_id, struct scmi_nxp_cpu_info *cfg)
 Send the CPU_INFO_GET command and get its reply.

Detailed Description

NXP vendor-specific CPU domain management via SCMI.

Macro Definition Documentation

◆ SCMI_NXP_CPU_IRQ_WAKE_NUM

#define SCMI_NXP_CPU_IRQ_WAKE_NUM   22U

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

Maximum number of IRQ wake mask words per request.

◆ SCMI_NXP_CPU_MAX_PDCONFIGS_T

#define SCMI_NXP_CPU_MAX_PDCONFIGS_T   7U

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

Maximum number of power-domain LPM configurations per request.

◆ SCMI_NXP_CPU_PROTOCOL_SUPPORTED_VERSION

#define SCMI_NXP_CPU_PROTOCOL_SUPPORTED_VERSION   0x10000

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

Version of the NXP SCMI CPU domain protocol supported by this driver.

◆ SCMI_NXP_CPU_SLEEP_FLAG_IRQ_MUX

#define SCMI_NXP_CPU_SLEEP_FLAG_IRQ_MUX   0x1U

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

CPU sleep flag: wake-up is routed through the IRQ mux.

◆ SCMI_NXP_CPU_VEC_FLAGS_BOOT

#define SCMI_NXP_CPU_VEC_FLAGS_BOOT   BIT(29)

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

CPU vector flag: Boot address (cold boot/reset).

◆ SCMI_NXP_CPU_VEC_FLAGS_RESUME

#define SCMI_NXP_CPU_VEC_FLAGS_RESUME   BIT(31)

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

CPU vector flag: Resume address (exit from suspend).

◆ SCMI_NXP_CPU_VEC_FLAGS_START

#define SCMI_NXP_CPU_VEC_FLAGS_START   BIT(30)

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

CPU vector flag: Start address (warm start).

◆ SCMI_PROTOCOL_NXP_CPU_DOMAIN

#define SCMI_PROTOCOL_NXP_CPU_DOMAIN   130

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

Protocol ID of the NXP CPU domain protocol.

Function Documentation

◆ scmi_nxp_cpu_info_get()

int scmi_nxp_cpu_info_get ( uint32_t cpu_id,
struct scmi_nxp_cpu_info * cfg )

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

Send the CPU_INFO_GET command and get its reply.

Parameters
cpu_idCPU ID to query (input)
cfgpointer to structure to receive CPU information (output)
Returns
0 on success, negative errno value on failure.

◆ scmi_nxp_cpu_pd_lpm_set()

int scmi_nxp_cpu_pd_lpm_set ( struct scmi_nxp_cpu_pd_lpm_config * cfg)

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

Send the SCMI_NXP_CPU_DOMAIN_MSG_CPU_PD_LPM_CONFIG_SET command and get its reply.

Parameters
cfgpointer to structure containing configuration to be set
Returns
0 on success, negative errno value on failure.

◆ scmi_nxp_cpu_reset_vector()

int scmi_nxp_cpu_reset_vector ( struct scmi_nxp_cpu_vector_config * cfg)

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

Send the CPU_RESET_VECTOR_SET command and get its reply.

Parameters
cfgpointer to structure containing configuration to be set
Returns
0 on success, negative errno value on failure.

◆ scmi_nxp_cpu_set_irq_mask()

int scmi_nxp_cpu_set_irq_mask ( struct scmi_nxp_cpu_irq_mask_config * cfg)

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

Send the CPU_IRQ_WAKE_SET command and get its reply.

Parameters
cfgpointer to structure containing configuration to be set
Returns
0 on success, negative errno value on failure.

◆ scmi_nxp_cpu_sleep_mode_set()

int scmi_nxp_cpu_sleep_mode_set ( struct scmi_nxp_cpu_sleep_mode_config * cfg)

#include <zephyr/drivers/firmware/scmi/nxp/cpu.h>

Send the CPU_SLEEP_MODE_SET command and get its reply.

Parameters
cfgpointer to structure containing configuration to be set
Returns
0 on success, negative errno value on failure.