phy_module_driver(9)
π
phy_module_driver β a Kernel API Manual moment (yes, from phy_module_driver(9), we're fancy)
okay so bestie, picture this: you wrote a PHY driver, it's gorgeous, it's iconic, and now you need the kernel to actually register it. that's the whole job of this macro. it's the "just do the normal thing for me" button. β¨
πΈ NAME πΈ
phy_module_driver β the helper macro for registering PHY drivers. that's it. that's the name. π
π¦ SYNOPSIS π¦
phy_module_driver (__phy_drivers , __count );
literally just drop it in your file like that, no cap.
π ARGUMENTS π
__phy_driversβ the array of PHY drivers you wanna register. your whole little squad of drivers, in array form. π__countβ the number of members in that array. yes you have to count them. no the macro won't do it for you. it's giving "do your own homework". π
π₯ DESCRIPTION π₯
so this is the helper macro for PHY drivers that don't do anything special in module init/exit. like, nothing extra, no little send-off ritual, just vibes and registration. π«Ά
β οΈ each module may only use this macro once. one time. single use. and calling it replacesmodule_initandmodule_exitβ so don't go doubling up, that's not the move. π
β SEE ALSO β
the extended universe, ok? every single one of these, because the kernel is a whole friend group and they all show up to the party π§:
- Kernel file
./include/linux/phy.h enum phy_interface_t(9)phy_modes(9)rgmii_clock(9)struct mdio_bus_stats(9)struct mii_bus(9)mdiobus_alloc(9)enum phy_state(9)struct phy_c45_device_ids(9)struct phy_oatc14_sqi_capability(9)struct phy_device(9)struct phy_tdr_config(9)enum link_inband_signalling(9)struct phy_plca_cfg(9)struct phy_plca_status(9)struct phy_led(9)struct phy_mse_capability(9)struct phy_mse_snapshot(9)struct phy_driver(9)phy_id_compare(9)phy_id_compare_vendor(9)phy_id_compare_model(9)phydev_id_compare(9)phy_is_started(9)phy_driver_is_genphy(9)phy_disable_eee_mode(9)phy_can_wakeup(9)phy_may_wakeup(9)phy_read(9)__phy_read(9)phy_write(9)__phy_write(9)__phy_modify_changed(9)phy_read_mmd_poll_timeout(9)__phy_set_bits(9)__phy_clear_bits(9)phy_set_bits(9)phy_clear_bits(9)__phy_set_bits_mmd(9)__phy_clear_bits_mmd(9)phy_set_bits_mmd(9)phy_clear_bits_mmd(9)phy_interrupt_is_valid(9)phy_polling_mode(9)phy_has_hwtstamp(9)phy_has_rxtstamp(9)phy_has_tsinfo(9)phy_has_txtstamp(9)phy_is_default_hwtstamp(9)phy_on_sfp(9)phy_interface_mode_is_rgmii(9)phy_interface_mode_is_8023z(9)phy_interface_is_rgmii(9)phy_is_pseudo_fixed_link(9)
and that's the page, bestie!! π source lives at ./include/linux, dated October 2026, filed under phy_module_driver(9) β go forth and register your drivers, you absolute main character πππ
π¦ 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