STRUCT SAMSUNG_CMU_INFO(9)
πΈ 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 inpll_clks. Like, how many PLL babies we got.mux_clksβ list of mux clocks. The mux crew.nr_mux_clksβ count of clocks inmux_clks.div_clksβ list of div clocks. Divas, literally.nr_div_clksβ count of clocks indiv_clks.gate_clksβ list of gate clocks. Gate gang.nr_gate_clksβ count of clocks ingate_clks.fixed_clksβ list of fixed clocks. Fixed, not broken.nr_fixed_clksβ count clocks infixed_clks.fixed_factor_clksβ list of fixed factor clocks. Fixed-factor besties.nr_fixed_factor_clksβ count of clocks infixed_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 incpu_clks.clk_regsβ list of clock registers.nr_clk_regsβ count of clock registers inclk_regs.suspend_regsβ list of clock registers to set before suspend. Pre-suspend checklist energy.nr_suspend_regsβ count of clock registers insuspend_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 insysreg_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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms