STRUCT INGENIC_CGU_DIV_INFO(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

โœจ struct ingenic_cgu_div_info(9) โœจ

okay so bestie, this is a page straight out of the Kernel API Manual โ€” the whole thing is about struct ingenic_cgu_div_info, which is literally just the little info packet that describes a clock divider ๐ŸŽ€ buckle up, it's giving documentation but make it cute.


๐Ÿ’– NAME ๐Ÿ’–

struct ingenic_cgu_div_info โ€” information about a divider. that's it, that's the vibe ๐Ÿ’…


๐Ÿงš SYNOPSIS ๐Ÿงš

struct ingenic_cgu_div_info {
    unsigned reg;
    u8 shift;
    u8 div;
    u8 bits;
    s8 ce_bit;
    s8 busy_bit;
    s8 stop_bit;
    u8 bypass_mask;
    const u8 *div_table;
};

๐ŸŒธ Members ๐ŸŒธ

bestie these are the fields, and yes every single one matters, no skipping ๐Ÿ‘‘

  • reg โ€” the offset of the divider control register, measured inside the CGU. it's giving "where do I even find this thing" energy.
  • shift โ€” how many bits you left shift the divide value by (like, the index of the lowest bit of the divide value inside its control register). lowkey the most important number here.
  • div โ€” the number you divide the divider value by (i.e. when the effective divider value is the value written to the register multiplied by some constant โ€” math girlies rise ๐Ÿงฎ).
  • bits โ€” the size of the divide value, in bits. that's the whole width, periodt.
  • ce_bit โ€” the index of the change enable bit within reg, or -1 if there literally isn't one. no bit, no problem ๐Ÿ™ˆ
  • busy_bit โ€” the index of the busy bit within reg, or -1 if there isn't one. she's busy, or she's -1 ๐Ÿ’€
  • stop_bit โ€” the index of the stop bit within reg, or -1 if there isn't one. same deal, iconic behaviour.
  • bypass_mask โ€” mask of parent clocks for which the divider does not apply. like, sorry div, not for you bestie โœ‹
  • div_table โ€” an optional table that maps the value you read from the register to the actual divider value. optional! but when she's there, she ATE ๐Ÿ”ฅ

๐Ÿฆ‹ SEE ALSO ๐Ÿฆ‹

the kernel file ./drivers/clk/ingenic/cgu.h and honestly her whole friend group:

  • struct ingenic_cgu_pll_info(9)
  • struct ingenic_cgu_mux_info(9)
  • struct ingenic_cgu_fixdiv_info(9)
  • struct ingenic_cgu_gate_info(9)
  • struct ingenic_cgu_custom_info(9)
  • struct ingenic_cgu_clk_info(9)
  • struct ingenic_cgu(9)
  • struct ingenic_clk(9)
  • ingenic_cgu_new(9)
  • ingenic_cgu_register_clocks(9)

ngl bestie, if you're messing with s8 fields and -1 sentinels, double-check before you write anything โ€” this page tells you what the fields are, not what happens when you get them wrong ๐Ÿ’€

that's the whole page, mwah ๐Ÿ’‹ โ€” sourced from ./drivers/clk/ingenic, dated October 2026, and filed under struct ingenic_cgu_div_info(9) because that's her name and she's the main character ๐ŸŒˆ๐Ÿ‘‘

๐Ÿ“ฆ where this page comes from