STRUCT REGMAP_RANGE_CFG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct regmap_range_cfg(9) πŸ’…

okay bestie, welcome to the Kernel API Manual β€” this is the group-chat explainer for struct regmap_range_cfg(9), and it’s giving β€œconfiguration for indirectly accessed or paged registers” energy. no cap. πŸ¦‹


🌸 NAME 🌸

struct regmap_range_cfg β€” configuration for indirectly accessed or paged registers. that’s the main character energy of this page: it’s the config struct for registers you reach indirectly, or in pages. periodt. πŸ’–

✨ SYNOPSIS ✨

struct regmap_range_cfg {
    const char *name;
    unsigned int range_min;
    unsigned int range_max;
    unsigned int selector_reg;
    unsigned int selector_mask;
    int selector_shift;
    unsigned int window_start;
    unsigned int window_len;
        };

πŸŽ€ Members πŸŽ€

  • name β€” descriptive name for diagnostics. your little label for when diagnostics need to know who’s who. πŸ”
  • range_min β€” address of the lowest register address in virtual range. the bottom edge of the virtual-range situation.
  • range_max β€” address of the highest register in virtual range. the top edge, bestie.
  • selector_reg β€” register with selector field. yep, the register that holds the selector field.
  • selector_mask β€” bit mask for selector value. masking, but make it cute. 🎭
  • selector_shift β€” bit shift for selector value. shifting bits like it’s a whole vibe.
  • window_start β€” address of first (lowest) register in data window. the first/lowest one in the data window.
  • window_len β€” number of registers in data window. literally the count of registers in that data window. πŸ”’

🧚 DESCRIPTION 🧚

registers, mapped to this virtual range, are accessed in two steps:

  1. page selector register update;
  2. access through data window registers.

lowkey iconic: first the page selector register gets updated, then you access through the data window registers. that’s the two-step. no extra lore, fr fr. 🌈

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./include/linux/regmap.h β€” plus the whole see-also squad: 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_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_type(9), struct regmap_irq(9), struct regmap_irq_chip(9)

mwah πŸ’‹ β€” from ./include/linux, October 2026, with the struct regmap_range_cfg(9) page. πŸŽ€

πŸ“¦ where this page comes from