ENUM PHY_INTERFACE_T(9)
πΈ enum phy_interface_t(9) πΈ
okay bestie, this is the enum phy_interface_t(9) page from the Kernel API Manual β it's basically the master list of every mode a MACβPHY interface can vibe in π
β¨ NAME β¨
enum phy_interface_t β the Interface Mode definitions, aka the whole roster of interface flavors π
β¨ SYNOPSIS β¨
enum phy_interface_t {
PHY_INTERFACE_MODE_NA ,
PHY_INTERFACE_MODE_INTERNAL ,
PHY_INTERFACE_MODE_MII ,
PHY_INTERFACE_MODE_GMII ,
PHY_INTERFACE_MODE_SGMII ,
PHY_INTERFACE_MODE_TBI ,
PHY_INTERFACE_MODE_REVMII ,
PHY_INTERFACE_MODE_RMII ,
PHY_INTERFACE_MODE_REVRMII ,
PHY_INTERFACE_MODE_RGMII ,
PHY_INTERFACE_MODE_RGMII_ID ,
PHY_INTERFACE_MODE_RGMII_RXID ,
PHY_INTERFACE_MODE_RGMII_TXID ,
PHY_INTERFACE_MODE_RTBI ,
PHY_INTERFACE_MODE_SMII ,
PHY_INTERFACE_MODE_XGMII ,
PHY_INTERFACE_MODE_XLGMII ,
PHY_INTERFACE_MODE_MOCA ,
PHY_INTERFACE_MODE_PSGMII ,
PHY_INTERFACE_MODE_QSGMII ,
PHY_INTERFACE_MODE_TRGMII ,
PHY_INTERFACE_MODE_100BASEX ,
PHY_INTERFACE_MODE_1000BASEX ,
PHY_INTERFACE_MODE_2500BASEX ,
PHY_INTERFACE_MODE_5GBASER ,
PHY_INTERFACE_MODE_RXAUI ,
PHY_INTERFACE_MODE_XAUI ,
PHY_INTERFACE_MODE_10GBASER ,
PHY_INTERFACE_MODE_25GBASER ,
PHY_INTERFACE_MODE_USXGMII ,
PHY_INTERFACE_MODE_10GKR ,
PHY_INTERFACE_MODE_QUSGMII ,
PHY_INTERFACE_MODE_1000BASEKX ,
PHY_INTERFACE_MODE_10G_QXGMII ,
PHY_INTERFACE_MODE_50GBASER ,
PHY_INTERFACE_MODE_LAUI ,
PHY_INTERFACE_MODE_100GBASEP ,
PHY_INTERFACE_MODE_MIILITE ,
PHY_INTERFACE_MODE_MAX
};
π Constants π
like. every single one. no skipping, we're doing the whole list bestie π€
PHY_INTERFACE_MODE_NAβ Not Applicable β don't touch πPHY_INTERFACE_MODE_INTERNALβ no interface at all, MAC and PHY are combined π«ΆPHY_INTERFACE_MODE_MIIβ Media-independent interfacePHY_INTERFACE_MODE_GMIIβ Gigabit media-independent interfacePHY_INTERFACE_MODE_SGMIIβ Serial gigabit media-independent interfacePHY_INTERFACE_MODE_TBIβ Ten Bit InterfacePHY_INTERFACE_MODE_REVMIIβ Reverse Media Independent InterfacePHY_INTERFACE_MODE_RMIIβ Reduced Media Independent InterfacePHY_INTERFACE_MODE_REVRMIIβ Reduced Media Independent Interface in PHY rolePHY_INTERFACE_MODE_RGMIIβ Reduced gigabit media-independent interfacePHY_INTERFACE_MODE_RGMII_IDβ RGMII with Internal RX+TX delayPHY_INTERFACE_MODE_RGMII_RXIDβ RGMII with Internal RX delayPHY_INTERFACE_MODE_RGMII_TXIDβ RGMII with Internal TX delayPHY_INTERFACE_MODE_RTBIβ Reduced TBIPHY_INTERFACE_MODE_SMIIβ Serial MIIPHY_INTERFACE_MODE_XGMIIβ 10 gigabit media-independent interfacePHY_INTERFACE_MODE_XLGMIIβ 40 gigabit media-independent interfacePHY_INTERFACE_MODE_MOCAβ Multimedia over CoaxPHY_INTERFACE_MODE_PSGMIIβ Penta SGMIIPHY_INTERFACE_MODE_QSGMIIβ Quad SGMIIPHY_INTERFACE_MODE_TRGMIIβ Turbo RGMIIPHY_INTERFACE_MODE_100BASEXβ 100 BaseXPHY_INTERFACE_MODE_1000BASEXβ 1000 BaseXPHY_INTERFACE_MODE_2500BASEXβ 2500 BaseXPHY_INTERFACE_MODE_5GBASERβ 5G BaseRPHY_INTERFACE_MODE_RXAUIβ Reduced XAUIPHY_INTERFACE_MODE_XAUIβ 10 Gigabit Attachment Unit InterfacePHY_INTERFACE_MODE_10GBASERβ 10G BaseRPHY_INTERFACE_MODE_25GBASERβ 25G BaseRPHY_INTERFACE_MODE_USXGMIIβ Universal Serial 10GE MIIPHY_INTERFACE_MODE_10GKRβ 10GBASE-KR - with Clause 73 ANPHY_INTERFACE_MODE_QUSGMIIβ Quad Universal SGMIIPHY_INTERFACE_MODE_1000BASEKXβ 1000Base-KX - with Clause 73 ANPHY_INTERFACE_MODE_10G_QXGMIIβ 10G-QXGMII - 4 ports over 10G USXGMIIPHY_INTERFACE_MODE_50GBASERβ 50GBase-R - with Clause 134 FECPHY_INTERFACE_MODE_LAUIβ 50 Gigabit Attachment Unit InterfacePHY_INTERFACE_MODE_100GBASEPβ 100GBase-P - with Clause 134 FECPHY_INTERFACE_MODE_MIILITEβ MII-Lite - MII without RXER TXER CRS COLPHY_INTERFACE_MODE_MAXβ Book keeping
π¦ Description π¦
So what does this whole thing even do? It describes the interface between the MAC and the PHY. that's it, that's the vibe β¨
π SEE ALSO π
Kernel file ./include/linux/phy.h β and now the extended fam, all of them, in order, no cap:
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), phy_module_driver(9)
that's the whole page bestie, go forth and pick your interface mode π β¨
and that's a wrap!! this one came out of ./include/linux, dated October 2026, page enum phy_interface_t(9) β mwah, love u, bye πππ¦
π¦ 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