Hello, this is v2 of series that extends the `phy-connection-type` / `phy-mode` property to be an array of strings, instead of just one string, and makes the corresponding changes to code. It then uses this changes to make marvell10g PHY driver choose the best MACTYPE according to which phy-modes are supported by the MAC, the PHY and the board. Conventionaly the `phy-mode` means "this is the mode I want the PHY to operate in". But we now have some PHYs that may need to change the PHY mode during operation (marvell10g PHY driver), and so we need to know all the supported modes. Russell King is working on MAC and PHY drivers to inform phylink on which PHY interface modes they support, but it is not enough, because even if a MAC/PHY driver fills all the modes supported by the driver, still each individual board may have only some of these modes actually wired. This series - changes the type of the `phy-mode` property to be an array of PHY interface strings, - updated documentation of of_get_phy_mode() and related to inform that only first mode is returned by these functions (since this function is needed to still support conventional usage of the `phy-mode` property), - adds fwnode_get_phy_modes() function which reads the `phy-mode` array and fills bitmap with mentioned modes, - adds code to phylink to intersect the supported interfaces bitmap supplied by MAC driver, with interface modes defined in device-tree (and keeps backwards compatibility with conventional usage of the phy-mode property, for more information read the commit message of patch 4/8), - passes supported interfaces to PHY driver so that it may configure a PHY to a specific mode given these interfaces, - uses this information in marvell10g driver. Changes since v1: - added Reviewed-by tags - added 10gbase-r example scenario to commit message of patch 4 - changed phylink_update_phy_modes() so that if supported_interfaces is empty (an unconverted driver that doesn't fill up this member), we leave it empty - rewritten phylink_update_phy_modes() according to Sean Anderson's comment: use phy_interface_and/or() instead of several if (test_bit) set_bit - added more explanation to commit message of patch 8, as per Vladimir Oltean's suggestion Changes since RFC: - update also description of the `phy-connection-type` property Marek Behún (7): dt-bindings: ethernet-controller: support multiple PHY connection types net: Update documentation for *_get_phy_mode() functions device property: add helper function for getting phy mode bitmap net: phylink: update supported_interfaces with modes from fwnode net: phylink: pass supported PHY interface modes to phylib net: phy: marvell10g: Use generic macro for supported interfaces net: phy: marvell10g: Use tabs instead of spaces for indentation Russell King (1): net: phy: marvell10g: select host interface configuration .../bindings/net/ethernet-controller.yaml | 94 ++++++------ drivers/base/property.c | 48 +++++- drivers/net/phy/marvell10g.c | 140 ++++++++++++++++-- drivers/net/phy/phylink.c | 98 ++++++++++++ include/linux/phy.h | 10 ++ include/linux/property.h | 3 + net/core/of_net.c | 9 +- 7 files changed, 332 insertions(+), 70 deletions(-) -- 2.32.0