STRUCT ALTERNATE_FUNCTIONS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

struct alternate_functions β€” honestly bestie, the original leaves this one blank, so we're just vibing with the struct name and no tagline. Iconic minimalist behavior, we respect it πŸ’…


🌸 SYNOPSIS 🌸

struct alternate_functions {
    unsigned pin_number;
    s8 gpiosel_bit;
    s8 alt_bit1;
    s8 alt_bit2;
    u8 alta_val;
    u8 altb_val;
    u8 altc_val;
 };

πŸŽ€ Members πŸŽ€

  • pin_number β€” the pin number, literally just which pin we're talking about 🫢
  • gpiosel_bit β€” the control bit living inside the GPIOSEL register,
  • alt_bit1 β€” the first AlternateFunction bit, aka one of the two bits that do the selecting of which alternate function you get ✨
  • alt_bit2 β€” the second AlternateFunction bit, the other half of the duo doing that same selecting πŸ’«
  • alta_val β€” the value you write into alternatfunc to select the altA function
  • altb_val β€” the value you write into alternatfunc to select altB function
  • altc_val β€” the value you write into alternatfunc to select altC function

πŸ¦‹ Description πŸ¦‹

okay so here's the tea β˜• β€” these 3 following fields are necessary due to none coherency on how to select the altA, altB and altC function between the ABx500 SOC family when using the alternatfunc register. no cap, that's the whole reason they exist. the ABx500 family lowkey doesn't agree with itself on this one, so the struct has to carry all three values around 😭


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/pinctrl/nomadik/pinctrl-abx500.h struct abx500_function(9), struct abx500_pingroup(9), struct abx500_gpio_irq_cluster(9), struct abx500_pinrange(9), struct abx500_pinctrl_soc_data(9)


and that's the whole page, bestie πŸ§šπŸ’œ this one came from ./drivers/pinctrl/nomadik, dated October 2026 β€” go forth and select your alternate functions, mwah πŸ’‹πŸ‘‘

πŸ“¦ where this page comes from