devm_regmap_init_mmio_clk(9)
π devm_regmap_init_mmio_clk β Kernel API Manual β¨
okay so bestie, we're in the Kernel API Manual today and this little cutie is called devm_regmap_init_mmio_clk. it's giving "managed register map, but make it clock-aware" π°οΈ and honestly? iconic.
πΈ NAME
devm_regmap_init_mmio_clk β Initialise managed register map with clock π
like, it sets up your regmap, it's managed (so nobody has to hand-free it), and there's a clock involved. slay.
β¨ SYNOPSIS
devm_regmap_init_mmio_clk (dev , clk_id , regs , config );
that's the whole vibe check right there β four args, no cap.
π ARGUMENTS
devβ the Device that will be interacted with. your main character device, fr fr π«Άclk_idβ the register clock consumer ID. that's how you tell it which clock is your clock π°οΈregsβ a Pointer to memory-mapped IO region. the actual memory real estate, lowkey the whole point πΊοΈconfigβ Configuration for register map. all the settings, all the vibes βοΈ
π¦ DESCRIPTION
so here's the tea: the return value will be an ERR_PTR on error, or a valid pointer to a struct regmap π. you gotta check it, bestie β do not just assume it worked, that's not the energy we're bringing π₯.
the regmap will be automatically freed by the device management code β¨ β that's the "devm" part, that's the whole managed moment, you literally don't have to lift a finger π .
and it Implies 'fast_io' π. yes queen, fast io is baked in.
π SEE ALSO
grab a snack, this list is long and we're getting through all of it π:
Kernel file ./include/linux/regmap.h π§, plus:
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(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)
like I said. long list. we ate though π
okay that's the whole page bestie!! π this one lives in ./include/linux (the Kernel API Manual fam π«Ά), it's dated October 2026 β, and the page itself is devm_regmap_init_mmio_clk(9) β go forth and initialise those managed register maps responsibly, mwah ππ
π¦ 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