STRUCT R9A06G032_CLKDESC(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’– struct r9a06g032_clkdesc(9) ๐Ÿ’–

okay so bestie, buckle up โ€” this is a page straight out of the Kernel API Manual, and it's literally the blueprint for one (1) clock. slay. โœจ


๐ŸŒธ NAME ๐ŸŒธ

struct r9a06g032_clkdesc โ€” describe a single clock ๐Ÿ•๐Ÿ’…


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

struct r9a06g032_clkdesc {
    const char *name;
    uint32_t managed:1;
    enum gate_type type:3;
    uint32_t index:8;
    uint32_t source:8;
    union {
      struct r9a06g032_gate gate;
      struct {
        unsigned int min:10, max:10, reg:10;
        u16 table[4];
      } div;
      struct {
        u16 div, mul;
      } ffc;
      struct {
        uint16_t group:1;
        struct regbit sel, g1, r1, g2, r2;
      } dual;
    };
 };

no cap, look at all those bitfields โ€” she's compact and she knows it ๐Ÿ’…


๐Ÿฆ‹ Members ๐Ÿฆ‹

  • name โ€” the string describing this clock, like her little name tag ๐Ÿท๏ธ
  • managed โ€” boolean indicating if this clock should be started/stopped as part of power management โšก (yes she's on the PM grind)
  • type โ€” see enum gate_type ๐Ÿ‘€
  • index โ€” the ID of this clock element ๐Ÿ”ข
  • source โ€” the ID+1 of the parent clock element. Root clock uses ID of ~0 (PARENT_ID); ๐ŸŒณ
  • {unnamed_union} โ€” anonymous, mysterious, main character energy ๐Ÿซถ
  • gate โ€” clock enable/disable ๐Ÿšฆ
  • div โ€” substructure for clock divider โž—
  • div.min โ€” smallest permitted clock divider ๐Ÿœ
  • div.max โ€” largest permitted clock divider ๐Ÿ˜
  • div.reg โ€” clock divider register offset, in 32-bit words ๐Ÿ“
  • div.table โ€” optional list of fixed clock divider values; must be in ascending order, zero for unused ๐Ÿ“ˆ (fr fr, ascending or it's a vibe violation)
  • ffc โ€” substructure for fixed-factor clocks ๐Ÿงฎ
  • ffc.div โ€” divisor for fixed-factor clock โž—
  • ffc.mul โ€” multiplier for fixed-factor clock โœ–๏ธ
  • dual โ€” substructure for dual clock gates ๐Ÿ‘ฏ
  • dual.group โ€” UART group, 0=UART0/1/2, 1=UART3/4/5/6/7 ๐Ÿ“Ÿ
  • dual.sel โ€” select either g1/r1 or g2/r2 as clock source ๐ŸŽš๏ธ
  • dual.g1 โ€” 1st source gate (clock enable/disable) 1๏ธโƒฃ
  • dual.r1 โ€” 1st source reset (module reset) ๐Ÿ”
  • dual.g2 โ€” 2nd source gate (clock enable/disable) 2๏ธโƒฃ
  • dual.r2 โ€” 2nd source reset (module reset) ๐Ÿ”‚

โญ Description โญ

Describes a single element in the clock tree hierarchy. ๐ŸŒฒ And ngl, because there are quite a large number of clock elements, this structure is packed tightly to conserve space โ€” she is SNUG. every bit is doing its job, no wasted room, iconic ๐Ÿ’€โœจ


๐Ÿ’œ SEE ALSO ๐Ÿ’œ

Kernel file ./drivers/clk/renesas/r9a06g032-clocks.c, struct regbit(9), struct r9a06g032_gate(9) ๐Ÿซถ


and that's the tea bestie ๐Ÿ“ this lil page came from ./drivers/clk/renesas, dated October 2026, and she's officially titled struct r9a06g032_clkdesc(9) โ€” go off queen ๐Ÿ‘‘๐Ÿ’–

๐Ÿ“ฆ where this page comes from