sdhci_arasan_register_sdclk(9)
π NAME π
sdhci_arasan_register_sdclk β bestie, this is the one that registers the sdcardclk so a PHY can actually use it β¨
(oh also hiii, you're reading the Kernel API Manual page for this, and it's a whole vibe π)
πΈ SYNOPSIS πΈ
int sdhci_arasan_register_sdclk (struct sdhci_arasan_data *sdhci_arasan
, struct clk *clk_xin , struct device *dev );
π¦ ARGUMENTS π¦
sdhci_arasanβ our private data structure, it's giving main character energy ngl πclk_xinβ pointer to the functional clock, she's the real one πdevβ pointer to ourstruct device, iconic as always π
β DESCRIPTION β
okay so here's the tea π β some PHY devices literally need to know what the actual card clock is. like, they can't function without it, no cap. and the way they find out? we hand them a clock through the common clock framework so they can go query it themselves. literally providing a service ππ«Ά
π NOTE π
so, real talk: without seriously re-architecting SDHCI's clock code and testing on all platforms, there's genuinely no way to create a totally beautiful clock here with all clock ops implemented. like, not happening, not today π
instead, we just create a clock that can be queried, and we set the CLK_GET_RATE_NOCACHE attribute to tell the common clock framework that we're doing things behind its back π (sneaky, but it works). this should be sufficient to create nice clean device tree bindings, and later β if needed β we can try re-architecting SDHCI if we see some benefit to it. future us's problem, bestie π
π₯ RETURN π₯
0 on success, and an error value on error. that's it, that's the whole vibe check β
π§ SEE ALSO π§
kernel file ./drivers/mmc/host/sdhci-of-arasan.c plus the whole friend group:
struct sdhci_arasan_soc_ctl_field(9)struct sdhci_arasan_soc_ctl_map(9)struct sdhci_arasan_clk_ops(9)struct sdhci_arasan_clk_data(9)struct sdhci_arasan_data(9)sdhci_arasan_syscon_write(9)sdhci_arasan_suspend(9)sdhci_arasan_resume(9)sdhci_arasan_sdcardclk_recalc_rate(9)sdhci_arasan_sampleclk_recalc_rate(9)sdhci_zynqmp_sdcardclk_set_phase(9)sdhci_zynqmp_sampleclk_set_phase(9)sdhci_versal_sdcardclk_set_phase(9)sdhci_versal_sampleclk_set_phase(9)sdhci_arasan_update_clockmultiplier(9)sdhci_arasan_update_baseclkfreq(9)arasan_dt_parse_clk_phases(9)sdhci_arasan_register_sdcardclk(9)sdhci_arasan_register_sampleclk(9)sdhci_arasan_unregister_sdclk(9)sdhci_arasan_update_support64b(9)
and that's the page!! π brought to you straight out of ./drivers/mmc/host, dated October 2026 β slay, see you in the next manpage bestie πβ¨π¦
π¦ 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