STRUCT DIO48E_GPIO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct dio48e_gpio β€” your fave lil GPIO data structure ✨

Okay bestie, so this is a kernel API manual page β€” it lives in the Kernel API Manual family, and the star of the show today is a struct called struct dio48e_gpio. It's giving GPIO device private data structure energy πŸ’… β€” literally the little private clubhouse where the driver for this GPIO device keeps all its important stuff.


πŸŽ€ NAME πŸŽ€

struct dio48e_gpio β€” the GPIO device private data structure, no cap. This is where the driver stashes its state so it doesn't have to carry everything around in its pockets. 🫢


🌸 SYNOPSIS 🌸

Here's the whole vibe, character for character, don't touch a single semicolon:

struct dio48e_gpio {
    raw_spinlock_t lock;
    struct regmap *map;
    void __iomem *regs;
    unsigned long flags;
    unsigned int irq_mask;
 };

Yes diva, that's the whole struct, and every single member matters β€” let's go member by member ✨


πŸ¦‹ Members πŸ¦‹

  • lock β€” a raw_spinlock_t, and it's the synchronization lock to prevent I/O race conditions. Basically a bouncer at the door of the club so two threads don't barge in and trip over each other. Iconic behaviour. πŸ”₯
  • map β€” a struct regmap *, and it's the Regmap for the device. The glow-up registry for all the device's registers, iykyk.
  • regs β€” a void __iomem *, described as the virtual mapping for device registers. This is the actual pointer into memory-mapped register land β€” where the hardware's realness lives. πŸ‘‘
  • flags β€” an unsigned long, holding the IRQ flags saved during locking. Very "keep the receipts" of this struct β€” it remembers what the interrupt flags were so nothing gets lost. 🧚
  • irq_mask β€” an unsigned int, and it's the current IRQ mask state on the device. Literally tracking which interrupts are masked right now, fr fr. πŸ™ˆ
Lowkey important: these are all members of one struct, so if you're poking at them, you're poking at this device's private data. Nothing here is optional in the description, bestie β€” it's all part of the package. πŸ’–

🌈 SEE ALSO 🌈

  • Kernel file ./drivers/gpio/gpio-104-dio-48e.c β€” go read the source, it's the main character. ⭐

Okay that's the whole page! Sending you off with a cute little sign-off: this precious page came from the source path ./drivers/gpio, dated October 2026, and yes β€” that's the struct dio48e_gpio(9) manual page, wrapped up with a bow πŸŽ€πŸ’œ Slay, go forth and read your registers responsibly. πŸ¦‹βœ¨

πŸ“¦ where this page comes from