STRUCT PINCTRL_SETTING(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct pinctrl_setting(9) β€” from the Kernel API Manual, bestie ✨

Okay so picture this: you're deep in struct pinctrl_setting territory, page 9 of the Kernel API Manual, and honestly? This little struct is lowkey the moment. It's literally one individual mux or config setting πŸŽ€ β€” one. singular. setting. Not the whole map, not the whole state, just the one gorgeous little unit. Main character energy fr.


✨ NAME ✨

struct pinctrl_setting β€” an individual mux or config setting πŸ¦‹


🌸 SYNOPSIS 🌸

struct pinctrl_setting {
    struct list_head node;
    enum pinctrl_map_type type;
    struct pinctrl_dev *pctldev;
    const char *dev_name;
    union {
      struct pinctrl_setting_mux mux;
      struct pinctrl_setting_configs configs;
    } data;
 };

Look at her. She's got a node, she's got a type, she's got an anonymous union that's giving "choose your fighter" 😭 β€” it's mux or it's configs, never both, that's just how she rolls πŸ’…


πŸ‘― Members β€” squad goals πŸ‘―

  • node β€” the list node for struct pinctrl_settings's settings field. She's a team player, she links up with her girls πŸ”—
  • type β€” the type of setting. Gotta know what kind of vibe you're dealing with before you do anything ✨
  • pctldev β€” the pin control device handling that's gonna be programmed. Small caveat bestie: this one is not used for PIN_MAP_TYPE_DUMMY_STATE πŸ™ˆ like she's literally off duty for that one, no cap.
  • dev_name β€” the name of the device using this state. Name tag on, iykyk 🏷️
  • data β€” data specific to the setting type. This is the union doing all the work β€” it's struct pinctrl_setting_mux mux or struct pinctrl_setting_configs configs depending on the type, and honestly the way that works is so iconic πŸ‘‘

🌈 SEE ALSO 🌈

Kernel file ./drivers/pinctrl/core.h β€” that's home base, go read it 🫢

And her friends, all of them, no skipping:

  • struct pinctrl_dev(9)
  • struct pinctrl(9)
  • struct pinctrl_state(9)
  • struct pinctrl_setting_mux(9)
  • struct pinctrl_setting_configs(9)
  • struct pin_desc(9)
  • struct pinctrl_maps(9)
  • struct group_desc(9)

That's the whole page, periodt πŸ’– This one lives in ./drivers/pinctrl, dated October 2026, and yes it's still struct pinctrl_setting(9) β€” she's booked and busy in the Kernel API Manual β­πŸ’…

πŸ“¦ where this page comes from