omap36xx_ga...sdiv_restore(9)
π omap36xx_ga...sdiv_restore(9) β¨
okay so this is from the Kernel API Manual bestie, and the function name is genuinely so long it got clipped π β it's omap36xx_ga...sdiv_restore(9), and we're about to get into it.
πΈ NAME πΈ
omap36xx_gate_clk_enable_with_hsdiv_restore β enables clocks that are out here suffering from the HSDivider PWRDN problem π and yeah, this one implements Errata ID: i556. periodt.
π¦ SYNOPSIS π¦
int omap36xx_gate_clk_enable_with_hsdiv_restore (struct clk_hw *hw );
π ARGUMENTS π
hwβ the DPLL outputstruct clk_hw, aka the main character we're passing in π«Ά
β¨ DESCRIPTION β¨
so this is 3630 only, no cap. these specific dividers:
dpll3_m3_ckdpll4_m2_ckdpll4_m3_ckdpll4_m4_ckdpll4_m5_ckdpll4_m6_ck
they all get loaded with the reset value after their respective PWRDN bits are set π like not me getting reset the second the power goes down, embarrassing.
but here's the slay: any dummy write β and by that we mean any other value different from the Read value β to the corresponding CM_CLKSEL register will refresh the dividers. so we just poke it with something else and the divider wakes up feeling iconic again π
ngl the whole thing is basically "read value, then write literally anything that isn't that value, and the divider gets refreshed." lowercase chaotic but it works π§
π₯ SEE ALSO π₯
- Kernel file
./drivers/clk/ti/gate.cβ go read it iykyk π
kisses bestie, this page came to you from ./drivers/clk/ti, dated October 2026, and yeah that's the whole man page ππ stay refreshed (unlike those dividers) π
π¦ 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