STRUCT OMAP_SSI_PORT(9)
β¨ struct omap_ssi_port(9) β¨ β Kernel API Manual π
okay bestie, this is the struct omap_ssi_port(9) page, and it's literally the data layout for an OMAP SSI port. No cap, we're getting into the port's whole little world. π«Ά
πΈ NAME πΈ
struct omap_ssi_port β OMAP SSI port data. That's the name and the one-line vibe, periodt. π
π¦ SYNOPSIS π¦
Here's the struct in all its glory, exactly as written, no edits, no nothing:
struct omap_ssi_port {
struct device *dev;
struct device *pdev;
dma_addr_t sst_dma;
dma_addr_t ssr_dma;
void __iomem *sst_base;
void __iomem *ssr_base;
spinlock_t wk_lock;
spinlock_t lock;
unsigned int channels;
struct list_head txqueue[SSI_MAX_CHANNELS];
struct list_head rxqueue[SSI_MAX_CHANNELS];
struct list_head brkqueue;
struct list_head errqueue;
struct delayed_work errqueue_work;
unsigned int irq;
int wake_irq;
struct gpio_desc *wake_gpio;
bool wktest:1;
unsigned long flags;
unsigned int wk_refcount;
struct work_struct work;
u32 sys_mpu_enable;
struct omap_ssm_ctx sst;
struct omap_ssm_ctx ssr;
u32 loss_count;
u32 port_id;
#ifdef CONFIG_DEBUG_FS;
struct dentry *dir;
#endif;
};
π Members π
The member roster is giving "who's who at the port party," and every entry matters:
devβ device associated to the port (HSI port). It's the port's main-character device link. πpdevβ platform device associated to the port.sst_dmaβ SSI transmitter physical base address. Physical, not virtual, bestie.ssr_dmaβ SSI receiver physical base address.sst_baseβ SSI transmitter base address.ssr_baseβ SSI receiver base address.wk_lockβ spin lock to serialize access to the wake lines. Gotta keep the wake-line girlies from stepping on each other. πlockβ Spin lock to serialize access to the SSI port. Protect the port, periodt.channelsβ Current number of channels configured (1,2,4 or 8). Those are the numbers, iykyk.txqueueβ TX message queues.rxqueueβ RX message queues.brkqueueβ Queue of incoming HWBREAK requests (FRAME mode).errqueueβ Queue for failed messages. Sad girl queue, but necessary. πerrqueue_workβ Delayed Work for failed messages.irqβ IRQ number.wake_irqβ IRQ number for incoming wake line (-1 if none).wake_gpioβ GPIO number for incoming wake line (-1 if none).flagsβ flags to keep track of states.wk_refcountβ Reference count for output wake line.workβ worker for starting TX. Get that transmission started, bestie. π₯sys_mpu_enableβ Context for the interrupt enable register for irq 0.sstβ Context for the synchronous serial transmitter.ssrβ Context for the synchronous serial receiver.
π SEE ALSO π
Kernel file ./drivers/hsi/controllers/omap_ssi.h β plus bestie, go peek at struct omap_ssm_ctx(9), struct gdd_trn(9), and struct omap_ssi_controller(9). This is the friend group, fr fr. π«Ά
xoxo, from ./drivers/hsi/controllers π β October 2026 edition, all about struct omap_ssi_port(9) π
β¨
π¦ 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