STRUCT CLOCKDOMAIN(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct clockdomain β€” the OMAP clockdomain, bestie. that's it, that's the whole vibe ✨

oh also quick thing: this page lives in the Kernel API Manual, section 9. knew you'd want to know 🫢


🌸 SYNOPSIS 🌸

struct clockdomain {
    const char *name;
    union {
      const char *name;
      struct powerdomain *ptr;
    } pwrdm;
    const u16 clktrctrl_mask;
    const u8 flags;
    u8 _flags;
    const u8 dep_bit;
    const u8 prcm_partition;
    const u16 cm_inst;
    const u16 clkdm_offs;
    struct clkdm_dep *wkdep_srcs;
    struct clkdm_dep *sleepdep_srcs;
    int usecount;
    int forcewake_count;
    struct list_head node;
    u32 context;
 };

like, look at her. she's structured. she's organized. main character energy fr πŸ’…


πŸŽ€ Members πŸŽ€

okay so let's go through every single field one by one, no skips, no cap:

  • name β€” the clockdomain's name. literally what she's called πŸ’–
  • pwrdm β€” the powerdomain that contains this clockdomain. it's a union, and the two arms are const char *name and struct powerdomain *ptr β€” yes girl, both. πŸ¦‹
  • clktrctrl_mask β€” the CLKTRCTRL/AUTOSTATE field mask in the CM_CLKSTCTRL reg πŸ”₯
  • flags β€” clockdomain capability flags ✨
  • _flags β€” flags for use only by internal clockdomain code. not your business, bestie πŸ™ˆ
  • dep_bit β€” bit shift of this clockdomain's PM_WKDEP/CM_SLEEPDEP bit 🧚
  • prcm_partition β€” (OMAP4 only) PRCM partition ID for this clkdm's registers
  • cm_inst β€” (OMAP4 only) CM instance register offset
  • clkdm_offs β€” (OMAP4 only) CM clockdomain register offset
  • wkdep_srcs β€” clockdomains that can be told to wake this powerdomain up πŸ‘‘
  • sleepdep_srcs β€” clockdomains that can be told to keep this clkdm from inact
  • usecount β€” usecount tracking πŸ“
  • forcewake_count β€” usecount for forcing the domain active ⭐
  • node β€” the list_head that links all clockdomains together. the social butterfly of the struct, lowkey 🌈

πŸ’œ Description πŸ’œ

these are the "you better get this right or nothing works" rules for the OMAP4-only fields, so listen up bestie 😭

  • prcm_partition should be a macro from mach-omap2/prcm44xx.h (OMAP4 only)
  • cm_inst should be a macro ending in _INST from the OMAP4 CM instance definitions (OMAP4 only)
  • clkdm_offs should be a macro ending in _CDOFFS from the OMAP4 CM instance definitions (OMAP4 only)
ngl these are the kind of things where you don't "just know" them β€” you go look up the macro. the manpage is telling you where the macro lives, so use it πŸ™

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./arch/arm/mach-omap2/clockdomain.h
  • struct clkdm_autodep(9)
  • struct clkdm_dep(9)
  • struct clkdm_ops(9)

go read those too, iykyk πŸ’…


and that's the whole page!! mwah πŸ’– this one shipped from ./arch/arm/mach-omap2, dated October 2026 β€” so like, mark your calendar bestie, and go wake up a powerdomain for me πŸŒΈβœ¨πŸŽ€

πŸ“¦ where this page comes from