__devm_of_p...der_register(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

okay bestie, meet __devm_of_p...der_register(9) from the Kernel API Manual β€” literally the one that will create/register phy provider with the framework πŸ’…βœ¨


✨ SYNOPSIS ✨

struct phy_provider * __devm_of_phy_provider_register (struct device
       *dev , struct device_node *children , struct module *owner , struct phy
       * (*of_xlate)(struct device *dev, const struct of_phandle_args *args) );

🫢 ARGUMENTS 🫢

  • dev β€” the struct device of the phy provider, aka the main character here πŸ‘‘
  • children β€” device node containing children (if different from dev->of_node) 🧚
  • owner β€” the module owner containing of_xlate πŸŽ€
  • of_xlate β€” function pointer to obtain phy instance from phy provider, no cap πŸ”₯

πŸ’… DESCRIPTION πŸ’…

So it literally creates struct phy_provider from dev and the of_xlate function pointer ✨ This is used in the case of dt boot for finding the phy instance from phy provider πŸ¦‹

While at that, it also associates the device with the phy provider using devres β€” multitasking icon behavior, periodt πŸ’–

On driver detach, release function is invoked on the devres data, then, devres data is freed. Cleanup slay 🌈


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/phy/phy-core.c plus all these faves: phy_create_lookup(9), phy_remove_lookup(9), phy_init(9), phy_exit(9), phy_power_on(9), phy_power_off(9), phy_calibrate(9), phy_notify_connect(9), phy_notify_disconnect(9), phy_notify_state(9), phy_configure(9), phy_validate(9), _of_phy_get(9), of_phy_get(9), of_phy_put(9), phy_put(9), devm_phy_put(9), of_phy_simple_xlate(9), phy_get(9), devm_phy_get(9), devm_phy_optional_get(9), devm_of_phy_get(9), devm_of_phy_optional_get(9), devm_of_phy_get_by_index(9), phy_create(9), devm_phy_create(9), phy_destroy(9), devm_phy_destroy(9), __of_phy_provider_register(9), of_phy_provider_unregister(9), devm_of_phy_provider_unregister(9), phy_release(9) πŸ’œ


big kiss and bye bestie 🫢 this page lives in ./drivers/phy, dated October 2026, and it’s part of the Kernel API Manual βœ¨πŸŽ€

πŸ“¦ where this page comes from