pcs_parse_one_pinctrl_entry(9)
β¨ pcs_parse_one_pinctrl_entry(9) β¨
okay so bestie, welcome to the Kernel API Manual π
this one's a little function called pcs_parse_one_pinctrl_entry and honestly? it's giving "quietly doing very important work" energy. let's get into it π«Ά
πΈ NAME πΈ
pcs_parse_one_pinctrl_entry β parses a device tree mux entry π¦ like, that's literally its whole job and it does it slayfully.
π SYNOPSIS π
int pcs_parse_one_pinctrl_entry (struct pcs_device *pcs , struct
device_node *np , struct pinctrl_map **map , unsigned *num_maps , const
char **pgnames );
look at her go π five args, returns an int, main character energy fr fr.
π ARGUMENTS π
pcsβ the pinctrl driver instance. like, the whole driver's vibe wrapped up in one struct.npβ the device node of the mux entry. this is the .dts-side of the story πmapβ the map entry. that's where stuff gets written β¨num_mapsβ the number of map... er, the number of maps π literally what it says.pgnamesβ the pingroup names. names of pin groups. iconic.
π DESCRIPTION π
so like, first things first: note that this binding currently supports only sets of one register + value. one. that's it. that's the whole set. no cap π§
also note β and this is kinda the whole personality of this driver β it tries to avoid understanding pin and function names because of the extra bloat they'd cause, especially when you've got a huge number of pins π like imagine parsing all those names, exhausting. instead, this driver just sets what is specified for the board in the .dts file. periodt. and if you want the names deciphered later, further user space debugging tools can be developed to figure out the pin and function names using debugfs πβ¨
and ooh, a little tip for the impatient girlies: if you are concerned about the boot time, set up the static pins in the bootloader, and only set up selected pins as device tree entries. lowkey the move β
π¦ SEE ALSO π¦
the whole friend group lives in Kernel file ./drivers/pinctrl/pinctrl-single.c π and here's the full squad, not a single one skipped, i would never:
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_add_function(9)pcs_get_pin_by_offset(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)
okay that's the page!! mwah π before you go, tiny sign-off: this little beauty lives at ./drivers/pinctrl and the version date is October 2026 πΈ go forth and parse those mux entries, bestie, i believe in you π«Άπ
π¦ 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