STRUCT PCS_FUNCTION(9)
π struct pcs_function(9) β like, the whole Kernel API Manual page, bestie
okay so this is a page straight out of the Kernel API Manual (yes, struct pcs_function(9), that one π) and it's genuinely so niche and so good. it's the little struct that holds a pinctrl function and honestly it ate.
β¨ NAME β¨
struct pcs_function β pinctrl function. that's it. that's the whole vibe. short, iconic, no notes π¦
πΈ SYNOPSIS πΈ
here's the shape of it, copied exactly, do not touch:
struct pcs_function {
const char *name;
struct pcs_func_vals *vals;
unsigned nvals;
struct pcs_conf_vals *conf;
int nconfs;
struct list_head node;
};
like, look at her. six members, zero drama, main character energy π
π«Ά Members π«Ά
okay so let's go member by member, no skips, we don't skip here:
nameβ the pinctrl function name. literally just the name. icon behavior β¨valsβ register and vals array. it's the array, bestie, it holds the register-and-vals situation πnvalsβ number of entries in thevalsarray. the count. the how-many. keep them straight or it's giving πconfβ array of pin configurations. a whole separate array of pin configs, obsessed πnconfsβ number of pin configurations available. yes, that's how manyconfs there are, we counting πnodeβ list node. astruct list_head, so she can be linked into a list, very social of her π
ngl the trickiest part of this whole page is not mixing upnvals(forvals) withnconfs(forconf). two counts, two arrays, two very different jobs π
π SEE ALSO π
these are all from the kernel file ./drivers/pinctrl/pinctrl-single.c, and lowkey this list is a whole friend group:
struct pcs_func_vals(9)struct pcs_conf_vals(9)struct pcs_conf_type(9)struct pcs_gpiofunc_range(9)struct pcs_data(9)struct pcs_soc_data(9)struct pcs_device(9)pcs_add_pin(9)pcs_allocate_pin_table(9)pcs_add_function(9)pcs_get_pin_by_offset(9)pcs_parse_one_pinctrl_entry(9)pcs_dt_node_to_map(9)pcs_irq_free(9)pcs_free_resources(9)struct pcs_interrupt(9)pcs_irq_set(9)pcs_irq_mask(9)pcs_irq_unmask(9)pcs_irq_set_wake(9)pcs_irq_handle(9)pcs_irq_handler(9)pcs_irq_chain_handler(9)pcs_irq_init_chained_handler(9)pcs_quirk_missing_pinctrl_cells(9)
like, that's the whole squad fr fr π₯
and that's the page!! source is ./drivers/pinctrl, dated October 2026 β so yeah, this one's from the future, we stay ahead πβ¨ go read the whole squad of pcs pages, you'll be slaying pinctrl in no time, periodt ππ¦π
π¦ 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