STRUCT FSL_SSI(9)
π struct fsl_ssi(9) π
okay so bestie, welcome to the Kernel API Manual β this is the whole entire glow-up tour of struct fsl_ssi, which is literally just per-SSI private data and honestly? it's giving main character energy. every field, no skips, no cap. π
β¨ SYNOPSIS β¨
like, here's the whole struct, exactly as it lives, don't touch a single character:
struct fsl_ssi {
struct regmap *regs;
int irq;
struct snd_soc_dai_driver cpu_dai_drv;
unsigned int dai_fmt;
u8 streams;
u8 i2s_net;
bool synchronous;
bool use_dma;
bool use_dual_fifo;
bool use_dyna_fifo;
bool has_ipg_clk_name;
unsigned int fifo_depth;
unsigned int slot_width;
unsigned int slots;
struct fsl_ssi_regvals regvals[2];
struct clk *clk;
struct clk *baudclk;
unsigned int baudclk_streams;
u32 regcache_sfcsr;
u32 regcache_sacnt;
struct snd_dmaengine_dai_dma_data dma_params_tx;
struct snd_dmaengine_dai_dma_data dma_params_rx;
dma_addr_t ssi_phys;
struct imx_pcm_fiq_params fiq_params;
struct platform_device *card_pdev;
char card_name[32];
u32 card_idx;
struct fsl_ssi_dbg dbg_stats;
const struct fsl_ssi_soc_data *soc;
struct device *dev;
u32 fifo_watermark;
u32 dma_maxburst;
struct mutex ac97_reg_lock;
struct sdma_peripheral_config audio_config[2];
};
π¦ Members π¦
bestie, buckle up, because there's a lot of them and every single one is iconic in its own way:
regsβ Pointer to the regmap registers π«irqβ IRQ of this SSIcpu_dai_drvβ CPU DAI driver for this devicedai_fmtβ DAI configuration this device is currently used withstreamsβ Mask of current active streams:BIT(TX)andBIT(RX)πi2s_netβ I2S and Network mode configurations of SCR register (this is the initial settings based on the DAI format)synchronousβ Use synchronous mode β both of TX and RX use STCK and SFCKuse_dmaβ DMA is used or FIQ with stream filteruse_dual_fifoβ DMA with support for dual FIFO modeuse_dyna_fifoβ DMA with support for multi FIFO scripthas_ipg_clk_nameβ If"ipg"is in the clock name list of device tree πΈfifo_depthβ Depth of the SSI FIFOsslot_widthβ Width of each DAI slotslotsβ Number of slotsregvalsβ Specific RX/TX register settingsclkβ Clock source to access registerbaudclkβ Clock source to generate bit and frame-sync clocksbaudclk_streamsβ Active streams that are usingbaudclkregcache_sfcsrβ Cachesfcsrregister value during suspend and resume π΄regcache_sacntβ Cachesacntregister value during suspend and resumedma_params_txβ DMA transmit parametersdma_params_rxβ DMA receive parametersssi_physβ physical address of the SSI registersfiq_paramsβ FIQ stream filtering parameterscard_pdevβ Platform_device pointer to register a sound card for PowerPC or to register a CODEC platform device for AC97card_nameβ Platform_device name to register a sound card for PowerPC or to register a CODEC platform device for AC97card_idxβ The index of SSI to register a sound card for PowerPC or to register a CODEC platform device for AC97dbg_statsβ Debugging statistics πsocβ SoC specific datadevβ Pointer topdev->devfifo_watermarkβ The FIFO watermark setting. Notifies DMA when there arefifo_watermarkor fewer words in TX fifo orfifo_watermarkor more empty words in RX fifo. πdma_maxburstβ Max number of words to transfer in one go. So far, this is always the same asfifo_watermark.ac97_reg_lockβ Mutex lock to serialize AC97 register access operations πaudio_configβ configure for dma multi fifo script
ngl bestie, thatdma_maxburstone is currently always the same asfifo_watermarkβ that's the docs talking, not me guessing. pls don't come for me. π
π SEE ALSO π
Kernel file ./sound/soc/fsl/fsl_ssi.c, plus the whole friend group: FSLSSI_I2S_FORMATS(9), fsl_ssi_isr(9), fsl_ssi_config_enable(9), fsl_ssi_config_disable(9), fsl_ssi_setup_regvals(9), fsl_ssi_set_bclk(9), fsl_ssi_hw_params(9), fsl_ssi_set_dai_fmt(9), fsl_ssi_set_dai_tdm_slot(9), fsl_ssi_trigger(9), fsl_ssi_hw_init(9), fsl_ssi_hw_clean(9) β go read them, they ate. π₯
π«Ά that's the whole page babes! it came from the source tree at ./sound/soc/fsl, dated October 2026, and it's literally titled struct fsl_ssi(9) β slay, periodt. π
β¨
π¦ 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