STRUCT BRCMFMAC_PD_DEVICE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct brcmfmac_pd_device(9) πŸ’…

okay so this is a page from the Kernel API Manual, and honestly? it's a whole vibe. sit down bestie, we're learning about platform data today πŸŽ€


✨ NAME ✨

struct brcmfmac_pd_device β€” device specific platform data. literally what it says on the tin πŸ’–

and the way that (id/rev/bus_type) is the unique identifier of the device? that trio is the main character trio, no cap. those three together are how you know which device you're talking about. periodt.


🌸 SYNOPSIS 🌸

struct brcmfmac_pd_device {
    unsigned int            id;
    unsigned int            rev;
    enum brcmf_bus_type     bus_type;
    unsigned int            feature_disable;
    struct brcmfmac_pd_cc   *country_codes;
    union {
      struct brcmfmac_sdio_pd sdio;
    } bus;
 };

look at that struct. it's giving organized. it's giving "i know exactly what i'm doing" πŸ¦‹


πŸ‘‘ Members πŸ‘‘

okay so here's the breakdown of every single field, and yes we're doing all of them because none of them are boring:

  • id β€” the ID of the device that this data is for. and here's the tea: in the case of SDIO or PCIE, this is the chipid as identified by chip.c. in the case of USB, this is the chipid as identified by the device query. same field, two different sources, iykyk πŸ’…
  • rev β€” chip revision. see id. that's it, that's the whole thing, it's the sibling of id and they come as a pair fr fr.
  • bus_type β€” the type of bus. and listen, this one matters because some chipid/rev combos exist for different bus types β€” so the bus type is not just a little detail, it's load-bearing. each bus type has its own set of settings πŸ‘‘ so don't go mixing them up.
  • feature_disable β€” a bitmask of features to disable (override). see feature.c in brcmfmac for details. that's the pointer, go look at it, i'm not gatekeeping 🫢
  • country_codes β€” if available, a pointer to the struct for translating country codes. key words: if available. don't come for me if it's NULL, it's literally conditional πŸ’€
  • bus β€” bus specific (union) device settings. currently only SDIO. so yeah, it's a union with exactly one member right now β€” sdio β€” and that's the whole bus situation as it stands 🌈

⭐ SEE ALSO ⭐

go read these next, they're all in the same neighborhood:

  • the kernel file ./include/linux/platform_data/brcmfmac.h
  • struct brcmfmac_sdio_pd(9)
  • struct brcmfmac_pd_cc_entry(9)
  • struct brcmfmac_pd_cc(9)
  • struct brcmfmac_platform_data(9)

ok that's the whole page bestie!! every field, every flag, every "see feature.c" β€” nothing skipped, nothing dropped πŸ’– you're basically a brcmfmac expert now, slay 🧚

and for the cute sign-off: this little beauty lives in ./include/linux/platform_data and the version stamp says October 2026 β€” so mark your calendar, mwah πŸ’‹πŸŒΈ

πŸ“¦ where this page comes from