fsl_ssi_set_bclk(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– fsl_ssi_set_bclk(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” this one's a little function from the ALSA/ASoC corner of the kernel and it's literally the vibe-setter for your audio clock. sit down, hydrate, let's go ✨


🌸 NAME 🌸

fsl_ssi_set_bclk β€” Configure Digital Audio Interface bit clock. that's it, that's the job. it configures the bit clock. clock girlie behavior πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

int fsl_ssi_set_bclk (struct snd_pcm_substream *substream , struct
snd_soc_dai *dai , struct snd_pcm_hw_params *hw_params );

it returns an int, so like… it's got opinions, and it will share them 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • substream β€” the ASoC substream. the little stream moment in question ✨
  • dai β€” pointer to DAI. yes, a pointer. we love a pointer, she's direct πŸ’…
  • hw_params β€” pointers to hw_params. (the page says "pointers" plural, so i'm keeping it plural, don't come for me 😭) β€” these are the hardware params, iykyk.

πŸ”₯ NOTES πŸ”₯

big one, bestie, listen up: this function can be only called when using SSI as DAI master. not slave, not vibes-based, master only. periodt πŸ‘‘

and here's the quick instruction for parameters, straight up no cap:

freq: Output BCLK frequency = samplerate * slots * slot_width (In 2-channel I2S Master mode, slot_width is fixed 32)

so yes, the math is mathing, and in 2-channel I2S Master mode that slot_width is locked at 32 β€” not up for debate, not negotiable, it's giving fixed. 🧚


🌈 SEE ALSO 🌈

the whole friend group lives in the kernel file ./sound/soc/fsl/fsl_ssi.c and honestly the squad is iconic:

go read them, they're all main character energy in their own way πŸ’œ


okay that's the whole page bestie, go configure that clock, slay, and remember: master mode or nothing πŸ’…βœ¨

source: ./sound/soc/fsl πŸŽ€ dated: October 2026 πŸŽ€ mwah, love u, bye πŸ¦‹πŸ’–

πŸ“¦ where this page comes from