pcs_add_function(9)
π pcs_add_function(9) β like, the whole vibe
okay so first things first, bestie: this is from the Kernel API Manual, and it's about pcs_add_function β the little guy that adds a new function to the function list. yes that's literally the whole plot. no cap. π
β¨ NAME β¨
pcs_add_function β adds a new function to the function list π¦
πΈ SYNOPSIS πΈ
int pcs_add_function (struct pcs_device *pcs , struct pcs_function **fcn
, const char *name , struct pcs_func_vals *vals , unsigned int nvals ,
const char **pgnames , unsigned int npgnames );
like, seven whole arguments. she's high maintenance and we love her for it π
π«Ά ARGUMENTS π«Ά
pcsβ the pcs driver instance. the main character of this whole operation πfcnβ the new function, allocated. this is where your freshly-made baby ends up β¨nameβ name of the function. give her a good one, iykyk πvalsβ array of mux register value pairs used by the function. the actual guts of the thing π₯nvalsβ number of mux register value pairs. yes bestie, count them, all of them πpgnamesβ array of pingroup names for the function. friend group energy fr fr πnpgnamesβ number of pingroup names. count those too π
π DESCRIPTION π
the actual description is one (1) sentence and it's giving "professor who ran out of time":
Caller must take care of locking.
that's it. that's the whole thing. no locking, no safety β this function does not hold your hand, bestie. you want it locked, you lock it. not me, not the kernel, you. π
π§ SEE ALSO π§
kernel file: ./drivers/pinctrl/pinctrl-single.c
and the whole extended friend group, because she does not go ANYWHERE alone:
struct pcs_func_vals(9)struct pcs_conf_vals(9)struct pcs_conf_type(9)struct pcs_function(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_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)
that's twenty-five entries. yes i counted. someone had to. π
mwah π this page lives in ./drivers/pinctrl, dated October 2026 β bookmark it, screenshot it, put it on your fridge. 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