Re: [PATCH phy 13/14] dt-bindings: phy: lynx-28g: add compatible strings per SerDes and instantiation
From: Conor Dooley <conor@kernel.org>
Date: 2025-09-04 19:22:21
Also in:
linux-devicetree, lkml
On Thu, Sep 04, 2025 at 06:44:01PM +0300, Vladimir Oltean wrote:
Going by the generic "fsl,lynx-28g" compatible string and expecting all SerDes instantiations on all SoCs to use it was a mistake. They all share the same register map, sure, but the number of protocol converters and lanes which are instantiated differs in a way that isn't detectable by software. So distinguish them by compatible strings. At the same time, keep "fsl,lynx-28g" as backup.
Why keep the backup? Doesn't sound like you can use it for anything, unless there's some minimum set of capabilities that all devices support. If that's not the case, should it not just be marked deprecated or removed entirely?
quoted hunk ↗ jump to hunk
Cc: Rob Herring <robh@kernel.org> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> Cc: Conor Dooley <conor+dt@kernel.org> Cc: devicetree@vger.kernel.org Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> --- .../devicetree/bindings/phy/fsl,lynx-28g.yaml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-)diff --git a/Documentation/devicetree/bindings/phy/fsl,lynx-28g.yaml b/Documentation/devicetree/bindings/phy/fsl,lynx-28g.yaml index ff9f9ca0f19c..55d773c8d0e4 100644 --- a/Documentation/devicetree/bindings/phy/fsl,lynx-28g.yaml +++ b/Documentation/devicetree/bindings/phy/fsl,lynx-28g.yaml@@ -11,8 +11,17 @@ maintainers: properties: compatible: - enum: - - fsl,lynx-28g + oneOf: + - items: + - const: fsl,lynx-28g + - items: + - enum: + - fsl,lx2160a-serdes1 + - fsl,lx2160a-serdes2 + - fsl,lx2160a-serdes3 + - fsl,lx2162a-serdes1 + - fsl,lx2162a-serdes2 + - const: fsl,lynx-28g reg: maxItems: 1@@ -33,7 +42,7 @@ examples: #address-cells = <2>; #size-cells = <2>; serdes_1: phy@1ea0000 { - compatible = "fsl,lynx-28g"; + compatible = "fsl,lx2160a-serdes1", "fsl,lynx-28g"; reg = <0x0 0x1ea0000 0x0 0x1e30>; #phy-cells = <1>; };-- 2.34.1