devm_clk_hw_..._parent_data(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… devm_clk_hw_..._parent_data β€” from the Kernel API Manual, section 9, bestie

Okay so this is a kernel manpage, section 9, and the title is literally devm_clk_hw_..._parent_data(9) β€” yes the elision is doing a lot of work there, we love a mysterious queen. The function it's actually about is devm_clk_hw_register_divider_parent_data, and no cap, the name is longer than my attention span. Let's get into it πŸŽ€


✨ NAME ✨

devm_clk_hw_register_divider_parent_data β€” registers a divider clock with the clock framework. That's it, that's the whole job. Slay. πŸ•°οΈ


🌸 SYNOPSIS 🌸

devm_clk_hw_register_divider_parent_data (dev , name , parent_data ,
       flags , reg , shift , width , clk_divider_flags , lock );

Nine arguments. Nine. Bestie she is thorough and honestly? Respect. πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

So literally every one of these, one by one, because we do not skip:

  • dev β€” the device that's registering this clock. Like, whose clock is it? This one's. 🫢
  • name β€” the name of this clock. Give her a cute name, she deserves one.
  • parent_data β€” the parent clk data. That's the parent, in data form. iykyk.
  • flags β€” framework-specific flags. Framework-specific, meaning: read the docs before you sent it, babe.
  • reg β€” the register address to adjust the divider. This is where the divider lives. Physical location energy.
  • shift β€” how many bits to shift the bitfield. Yes you have to count. Yes it matters. 😭
  • width β€” the width of the bitfield. Not to be confused with height. There is no height. 🌈
  • clk_divider_flags β€” divider-specific flags for this clock. Different flags! Divider flags! Not the other flags! Keep them straight bestie πŸ’€
  • lock β€” the shared register lock for this clock. Sharing is caring, but also sharing is a lock, so.

πŸ‘‘ SEE ALSO πŸ‘‘

Bestie, the cross-reference list on this one is extensive and I'm obsessed. She links to literally everyone. The kernel file is ./include/linux/clk-provider.h β€” that's the neighborhood she lives in.

First, the general clock framework crew:

  • clk framework flags(9)
  • struct clk_rate_request(9)
  • struct clk_duty(9)
  • struct clk_spread_spectrum(9)
  • struct clk_ops(9)
  • struct clk_parent_data(9)
  • struct clk_init_data(9)
  • struct clk_hw(9)

Then the fixed-rate girlies:

The gate squad:

The divider family β€” our main character's actual family:

And the rest of the extended universe:


That's every single one, fr fr. Forty-something references and we did not drop a single one, because dropping references is not the vibe. 🧚

πŸ“ sign-off πŸ“

This little beauty ships out of ./include/linux, dated October 2026, and she's filed under devm_clk_hw_..._parent_data(9) in the Kernel API Manual. Go forth and register your dividers, bestie β€” you're gonna eat πŸ’–βœ¨

πŸ“¦ where this page comes from