This is the first set of measures taken so that more drivers can be transitioned towards phylink on shared (CPU and DSA) ports some time in the future. It consists of: - expanding the DT schema for DSA and related drivers to clarify the new requirements. - introducing warnings for drivers that currently skip phylink due to incomplete DT descriptions. - introducing warning for drivers that currently skip phylink due to using platform data (search for struct dsa_chip_data). - closing the possibility for new(ish) drivers to skip phylink, by validating their DT descriptions. - making the code paths used by shared ports more evident. - preparing the code paths used by shared ports for further work to fake a link description where that is possible. More details in patch 10/10. DT binding (patches 1-6) and kernel (7-10) are in principle separable, but are submitted together since they're part of the same story. Patches 8 and 9 are DSA cleanups, and patch 7 is a dependency for patch 10. Submitting as RFC because it's RFC season, but I'd like to resend this for proper inclusion as soon as possible once the merge window closes, so ACKs/NACKs are welcome. Change log in patches. v1 at https://patchwork.kernel.org/project/netdevbpf/patch/20220723164635.1621911-1-vladimir.oltean@xxxxxxx/ v2 at https://patchwork.kernel.org/project/netdevbpf/patch/20220729132119.1191227-5-vladimir.oltean@xxxxxxx/ v3 at https://patchwork.kernel.org/project/netdevbpf/cover/20220806141059.2498226-1-vladimir.oltean@xxxxxxx/ Cc: Rob Herring <robh+dt@xxxxxxxxxx> Cc: Frank Rowand <frowand.list@xxxxxxxxx> Vladimir Oltean (10): dt-bindings: net: dsa: xrs700x: add missing CPU port phy-mode to example dt-bindings: net: dsa: hellcreek: add missing CPU port phy-mode/fixed-link to example dt-bindings: net: dsa: b53: add missing CPU port phy-mode to example dt-bindings: net: dsa: microchip: add missing CPU port phy-mode to example dt-bindings: net: dsa: rzn1-a5psw: add missing CPU port phy-mode to example dt-bindings: net: dsa: make phylink bindings required for CPU/DSA ports of: base: export of_device_compatible_match() for use in modules net: dsa: avoid dsa_port_link_{,un}register_of() calls with platform data net: dsa: rename dsa_port_link_{,un}register_of net: dsa: make phylink-related OF properties mandatory on DSA and CPU ports .../bindings/net/dsa/arrow,xrs700x.yaml | 2 + .../devicetree/bindings/net/dsa/brcm,b53.yaml | 2 + .../devicetree/bindings/net/dsa/dsa-port.yaml | 17 ++ .../net/dsa/hirschmann,hellcreek.yaml | 6 + .../bindings/net/dsa/microchip,ksz.yaml | 4 + .../bindings/net/dsa/renesas,rzn1-a5psw.yaml | 2 + drivers/of/base.c | 1 + net/dsa/dsa2.c | 36 +++- net/dsa/dsa_priv.h | 4 +- net/dsa/port.c | 190 ++++++++++++++++-- 10 files changed, 237 insertions(+), 27 deletions(-) -- 2.34.1