STRUCT OMAP_SSI_CONTROLLER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

struct omap_ssi_controller β€” the OMAP SSI controller data, aka the main character struct of this whole driver era ✨ (this is page struct omap_ssi_controller(9) from the Kernel API Manual, hi bestie 🫢)


πŸŽ€ SYNOPSIS πŸŽ€

okay so here's literally the whole struct, look at her go πŸ’–

struct omap_ssi_controller {
    struct device           *dev;
    void __iomem            *sys;
    void __iomem            *gdd;
    struct clk              *fck;
    unsigned int            gdd_irq;
    struct tasklet_struct   gdd_tasklet;
    struct gdd_trn          gdd_trn[SSI_MAX_GDD_LCH];
    spinlock_t lock;
    struct notifier_block   fck_nb;
    unsigned long           fck_rate;
    u32 loss_count;
    u32 max_speed;
    u32 gdd_gcr;
    int (*get_loss)(struct device *dev);
    struct omap_ssi_port    **port;
  #ifdef CONFIG_DEBUG_FS;
    struct dentry *dir;
  #endif;
 };

🌸 Members 🌸

time for the member-by-member vibe check, no skips, we're doing all of them πŸ’…

  • dev β€” the device associated to the controller (HSI controller), her whole identity ngl πŸͺͺ
  • sys β€” SSI I/O base address πŸ“
  • gdd β€” GDD I/O base address πŸ“
  • fck β€” SSI functional clock ⏰
  • gdd_irq β€” IRQ line for GDD ⚑
  • gdd_tasklet β€” bottom half for DMA transfers πŸ§šβ€β™€οΈ (she does the cleanup work, lowkey iconic)
  • gdd_trn β€” array of GDD transaction data for ongoing GDD transfers 🚚
  • lock β€” lock to serialize access to GDD πŸ”’ (one at a time bestie, we're civilized)
  • fck_nb β€” DVFS notfifier block πŸ“’ (spelled exactly like this in the source, we do not gatekeep)
  • fck_rate β€” clock rate πŸ’¨
  • loss_count β€” to follow if we need to restore context or not πŸ‘€ (she's keeping receipts)
  • max_speed β€” maximum TX speed (Kb/s) set by the clients 🏎️
  • gdd_gcr β€” SSI GDD saved context πŸ—‚οΈ
  • get_loss β€” pointer to omap_pm_get_dev_context_loss_count, if any πŸ“ž
  • port β€” array of pointers of the ports of the controller πŸšͺ✨
  • dir β€” debugfs SSI root directory πŸ“ (guarded by CONFIG_DEBUG_FS, that's why she's all wrapped up in the #ifdef)

πŸ¦‹ SEE ALSO πŸ¦‹

go read these next bestie, the lore runs deep, iykyk πŸ“š

Kernel file ./drivers/hsi/controllers/omap_ssi.h and also struct omap_ssm_ctx(9), struct omap_ssi_port(9), struct gdd_trn(9) πŸ’œ


ok that's the whole tour, every single field accounted for, nothing dropped, periodt πŸ‘‘

alright bestie, that was struct omap_ssi_controller(9) from the Kernel API Manual β€” brought to you by ./drivers/hsi/controllers, dated October 2026 🌈⭐ mwah, go touch some registers πŸ’‹

πŸ“¦ where this page comes from