sifive_prci_...inal_corepll(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… sifive_prci_...inal_corepll(9) πŸ’…

okay so bestie, you're reading the Kernel API Manual β€” welcome to the little corner of the kernel where we flip clock muxes like we flip our hair ✨


🌸 NAME 🌸

sifive_prci_coreclksel_use_final_corepll β€” the glow-up move where you switch the CORECLK mux over to output FINAL_COREPLL πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

void sifive_prci_coreclksel_use_final_corepll (struct __prci_data *pd );

literally that's the whole thing. one function, one argument, zero drama πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • pd β€” a struct __prci_data * pointing at the PRCI that's holding the CORECLK mux reg. like, that's the one you're about to mess with, so know her before you touch her 🫢

⭐ DESCRIPTION ⭐

So what does it even do? It switches the CORECLK mux over to the final COREPLL output clock β€” and then it bounces, returning once the whole thing is complete. no hanging around, no "wait let me check my phone", just done βœ…


πŸ”₯ CONTEXT πŸ”₯

Any context, bestie β€” she's flexible like that 😌 but (and this is the important part, don't skip it πŸ™ˆ) the caller must prevent concurrent changes to the PRCI_CORECLKSEL_OFFSET register. fr fr, no cap β€” that's on you, not on her. πŸ’€


🌈 SEE ALSO 🌈

Kernel file ./drivers/clk/sifive/sifive-prci.c, plus her whole friend group:


ngl the register-locking thing is the whole vibe check of this page. say it with me: no concurrent changes to PRCI_CORECLKSEL_OFFSET πŸ§šβ€β™€οΈ

and that's the page, babe πŸŽ€ coming at you straight from ./drivers/clk/sifive β€” iykyk β€” dated October 2026 ✨ mwah, go slay that mux πŸ’–πŸ‘‘

πŸ“¦ where this page comes from