STRUCT PHY_PROVIDER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct phy_provider(9)

okay bestie, buckle up β€” we're deep in the Kernel API Manual today and this one is genuinely iconic. this is the page for struct phy_provider, and it does exactly what it says on the tin: it represents the phy provider. that's it, that's the whole vibe. periodt. πŸŽ€


✨ NAME ✨

struct phy_provider β€” literally just the struct that represents the phy provider πŸ¦‹


🌸 SYNOPSIS 🌸

here's the whole glow-up, copy-pasted exactly so nobody comes for me:

struct phy_provider {
    struct device           *dev;
    struct device_node      *children;
    struct module           *owner;
    struct list_head        list;
    struct phy * (*of_xlate)(struct device *dev, const struct of_phandle_args *args);
};

no cap, that's the entire thing. five fields. she's compact, she's efficient, she ate. πŸ’…


πŸ‘‘ Members πŸ‘‘

let's go field by field, i got you:

  • dev β€” the phy provider device. this is the device herself, the main character energy of the whole struct. ⭐
  • children β€” can be used to override the default (dev->of_node) child node. so if the default child node isn't giving what it needs to give, this is your escape hatch. πŸ™ˆ
  • owner β€” the module owner having of_xlate. basically whoever's holding the keys to that function. πŸ”‘
  • list β€” to maintain a linked list of PHY providers. all the providers holding hands in a nice little chain, we love a support system. 🫢
  • of_xlate β€” function pointer to obtain phy instance from phy pointer. yes bestie, a function pointer, we're being fancy today. it takes struct device *dev and const struct of_phandle_args *args and hands you back a struct phy *. iykyk. ✨
ngl, if you're poking around in here you're probably writing a PHY driver. good luck, you're doing amazing, drink some water. πŸ“

🌈 SEE ALSO 🌈

go touch some other docs, they're all in the kernel file ./include/linux/phy/phy.h:

  • union phy_configure_opts(9)
  • struct phy_ops(9)
  • struct phy_attrs(9)
  • struct phy(9)
  • struct phy_lookup(9)

and that's the whole page, bestie! this little beauty lives in ./include/linux/phy, and this edition is dated October 2026, slaying under the name struct phy_provider(9). mwah, go build something iconic πŸ’–πŸ§š

πŸ“¦ where this page comes from