zynqmp_pm_pi...set_function(9)
πΈ zynqmp_pm_pi...set_function(9) β Kernel API Manual πΈ
okay bestie, so this is a page straight out of the Kernel API Manual, and it's all about one little pin getting its whole function identity assigned. very main character of it, honestly π
β¨ NAME β¨
zynqmp_pm_pinctrl_set_function β Set requested function for the pin π
β¨ SYNOPSIS β¨
int zynqmp_pm_pinctrl_set_function (const u32 pin , const u32 id );
like, it takes two const u32s and hands you back an int. that's the whole vibe check π¦
π«Ά ARGUMENTS π«Ά
pinβ Pin number. yes babe, which pin. gotta tell it which one πidβ Function ID to set. the actual function you're assigning to that pin, no cap
π DESCRIPTION π
So what does it do? This function sets requested function for the given pin. that's it. that's the whole thing. it's giving "short and iconic" β¨ literally just assign this function to this pin, periodt.
π RETURN π
Returns status, either success or error+reason. so yeah, you'll know if it ate or if it flopped π β and if it flopped, it comes with a reason attached, which is honestly so considerate of it π«Ά
π SEE ALSO π
okay so before you go, the whole extended family wants to say hi. first up, the kernel file itself lives at ./drivers/firmware/xilinx/zynqmp.c, and honestly the friend group here is huge:
struct zynqmp_devinfo(9), struct pm_api_feature_data(9), zynqmp_pm_ret_code(9), do_fw_call_smc(9), do_fw_call_hvc(9), zynqmp_pm_feature(9), zynqmp_pm_is_function_supported(9), zynqmp_pm_invoke_fw_fn(9), zynqmp_pm_invoke_fn(9), zynqmp_pm_get_api_version(9), zynqmp_pm_get_chipid(9), zynqmp_pm_get_family_info(9), zynqmp_pm_get_sip_svc_version(9), zynqmp_pm_get_trustzone_version(9), get_set_conduit_method(9), zynqmp_pm_query_data(9)
and then the clock crew rolled in: zynqmp_pm_clock_enable(9), zynqmp_pm_clock_disable(9), zynqmp_pm_clock_getstate(9), zynqmp_pm_clock_setdivider(9), zynqmp_pm_clock_getdivider(9), zynqmp_pm_clock_setparent(9), zynqmp_pm_clock_getparent(9), zynqmp_pm_set_pll_frac_mode(9), zynqmp_pm_get_pll_frac_mode(9), zynqmp_pm_set_pll_frac_data(9), zynqmp_pm_get_pll_frac_data(9), zynqmp_pm_set_sd_tapdelay(9), zynqmp_pm_sd_dll_reset(9), zynqmp_pm_ospi_mux_select(9)
plus the GGS girlies: zynqmp_pm_write_ggs(9), zynqmp_pm_read_ggs(9), zynqmp_pm_write_pggs(9), zynqmp_pm_read_pggs(9), zynqmp_pm_set_boot_health_status(9), zynqmp_pm_reset_assert(9), zynqmp_pm_reset_get_status(9), zynqmp_pm_fpga_load(9), zynqmp_pm_fpga_get_status(9), zynqmp_pm_fpga_get_config_status(9)
aaaand our own pinctrl besties π: zynqmp_pm_pinctrl_request(9), zynqmp_pm_pinctrl_release(9), zynqmp_pm_pinctrl_get_config(9), zynqmp_pm_pinctrl_set_config(9), zynqmp_pm_bootmode_read(9), zynqmp_pm_bootmode_write(9), zynqmp_pm_init_finalize(9), zynqmp_pm_set_suspend_mode(9), zynqmp_pm_request_node(9), zynqmp_pm_release_node(9), zynqmp_pm_get_rpu_mode(9), zynqmp_pm_set_rpu_mode(9), zynqmp_pm_set_tcm_config(9), zynqmp_pm_get_node_status(9), zynqmp_pm_get_rpu_node_status(9), zynqmp_pm_force_pwrdwn(9), zynqmp_pm_request_wake(9), zynqmp_pm_start_rpu(9), zynqmp_pm_stop_rpu(9), zynqmp_pm_set_requirement(9), zynqmp_pm_load_pdi(9), zynqmp_pm_efuse_access(9), zynqmp_pm_register_notifier(9), zynqmp_pm_system_shutdown(9), zynqmp_pm_set_feature_config(9), zynqmp_pm_get_feature_config(9), zynqmp_pm_sec_read_reg(9), zynqmp_pm_sec_mask_write_reg(9), zynqmp_pm_set_sd_config(9), zynqmp_pm_set_gem_config(9), struct zynqmp_pm_shutdown_scope(9), zynqmp_pm_is_shutdown_scope_valid(9), zynqmp_clear_pm_state(9)
like I said. huge friend group. iykyk π
ngl bestie, that SEE ALSO section is a lot of reading. hydrate, stretch, then come back π
okay that's the page!! π this little cutie comes from ./drivers/firmware/xilinx and it's dated October 2026 β so mark your calendar, screenshot it, frame it, whatever you gotta do. mwah, go set some pin functions π§ββοΈβ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms