STRUCT BRCMFMAC_SDIO_PD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct brcmfmac_sdio_pd(9) πŸ’–

okay bestie, welcome to the Kernel API Manual ✨ this little cutie lives in struct brcmfmac_sdio_pd and it's literally the SDIO Device specific platform data. yes, it's giving "lowkey important struct energy" and honestly? obsessed 🫢


🌸 NAME 🌸

struct brcmfmac_sdio_pd β€” SDIO Device specific platform data. periodt πŸ’…


✨ SYNOPSIS ✨

struct brcmfmac_sdio_pd {
    int txglomsz;
    unsigned int    drive_strength;
    bool oob_irq_supported;
    unsigned int    oob_irq_nr;
    unsigned long   oob_irq_flags;
    bool broken_sg_support;
    unsigned short  sd_head_align;
    unsigned short  sd_sgentry_align;
    void (*reset)(void);
 };

like, that's the whole vibe right there πŸ¦‹


πŸŽ€ Members πŸŽ€

okay so every single field, no skips, let's go πŸƒβ€β™€οΈπŸ’¨

  • txglomsz β€” SDIO txglom size, bestie. Use 0 if you want the driver's default to be used instead. defaults are iconic, use them πŸ™ˆ
  • drive_strength β€” this is the preferred drive_strength to be used for the SDIO pins. If it's 0 then a default value will be used. and ngl, this is the target drive strength β€” the exact drive strength which will actually be used depends on the capabilities of the device. so yes, it's giving ✨negotiation✨ πŸ’«
  • oob_irq_supported β€” does the board have support for OOB interrupts? πŸ‘€ real talk: SDIO in-band interrupts are relatively slow, and for having less overhead on interrupt processing an out of band interrupt can be used. If the HW supports this then enable this by setting this field to true and configure the oob related fields β€” that means oob_irq_nr, and oob_irq_flags too πŸ”₯
  • oob_irq_flags β€” the OOB interrupt information. these values are used for registering the irq using the request_irq function. slay πŸ””
  • broken_sg_support β€” flag for broken sg list support of SDIO host controller πŸ’€ set this to true if the SDIO host controller has higher align requirement than 32 bytes for each scatterlist item. yeah. broken is in the name, be careful 😭
  • sd_head_align β€” alignment requirement for start of data buffer. keep it aligned, queen πŸ‘‘
  • sd_sgentry_align β€” length alignment requirement for each sg entry πŸ“
  • reset β€” this function can get called if the device communication broke down 😬 this functionality is particularly useful in case of SDIO type devices. It's possible to reset a dongle via sdio data interface, but β€” and this is the important bit β€” it requires that this is fully functional. This function is chip/module specific and this function should return only after the complete reset has completed. like, no leaving early, finish the reset first, main character energy only 🌟
⚠️ fr fr on that reset note: it must only return once the whole reset is done. don't be out here returning early, bestie 🫢

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./include/linux/platform_data/brcmfmac.h struct brcmfmac_pd_cc_entry(9), struct brcmfmac_pd_cc(9), struct brcmfmac_pd_device(9), struct brcmfmac_platform_data(9)

go read the whole squad, iykyk πŸ’œ


and that's the page, bestie! 🌈 this came from ./include/linux/platform_data, dated October 2026, and it's the struct brcmfmac_sdio_pd(9) manual page β€” mwah, stan forever πŸ’–πŸŽ€πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from