STRUCT TNG_PINCTRL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay so bestie, gather round β€” this is struct tng_pinctrl from the Kernel API Manual, and it's literally the Tangier pinctrl private structure πŸŽ€ yes, the private one, the one the driver keeps for itself, iykyk.


πŸ¦‹ SYNOPSIS πŸ¦‹

the whole vibe, in code, no cap β€” every single field exactly as it is:

struct tng_pinctrl {
    struct device *dev;
    raw_spinlock_t lock;
    struct pinctrl_desc pctldesc;
    struct pinctrl_dev *pctldev;
    const struct tng_family *families;
    size_t nfamilies;
    const struct intel_function *functions;
    size_t nfunctions;
    const struct intel_pingroup *groups;
    size_t ngroups;
    const struct pinctrl_pin_desc *pins;
    size_t npins;
 };

πŸ’– Members πŸ’–

bestie each of these is a whole personality, let me introduce you:

  • dev β€” pointer to the device structure. it's giving "who do i belong to" energy πŸ’…
  • lock β€” the lock that serializes register access. raw spinlock behaviour, main character of the concurrency situation πŸ”₯
  • pctldesc β€” the pin controller description
  • pctldev β€” pointer to the pin controller device
  • families β€” array of the families this pinctrl handles πŸŽ€
  • nfamilies β€” number of families in that array (yes, they travel together, always)
  • functions β€” array of functions
  • nfunctions β€” number of functions in the array
  • groups β€” array of pin groups 🌸
  • ngroups β€” number of groups in the array
  • pins β€” array of the pins this pinctrl controls ⭐
  • npins β€” number of pins in the array
ngl bestie, the pattern is iconic: one pointer to an array, one size_t counting it. every. single. time. she's consistent and we love her for it 🫢

🌈 SEE ALSO 🌈

  • Kernel file ./drivers/pinctrl/intel/pinctrl-tangier.h β€” struct tng_family(9) ✨

and that's the tea, bestie πŸ“ this lil legend lives in ./drivers/pinctrl/intel, dated October 2026, in the struct tng_pinctrl(9) era β€” periodt, go read the header, ily bye πŸ’œπŸ§š

πŸ“¦ where this page comes from