STRUCT REGMAP_IRQ_TYPE(9)
β¨ struct regmap_irq_type(9) β¨
okay so bestie, this is struct regmap_irq_type(9) from the Kernel API Manual, and it is literally the glow-up guide for your IRQ types π
like it's the struct that tells the regmap IRQ machinery how to poke your device's registers so an interrupt knows whether it's rising, falling, level-low or level-high. no cap, it's giving "configuration blueprint" energy and we are obsessed π
πΈ NAME πΈ
struct regmap_irq_type β IRQ type definitions. that's it, that's the vibe β¨
π¦ SYNOPSIS π¦
struct regmap_irq_type {
unsigned int type_reg_offset;
unsigned int type_reg_mask;
unsigned int type_rising_val;
unsigned int type_falling_val;
unsigned int type_level_low_val;
unsigned int type_level_high_val;
unsigned int types_supported;
};
look at her. seven unsigned int fields, all main character energy π and yes you have to keep them exactly like that, don't touch the formatting, she's perfect π
π Members π
so here's the member-by-member breakdown, bestie, and every single one matters:
type_reg_offsetβ the offset register for the irq type setting. this is where the type config actually lives πtype_reg_maskβ the device interrupt mask. mask it, queen πtype_rising_valβ the register value you write to configure aRISINGtype irq. going up? this is the value β¬οΈβ¨type_falling_valβ the register value to configure aFALLINGtype irq. going down? same deal, different value β¬οΈπtype_level_low_valβ the register value to configure aLEVEL_LOWtype irq. lowkey level-triggered πtype_level_high_valβ the register value to configure aLEVEL_HIGHtype irq. highkey level-triggered π₯types_supportedβ a logical OR ofIRQ_TYPE_*flags indicating the supported types. this is the vibe check for what your chip can actually do β
fr fr, keep those flag names and values exactly as written βRISING,FALLING,LEVEL_LOW,LEVEL_HIGH, andIRQ_TYPE_*are literal, not a mood π
π SEE ALSO π
the whole extended friend group π first up, the kernel file:
./include/linux/regmap.h
and then, in order, because we do not skip anyone at this party:
struct reg_default(9)struct reg_sequence(9)regmap_read_poll_timeout(9)regmap_read_poll_timeout_atomic(9)regmap_field_read_poll_timeout(9)struct regmap_range(9)struct regmap_access_table(9)struct regmap_config(9)struct regmap_range_cfg(9)struct regmap_sdw_mbq_cfg(9)struct regmap_bus(9)regmap_init(9)regmap_init_i2c(9)regmap_init_mdio(9)regmap_init_sccb(9)regmap_init_slimbus(9)regmap_init_spi(9)regmap_init_spmi_base(9)regmap_init_spmi_ext(9)regmap_init_w1(9)regmap_init_mmio_clk(9)regmap_init_mmio(9)regmap_init_ac97(9)regmap_init_sdw(9)regmap_init_sdw_mbq(9)regmap_init_sdw_mbq_cfg(9)regmap_init_i3c(9)regmap_init_spi_avmm(9)regmap_init_fsi(9)devm_regmap_init(9)devm_regmap_init_i2c(9)devm_regmap_init_mdio(9)devm_regmap_init_sccb(9)devm_regmap_init_spi(9)devm_regmap_init_spmi_base(9)devm_regmap_init_spmi_ext(9)devm_regmap_init_w1(9)devm_regmap_init_mmio_clk(9)devm_regmap_init_mmio(9)devm_regmap_init_ac97(9)devm_regmap_init_sdw(9)devm_regmap_init_sdw_mbq(9)devm_regmap_init_sdw_mbq_cfg(9)devm_regmap_init_slimbus(9)devm_regmap_init_i3c(9)devm_regmap_init_spi_avmm(9)devm_regmap_init_fsi(9)struct reg_field(9)struct regmap_irq(9)struct regmap_irq_chip(9)
like, that's the entire group chat and every one of them is iconic in their own way π«Ά
aaaaaaaaand that's the page, bestie!! π§ this little masterpiece lives in ./include/linux and the version stamp is October 2026, and the whole thing is filed under struct regmap_irq_type(9) β so go forth, configure your IRQ types, and slay πβ¨πΈ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms