STRUCT REGMAP_ACCESS_TABLE(9)
π struct regmap_access_table(9) π
okay bestie, welcome to the Kernel API Manual page for struct regmap_access_table β it's giving "which registers are allowed to be touched, and which are absolutely not," and honestly it's iconic.
β¨ NAME β¨
struct regmap_access_table β a whole table of register ranges for access checks, iykyk π
π¦ SYNOPSIS π¦
ok so here's the shape of it, look at her:
struct regmap_access_table {
const struct regmap_range *yes_ranges;
unsigned int n_yes_ranges;
const struct regmap_range *no_ranges;
unsigned int n_no_ranges;
};
πΈ Members πΈ
yes_rangesβ pointer to an array of regmap ranges that are the "yes ranges" π like the VIP list, these ones get in.n_yes_rangesβ size of the above array. yes, you gotta tell her how many. lowkey important.no_rangesβ pointer to an array of regmap ranges used as "no ranges" π« the blocked list, the "do not perceive" list.n_no_rangesβ size of that above array. count 'em, bestie.
π₯ Description π₯
So this is a table of ranges β some yes ranges and some no ranges, living together in one struct, main character energy fr. π
Here's the tea on how the checks go:
- If a register belongs to a
no_range, the corresponding check function will returnfalse. blocked. denied. not today. - If a register belongs to a yes range, the corresponding check function will return
true. slay, go off. β - and this is the part you cannot miss: "no_ranges" are searched first. π no ranges get first dibs. the no's come before the yes's. periodt.
π«Ά no cap, the ordering matters β nos are searched first, so keep that in your head before you go writing your tables.
π SEE ALSO π
Kernel file ./include/linux/regmap.h β and literally the whole regmap fam, here's everyone:
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_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_type(9)struct regmap_irq(9)struct regmap_irq_chip(9)
and that's the page bestie π§π come find me in ./include/linux β this one's from October 2026, brought to you by the Kernel API Manual herself. mwah, go read your regmap docs, ily, bye πβ¨
π¦ 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