regmap_noinc_write(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… regmap_noinc_write πŸ’…

okay so bestie, welcome to the regmap_noinc_write(9) page β€” straight out of the Kernel API Manual, and it's honestly kinda iconic. let's get into it 🫢


✨ NAME ✨

regmap_noinc_write β€” write data to a register without incrementing the register number. yes, the register stays put. it's giving "I live here now" energy πŸ πŸ’…


🌸 SYNOPSIS 🌸

int regmap_noinc_write (struct regmap *map , unsigned int reg , const
void *val , size_t val_len );

that's the whole signature, copy it exactly, don't @ me 😭


πŸŽ€ ARGUMENTS πŸŽ€

  • map β€” the register map you're writing to. the main character of the operation ngl πŸ‘‘
  • reg β€” the register you're writing to. this one does NOT move, that's the whole point ✨
  • val β€” pointer to your data buffer. your payload, your vibe πŸ¦‹
  • val_len β€” length of the output buffer, in bytes. count 'em πŸ’…

🧚 DESCRIPTION 🧚

okay so context, because it matters: the regmap API usually assumes that bulk bus write operations are gonna write across a range of registers. like, one after another, incrementing as they go. that's the default assumption, periodt.

but some devices β€” and this is the fun part β€” have certain registers where a write operation just dumps data into an internal FIFO. so the register number doesn't tick up. it's the same address, over and over, and that's correct behavior. slay πŸ’–

the target register must be volatile. but lowkey the registers after it can be completely unrelated cacheable registers β€” they don't have to match, no cap. πŸ™ˆ

this function will attempt multiple writes as required to write val_len bytes. so if your buffer is big, it's gonna do the thing more than once. it's thorough like that πŸ”₯

return values, super important:

  • a value of zero gets returned on success ✨
  • a negative errno gets returned in error cases πŸ’€

🌈 SEE ALSO 🌈

so many siblings, this function has a whole friend group fr fr. also bestie, check the kernel file ./drivers/base/regmap/regmap.c:


πŸ’œ quick vibe check before you go: reg must be volatile, and this thing can do multiple writes to push out all val_len bytes. don't forget that part or the FIFO will simply not eat. πŸ“

kay that's the page!! this one's sourced from ./drivers/base/regmap and slaps a date of October 2026 on it β€” future girlie behavior honestly πŸ¦‹βœ¨ hope the FIFO treats you well, ily, bye πŸ’–πŸŽ€

πŸ“¦ where this page comes from