include/linux/firmware/xlnx-zynqmp.h
Source file repositories/reference/linux-study-clean/include/linux/firmware/xlnx-zynqmp.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/firmware/xlnx-zynqmp.h- Extension
.h- Size
- 25656 bytes
- Lines
- 980
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/err.hlinux/firmware/xlnx-zynqmp-ufs.hlinux/firmware/xlnx-zynqmp-crypto.h
Detected Declarations
struct zynqmp_pm_query_dataenum pm_module_idenum pm_api_cb_idenum pm_api_idenum pm_ret_statusenum pm_ioctl_idenum pm_query_idenum rpu_oper_modeenum rpu_boot_memenum rpu_tcm_combenum zynqmp_pm_reset_actionenum zynqmp_pm_resetenum zynqmp_pm_suspend_reasonenum zynqmp_pm_request_ackenum pm_node_idenum tap_delay_typeenum dll_reset_typeenum pm_pinctrl_config_paramenum pm_pinctrl_slew_rateenum pm_pinctrl_bias_statusenum pm_pinctrl_pull_ctrlenum pm_pinctrl_schmitt_cmosenum pm_pinctrl_drive_strengthenum pm_pinctrl_tri_stateenum zynqmp_pm_shutdown_typeenum zynqmp_pm_shutdown_subtypeenum tap_delay_signal_typeenum tap_delay_bypass_ctrlenum ospi_mux_select_typeenum pm_feature_config_idenum pm_sd_config_typeenum pm_gem_config_typeenum pm_node_statusfunction zynqmp_pm_get_api_versionfunction zynqmp_pm_get_chipidfunction zynqmp_pm_get_family_infofunction zynqmp_pm_query_datafunction zynqmp_pm_clock_enablefunction zynqmp_pm_clock_disablefunction zynqmp_pm_clock_getstatefunction zynqmp_pm_clock_setdividerfunction zynqmp_pm_clock_getdividerfunction zynqmp_pm_clock_setparentfunction zynqmp_pm_clock_getparentfunction zynqmp_pm_set_pll_frac_modefunction zynqmp_pm_get_pll_frac_modefunction zynqmp_pm_set_pll_frac_datafunction zynqmp_pm_get_pll_frac_data
Annotated Snippet
struct zynqmp_pm_query_data {
u32 qid;
u32 arg1;
u32 arg2;
u32 arg3;
};
int zynqmp_pm_invoke_fn(u32 pm_api_id, u32 *ret_payload, u32 num_args, ...);
int zynqmp_pm_invoke_fw_fn(u32 pm_api_id, u32 *ret_payload, u32 num_args, ...);
#if IS_REACHABLE(CONFIG_ZYNQMP_FIRMWARE)
int zynqmp_pm_get_api_version(u32 *version);
int zynqmp_pm_get_chipid(u32 *idcode, u32 *version);
int zynqmp_pm_get_family_info(u32 *family);
int zynqmp_pm_query_data(struct zynqmp_pm_query_data qdata, u32 *out);
int zynqmp_pm_clock_enable(u32 clock_id);
int zynqmp_pm_clock_disable(u32 clock_id);
int zynqmp_pm_clock_getstate(u32 clock_id, u32 *state);
int zynqmp_pm_clock_setdivider(u32 clock_id, u32 divider);
int zynqmp_pm_clock_getdivider(u32 clock_id, u32 *divider);
int zynqmp_pm_clock_setparent(u32 clock_id, u32 parent_id);
int zynqmp_pm_clock_getparent(u32 clock_id, u32 *parent_id);
int zynqmp_pm_set_pll_frac_mode(u32 clk_id, u32 mode);
int zynqmp_pm_get_pll_frac_mode(u32 clk_id, u32 *mode);
int zynqmp_pm_set_pll_frac_data(u32 clk_id, u32 data);
int zynqmp_pm_get_pll_frac_data(u32 clk_id, u32 *data);
int zynqmp_pm_set_sd_tapdelay(u32 node_id, u32 type, u32 value);
int zynqmp_pm_sd_dll_reset(u32 node_id, u32 type);
int zynqmp_pm_ospi_mux_select(u32 dev_id, u32 select);
int zynqmp_pm_reset_assert(const u32 reset,
const enum zynqmp_pm_reset_action assert_flag);
int zynqmp_pm_reset_get_status(const u32 reset, u32 *status);
unsigned int zynqmp_pm_bootmode_read(u32 *ps_mode);
int zynqmp_pm_bootmode_write(u32 ps_mode);
int zynqmp_pm_set_suspend_mode(u32 mode);
int zynqmp_pm_request_node(const u32 node, const u32 capabilities,
const u32 qos, const enum zynqmp_pm_request_ack ack);
int zynqmp_pm_release_node(const u32 node);
int zynqmp_pm_set_requirement(const u32 node, const u32 capabilities,
const u32 qos,
const enum zynqmp_pm_request_ack ack);
int zynqmp_pm_efuse_access(const u64 address, u32 *out);
int zynqmp_pm_fpga_load(const u64 address, const u32 size, const u32 flags);
int zynqmp_pm_fpga_get_status(u32 *value);
int zynqmp_pm_fpga_get_config_status(u32 *value);
int zynqmp_pm_write_ggs(u32 index, u32 value);
int zynqmp_pm_read_ggs(u32 index, u32 *value);
int zynqmp_pm_write_pggs(u32 index, u32 value);
int zynqmp_pm_read_pggs(u32 index, u32 *value);
int zynqmp_pm_set_tapdelay_bypass(u32 index, u32 value);
int zynqmp_pm_system_shutdown(const u32 type, const u32 subtype);
int zynqmp_pm_set_boot_health_status(u32 value);
int zynqmp_pm_pinctrl_request(const u32 pin);
int zynqmp_pm_pinctrl_release(const u32 pin);
int zynqmp_pm_pinctrl_set_function(const u32 pin, const u32 id);
int zynqmp_pm_pinctrl_get_config(const u32 pin, const u32 param,
u32 *value);
int zynqmp_pm_pinctrl_set_config(const u32 pin, const u32 param,
u32 value);
int zynqmp_pm_load_pdi(const u32 src, const u64 address);
int zynqmp_pm_register_notifier(const u32 node, const u32 event,
const u32 wake, const u32 enable);
int zynqmp_pm_feature(const u32 api_id);
int zynqmp_pm_is_function_supported(const u32 api_id, const u32 id);
int zynqmp_pm_set_feature_config(enum pm_feature_config_id id, u32 value);
int zynqmp_pm_get_feature_config(enum pm_feature_config_id id, u32 *payload);
int zynqmp_pm_sec_read_reg(u32 node_id, u32 offset, u32 *ret_value);
int zynqmp_pm_sec_mask_write_reg(const u32 node_id, const u32 offset,
u32 mask, u32 value);
int zynqmp_pm_register_sgi(u32 sgi_num, u32 reset);
int zynqmp_pm_force_pwrdwn(const u32 target,
const enum zynqmp_pm_request_ack ack);
int zynqmp_pm_request_wake(const u32 node,
const bool set_addr,
const u64 address,
const enum zynqmp_pm_request_ack ack);
int zynqmp_pm_get_rpu_mode(u32 node_id, enum rpu_oper_mode *rpu_mode);
int zynqmp_pm_set_rpu_mode(u32 node_id, enum rpu_oper_mode rpu_mode);
int zynqmp_pm_set_tcm_config(u32 node_id, enum rpu_tcm_comb tcm_mode);
int zynqmp_pm_get_node_status(const u32 node, u32 *const status,
u32 *const requirements, u32 *const usage);
int zynqmp_pm_get_rpu_node_status(const u32 node, u32 *const status,
u32 *const requirements, u32 *const usage);
int zynqmp_pm_set_sd_config(u32 node, enum pm_sd_config_type config, u32 value);
int zynqmp_pm_set_gem_config(u32 node, enum pm_gem_config_type config,
u32 value);
#else
static inline int zynqmp_pm_get_api_version(u32 *version)
{
return -ENODEV;
Annotation
- Immediate include surface: `linux/types.h`, `linux/err.h`, `linux/firmware/xlnx-zynqmp-ufs.h`, `linux/firmware/xlnx-zynqmp-crypto.h`.
- Detected declarations: `struct zynqmp_pm_query_data`, `enum pm_module_id`, `enum pm_api_cb_id`, `enum pm_api_id`, `enum pm_ret_status`, `enum pm_ioctl_id`, `enum pm_query_id`, `enum rpu_oper_mode`, `enum rpu_boot_mem`, `enum rpu_tcm_comb`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.