On Mon, Nov 20, 2023 at 02:50:30PM +0100, Christian Marangi wrote: > Document ethernet PHY package nodes used to describe PHY shipped in > bundle of 4-5 PHY. These particular PHY require specific PHY in the > package for global onfiguration of the PHY package. > > Example are PHY package that have some regs only in one PHY of the > package and will affect every other PHY in the package, for example > related to PHY interface mode calibration or global PHY mode selection. I think you are being overly narrow here. The 'global' registers could be spread over multiple addresses. Particularly for a C22 PHY. I suppose they could even be in a N+1 address space, where there is no PHY at all. Where the global registers are is specific to a PHY package vendor/model. The PHY driver should know this. All the PHY driver needs to know is some sort of base offset. PHY0 in this package is using address X. It can then use relative addressing from this base to access the global registers for this package. > It's also possible to specify the property phy-mode to specify that the > PHY package sets a global PHY interface mode and every PHY of the > package requires to have the same PHY interface mode. I don't think it is what simple. See the QCA8084 for example. 3 of the 4 PHYs must use QXGMII. The fourth PHY can also use QXGMII but it can be multiplexed to a different PMA and use 1000BaseX, SGMII or 2500BaseX. I do think we need somewhere to put package properties. But i don't think phy-mode is such a property. At the moment, i don't have a good example of a package property. > +examples: > + - | > + ethernet { > + #address-cells = <1>; > + #size-cells = <0>; > + > + ethernet-phy-package { > + compatible = "ethernet-phy-package"; > + #address-cells = <1>; > + #size-cells = <0>; You have the PHYs within the Ethernet node. This is allowed by DT, for historic reasons. However, i don't remember the last time a patch was submitted that actually used this method. Now a days, PHYs are on an MDIO bus, and they are children of that bus in the DT representation. However you represent the package needs to work with MDIO busses. Andrew --- pw-bot: cr