STRUCT CY8C95X0_PINCTRL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct cy8c95x0_pinctrl(9) β€” the driver data glowie ✨

okay so bestie, welcome to the Kernel API Manual entry for struct cy8c95x0_pinctrl πŸ’– this is literally just the driver data struct, and honestly? it's giving organized queen energy. every field is a little drawer in the pinctrl dresser, and we're opening all of them πŸŽ€


🌸 SYNOPSIS 🌸

here's the whole struct, bestie β€” copied exactly, no cap, do not touch:

struct cy8c95x0_pinctrl {
    struct regmap *regmap;
    struct mutex irq_lock;
    struct mutex i2c_lock;
    unsigned long irq_mask[BITS_TO_LONGS( MAX_LINE)];
    unsigned long irq_trig_raise[BITS_TO_LONGS( MAX_LINE)];
    unsigned long irq_trig_fall[BITS_TO_LONGS( MAX_LINE)];
    unsigned long irq_trig_low[BITS_TO_LONGS( MAX_LINE)];
    unsigned long irq_trig_high[BITS_TO_LONGS( MAX_LINE)];
    unsigned long push_pull[BITS_TO_LONGS( MAX_LINE)];
    unsigned long map[BITS_TO_LONGS( MAX_LINE)];
    unsigned int nport;
    struct gpio_chip gpio_chip;
    struct device *dev;
    struct pinctrl_dev *pctldev;
    struct pinctrl_desc pinctrl_desc;
    unsigned int tpin;
    struct gpio_desc *gpio_reset;
 };

like… look at all those BITS_TO_LONGS( MAX_LINE) bitmaps. she's thriving on bitmaps πŸ”₯


πŸ¦‹ Members πŸ¦‹

time for the member-by-member vibe check, one icon at a time πŸ‘‘

  • regmap β€” the device's regmap. only direct access registers bestie, don't get it twisted πŸ™ˆ
  • irq_lock β€” the IRQ bus lock πŸ”’
  • i2c_lock β€” a mutex you gotta hold while you're using the regmap. hold her gently 🫢
  • irq_mask β€” the I/O bits affected by interrupts ⚑
  • irq_trig_raise β€” the I/O bits affected by raising voltage level ⬆️
  • irq_trig_fall β€” the I/O bits affected by falling voltage level ⬇️
  • irq_trig_low β€” the I/O bits affected by a low voltage level 🧊
  • irq_trig_high β€” the I/O bits affected by a high voltage level πŸ”₯
  • push_pull β€” the I/O bits configured as push pull driver πŸ’ͺ
  • map β€” the mask used to compensate for Gport2 width πŸ“ (yes, width compensation. she's doing math for you, say thank you)
  • nport β€” number of Gports in this chip πŸ”’
  • gpio_chip β€” the gpiolib chip 🐣
  • dev β€” struct device πŸ“±
  • pctldev β€” the pin controller device πŸŽ›οΈ
  • pinctrl_desc β€” the pin controller description πŸ“ (yes it's <noun> and pinctrl_desc, iconique naming, we stan)
  • tpin β€” total number of pins πŸ“Œ
  • gpio_reset β€” a GPIO line handler that can reset the IC πŸ”„ like a little reset button but classy

⭐ SEE ALSO ⭐

go read these next, bestie, they're the whole friend group πŸ‘―β€β™€οΈ


ok real talk β€” this page lives in ./drivers/pinctrl, which is the source dir, and the date on it is October 2026. so like… future-coded manpage, main character energy fr fr πŸ‘‘

that's the whole struct, no skips, no summaries, we ate and left no crumbs πŸ’…πŸ’– byeee πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from