On Sat, Sep 16, 2023 at 02:08:59PM +0300, Arınç ÜNAL wrote: > Phylink bindings are required for ethernet controllers that utilise > phylink_fwnode_phy_connect() directly or through phylink_of_phy_connect(), > and register OF-based only MDIO buses, if they register any. What is phylink? Don't describe/justify binding changes based on some Linux functions. > All the drivers that utilise phylink_fwnode_phy_connect() directly or > through phylink_of_phy_connect(): > > - DSA > - drivers/net/ethernet/mscc/ocelot_net.c > - mscc,vsc7514-switch.yaml > - drivers/net/ethernet/microchip/sparx5/sparx5_netdev.c > - microchip,sparx5-switch.yaml > - drivers/net/ethernet/altera/altera_tse_main.c > - altr,tse.yaml > - drivers/net/ethernet/xilinx/xilinx_axienet_main.c > - xlnx,axi-ethernet.yaml > - drivers/net/ethernet/mediatek/mtk_eth_soc.c > - mediatek,net.yaml > - drivers/net/ethernet/ti/am65-cpsw-nuss.c > - ti,k3-am654-cpsw-nuss.yaml > - drivers/net/ethernet/atheros/ag71xx.c > - qca,ar71xx.yaml > - drivers/net/ethernet/freescale/dpaa/dpaa_eth.c > - fsl,fman-dtsec.yaml > - drivers/net/ethernet/microchip/lan966x/lan966x_main.c > - microchip,lan966x-switch.yaml > - drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > - marvell,pp2.yaml > - drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c > - fsl,qoriq-mc-dpmac.yaml > - drivers/net/ethernet/cadence/macb_main.c > - cdns,macb.yaml > - Can register non-OF-based bus. > - drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > - snps,dwmac.yaml > - Can register non-OF-based bus. > - drivers/net/ethernet/marvell/mvneta.c > - marvell-armada-370-neta.txt > - drivers/net/ethernet/freescale/enetc/enetc.c > - fsl-enetc.txt > > RFC: The drivers marked with "can register non-OF-based bus" seem to search > the MDIO bus to connect the PHY to the MAC using phylink_connect_phy() > and/or phy_find_first() if phylink bindings don't exist. Should we enforce > phylink bindings on their schemas regardless? Generally, describing the MDIO bus in DT is optional because the devices on the bus can be discovered. But then sometimes a device can't be discovered or has additional properties which aren't discoverable. So in general, an MDIO bus in DT should always be optional, but always supported (and validated) if present. If the device has a separate node for the MDIO controller (i.e. one with a compatible and reg for the MDIO controller register), then that should always be there (because the h/w is always there). Rob