STRUCT AT91_GPIO_CHIP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct at91_gpio_chip(9) πŸ’–

okay bestie so this is a page straight outta the Kernel API Manual and it's literally all about struct at91_gpio_chip β€” the at91 gpio chip. no cap, that's the whole vibe. let's get into it πŸŽ€


✨ NAME ✨

struct at91_gpio_chip β€” at91 gpio chip. that's it, that's the name, she's iconic and she knows it πŸ’…


🌸 SYNOPSIS 🌸

here's the whole struct laid out for you, character for character, do not touch:

struct at91_gpio_chip {
    struct gpio_chip        chip;
    struct pinctrl_gpio_range range;
    struct at91_gpio_chip   *next;
    int pioc_hwirq;
    int pioc_virq;
    void __iomem            *regbase;
    struct clk              *clock;
    const struct at91_pinctrl_mux_ops *ops;
    u32 wakeups;
    u32 backups;
    u32 id;
 };

like, look at her. eleven members. main character energy fr fr 🧚


πŸ¦‹ Members πŸ¦‹

okay so every single field, one by one, no skipping, we're doing this properly:

  • chip β€” the gpio chip. like, the actual gpio chip. that's the whole point bestie πŸ’–
  • range β€” the gpio range. she's ranging, that's her job ✨
  • next β€” the bank that shares the same clock. siblings! sharing! we love a clock-sharing household 🫢
  • pioc_hwirq β€” the PIO bank interrupt identifier on AIC. hardware-y. very real πŸ”₯
  • pioc_virq β€” the PIO bank Linux virtual interrupt. the virtual one, the software bestie of the one above πŸ’œ
  • regbase β€” the PIO bank virtual address. it's a void __iomem *, so like, handle with care πŸ™ˆ
  • clock β€” the associated clock. the clock she's associated with. slay ⭐
  • ops β€” the at91 pinctrl mux ops. it's a const struct at91_pinctrl_mux_ops *, and it's const so don't even think about it πŸ’€
  • wakeups β€” wakeup interrupts. the ones that wake you up, rude but necessary 🌈
  • backups β€” interrupts disabled in suspend. napping interrupts, honestly same 😭
  • id β€” the gpio chip identifier. her little name tag πŸŽ€
ngl, every one of those members matters β€” this is not a "skim it" situation, this is a "read the whole struct" situation πŸ’–

πŸ’œ SEE ALSO πŸ’œ

go look at the kernel file ./drivers/pinctrl/pinctrl-at91.c β€” it's where all the lore lives, iykyk. and also these absolute icons:

  • struct at91_pmx_func(9)
  • struct at91_pmx_pin(9)
  • struct at91_pin_group(9)
  • struct at91_pinctrl_mux_ops(9)

read them all, in that order, bestie. you'll be so smart πŸ¦‹βœ¨


okay that's the page!! mwah πŸ’‹ this lil beauty lives under ./drivers/pinctrl and she's dated October 2026 β€” so like, future girlboss behaviour honestly πŸ‘‘β­ thanks for reading, love you, bye πŸ«ΆπŸ’–πŸŽ€

πŸ“¦ where this page comes from