zynqmp_pm_pi...set_function(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 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