STRUCT EQBR_GPIO_CTRL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct eqbr_gpio_ctrl(9) β€” Kernel API Manual, bestie edition ✨

okay so. this is a page from the Kernel API Manual, section 9, and it's all about struct eqbr_gpio_ctrl β€” literally the whole personality of a gpio controller, packaged as one struct. it's giving "backstage pass to the pin bank" energy πŸŽ€


🌸 NAME 🌸

struct eqbr_gpio_ctrl β€” represent a gpio controller.

that's it. that's the whole job. it represents a gpio controller. iconic, honestly πŸ‘‘


✨ SYNOPSIS ✨

struct eqbr_gpio_ctrl {
    struct gpio_generic_chip chip;
    struct fwnode_handle    *fwnode;
    struct eqbr_pin_bank    *bank;
    void __iomem            *membase;
    const char              *name;
    unsigned int            virq;
    raw_spinlock_t lock;
 };

look at her. seven members, all of them carrying their weight, no filler πŸ’…


πŸ¦‹ Members πŸ¦‹

okay let's meet the cast, one by one, no skips:

  • chip β€” the gpio chip. that's the core of the whole thing, the main character energy of the struct fr fr.
  • fwnode β€” firmware node of gpio controller. the firmware-side paperwork that says who this controller is πŸ—‚οΈ
  • bank β€” pointer to corresponding pin bank. your controller's home base, the bank where all its pins actually live.
  • membase β€” base address of the gpio controller. like the street address but for registers, yk? πŸ“
  • name β€” gpio chip name. the government name. the one on the birth certificate 🍼
  • virq β€” irq number of the gpio chip to parent's irq domain. this is the one linking you up to the parent's irq domain, so like. the family connection unlocked 🌈
  • lock β€” spin lock to protect gpio register write. bestie DO NOT touch those registers without holding this, it's literally the bouncer at the door of every register write πŸ’€πŸ”’

πŸ”₯ SEE ALSO πŸ”₯

go read these next, i'm obsessed with them, they're all in the same little friend group:

  • Kernel file ./drivers/pinctrl/pinctrl-equilibrium.h
  • struct gpio_irq_type(9)
  • struct eqbr_pin_bank(9)
  • struct eqbr_pinctrl_drv_data(9)

the header lives under ./drivers/pinctrl too, so you already know where the whole squad hangs out 🫢


ngl this page is short and sweet but it's lowkey load-bearing β€” every one of those members is doing real work for the equilibrium pinctrl driver, so treat them with respect πŸ’–

okay that's the page!! source is ./drivers/pinctrl, dated October 2026, and the header/footer both say struct eqbr_gpio_ctrl(9) because she said her name twice for emphasis πŸ’…βœ¨ bye bestie, go forth and pin-control responsibly πŸ§šβ€β™€οΈπŸŒΈ

πŸ“¦ where this page comes from