Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
cpu.h
Go to the documentation of this file.
1/*
2 * Copyright 2025 NXP
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12
13#ifndef _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_CPU_H_
14#define _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_CPU_H_
15
17#if __has_include("scmi_cpu_soc.h")
18#include <scmi_cpu_soc.h>
19#endif
20
27
29#define SCMI_NXP_CPU_SLEEP_FLAG_IRQ_MUX 0x1U
30
32#define SCMI_PROTOCOL_NXP_CPU_DOMAIN 130
33
35#define SCMI_NXP_CPU_MAX_PDCONFIGS_T 7U
36
38#define SCMI_NXP_CPU_IRQ_WAKE_NUM 22U
39
41#define SCMI_NXP_CPU_VEC_FLAGS_BOOT BIT(29)
42
44#define SCMI_NXP_CPU_VEC_FLAGS_START BIT(30)
45
47#define SCMI_NXP_CPU_VEC_FLAGS_RESUME BIT(31)
48
50#define SCMI_NXP_CPU_PROTOCOL_SUPPORTED_VERSION 0x10000
51
66
80
94
110
126
142
152
162
171
180
190
194
195#endif /* _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_CPU_H_ */
Header file for the SCMI (System Control and Management Interface) driver API.
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_info_get(uint32_t cpu_id, struct scmi_nxp_cpu_info *cfg)
Send the CPU_INFO_GET 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.
#define SCMI_NXP_CPU_IRQ_WAKE_NUM
Maximum number of IRQ wake mask words per request.
Definition cpu.h:38
#define SCMI_NXP_CPU_MAX_PDCONFIGS_T
Maximum number of power-domain LPM configurations per request.
Definition cpu.h:35
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_set_irq_mask(struct scmi_nxp_cpu_irq_mask_config *cfg)
Send the CPU_IRQ_WAKE_SET command and get its reply.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Describes the parameters for the CPU_INFO_GET command.
Definition cpu.h:132
uint32_t sleep_mode
Current sleep mode of the CPU.
Definition cpu.h:136
uint32_t vector_low
Lower 32 bits of the CPU reset vector address.
Definition cpu.h:138
uint32_t run_mode
Current run mode of the CPU.
Definition cpu.h:134
uint32_t vector_high
Upper 32 bits of the CPU reset vector address.
Definition cpu.h:140
Describes the parameters for the CPU_IRQ_WAKE_SET command.
Definition cpu.h:100
uint32_t mask[22U]
IRQ wake-up mask words.
Definition cpu.h:108
uint32_t cpu_id
ID of the CPU to configure.
Definition cpu.h:102
uint32_t num_mask
Number of valid entries in mask.
Definition cpu.h:106
uint32_t mask_idx
Index of the first mask word to write.
Definition cpu.h:104
Describes CPU power domain low power mode setting.
Definition cpu.h:86
uint32_t cpu_id
ID of the CPU to configure.
Definition cpu.h:88
uint32_t num_cfg
Number of valid entries in cfgs.
Definition cpu.h:90
struct scmi_pd_lpm_settings cfgs[7U]
Per power-domain low power mode settings.
Definition cpu.h:92
Describes the parameters for the CPU_STATE_SET command.
Definition cpu.h:58
uint32_t cpu_id
ID of the CPU to configure.
Definition cpu.h:60
uint32_t flags
Sleep flags (see SCMI_NXP_CPU_SLEEP_FLAG_*).
Definition cpu.h:62
uint32_t sleep_mode
sleep mode to enter
Definition cpu.h:64
Describes the parameters for the CPU_RESET_VECTOR_SET command.
Definition cpu.h:116
uint32_t flags
Vector flags (see SCMI_NXP_CPU_VEC_FLAGS_*).
Definition cpu.h:120
uint32_t cpu_id
ID of the CPU to configure.
Definition cpu.h:118
uint32_t vector_low
Lower 32 bits of the reset vector address.
Definition cpu.h:122
uint32_t vector_high
Upper 32 bits of the reset vector address.
Definition cpu.h:124
Low power mode setting for a single power domain.
Definition cpu.h:72
uint32_t ret_mask
Retention mask applied in low power mode.
Definition cpu.h:78
uint32_t lpm_setting
Low power mode setting for the domain.
Definition cpu.h:76
uint32_t domain_id
ID of the power domain.
Definition cpu.h:74