STRUCT SAMSUNG_CMU_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

struct samsung_cmu_info(9) β€” okay so bestie, this is the Kernel API Manual page for the struct that carries all clocks information needed for CMU registration. No cap, it’s basically the group-chat roster for every clock type the CMU wants to register, plus all the counts, names, and offsets that make it happen. πŸ’…βœ¨

✨ SYNOPSIS ✨

struct samsung_cmu_info {
    const struct samsung_pll_clock *pll_clks;
    unsigned int nr_pll_clks;
    const struct samsung_mux_clock *mux_clks;
    unsigned int nr_mux_clks;
    const struct samsung_div_clock *div_clks;
    unsigned int nr_div_clks;
    const struct samsung_gate_clock *gate_clks;
    unsigned int nr_gate_clks;
    const struct samsung_fixed_rate_clock *fixed_clks;
    unsigned int nr_fixed_clks;
    const struct samsung_fixed_factor_clock *fixed_factor_clks;
    unsigned int nr_fixed_factor_clks;
    unsigned int nr_clk_ids;
    const struct samsung_cpu_clock *cpu_clks;
    unsigned int nr_cpu_clks;
    const unsigned long *clk_regs;
    unsigned int nr_clk_regs;
    const struct samsung_clk_reg_dump *suspend_regs;
    unsigned int nr_suspend_regs;
    const char *clk_name;
    const unsigned long *sysreg_clk_regs;
    unsigned int nr_sysreg_clk_regs;
    bool manual_plls;
    bool auto_clock_gate;
    u32 gate_dbg_offset;
    u32 option_offset;
    u32 drcg_offset;
    u32 memclk_offset;
};

πŸ’– Members πŸ’–

Okay so here’s the member-by-member vibe check β€” every field, every count, nothing skipped, periodt:

  • pll_clks β€” list of PLL clocks. The PLL lineup. 🫢
  • nr_pll_clks β€” count of clocks in pll_clks. Like, how many PLL babies we got.
  • mux_clks β€” list of mux clocks. The mux crew.
  • nr_mux_clks β€” count of clocks in mux_clks.
  • div_clks β€” list of div clocks. Divas, literally.
  • nr_div_clks β€” count of clocks in div_clks.
  • gate_clks β€” list of gate clocks. Gate gang.
  • nr_gate_clks β€” count of clocks in gate_clks.
  • fixed_clks β€” list of fixed clocks. Fixed, not broken.
  • nr_fixed_clks β€” count clocks in fixed_clks.
  • fixed_factor_clks β€” list of fixed factor clocks. Fixed-factor besties.
  • nr_fixed_factor_clks β€” count of clocks in fixed_factor_clks.
  • nr_clk_ids β€” total number of clocks with IDs assigned. The ID headcount.
  • cpu_clks β€” list of CPU clocks. CPU clock royalty.
  • nr_cpu_clks β€” count of clocks in cpu_clks.
  • clk_regs β€” list of clock registers.
  • nr_clk_regs β€” count of clock registers in clk_regs.
  • suspend_regs β€” list of clock registers to set before suspend. Pre-suspend checklist energy.
  • nr_suspend_regs β€” count of clock registers in suspend_regs.
  • clk_name β€” name of the parent clock needed for CMU register access. Yes, parent clock. Very important. πŸ‘‘
  • sysreg_clk_regs β€” list of sysreg clock registers.
  • nr_sysreg_clk_regs β€” count of clock registers in sysreg_clk_regs.
  • manual_plls β€” Enable manual control for PLL clocks.
  • auto_clock_gate β€” enable auto clock mode for all components in CMU.
  • gate_dbg_offset β€” gate debug reg offset. Used by all gates in auto clk mode.
  • option_offset β€” option reg offset. Enables auto clk mode for entire CMU.
  • drcg_offset β€” dynamic root clk gate enable register offset in sysreg.
  • memclk_offset β€” memclk enable register offset in sysreg.

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/clk/samsung/clk.h has the lore, bestie. Go read these cuties:

  • struct samsung_clk_provider(9)
  • struct samsung_clock_alias(9)
  • struct samsung_fixed_rate_clock(9)
  • struct samsung_fixed_factor_clock(9)
  • struct samsung_mux_clock(9)
  • struct samsung_div_clock(9)
  • struct samsung_gate_clock(9)
  • struct samsung_clk_reg_dump(9)
  • struct samsung_pll_clock(9)

Source/version: ./drivers/clk/samsung Β· Kernel API Manual Β· October 2026 Β· struct samsung_cmu_info(9). Bye bestie, go register those clocks πŸ’…πŸŽ€βœ¨

πŸ“¦ where this page comes from