[PATCH net-next v2 07/10] dt-bindings: net: enforce phylink bindings on certain ethernet controllers

From: Arınç ÜNAL
Date: Sat Sep 16 2023 - 07:14:39 EST


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.

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?

DSA, like any other driver utilising the Linux MDIO infrastructure,
can register a bus. On certain conditions, it registers the MDIO
bus of the switch it controls non-OF-based.

We can know when DSA won't create any non-OF-based buses. That leaves us
with only OF-based buses in which case we can enforce phylink bindings for
user ports. The bindings are already enforced for shared ports so we can
enforce the bindings for all ports on the switch schemas which will achieve
the same result with fewer lines.

By looking at whether the mdio child node exists and what is explained on
it, we can enforce phylink bindings.

- mscc,vsc7514-switch.yaml
- Enforce phylink bindings for all ports.

- arrow,xrs700x.yaml
- Enforce phylink bindings for all ports.

- brcm,b53.yaml
- Enforce phylink bindings for all ports if "mdio" is defined.

- brcm,sf2.yaml
- Enforce phylink bindings for all ports.

- hirschmann,hellcreek.yaml
- Enforce phylink bindings for all ports.

- mediatek,mt7530.yaml
- Enforce phylink bindings for all ports if "mdio" is defined.

- microchip,ksz.yaml
- Enforce phylink bindings for all ports if "mdio" is defined.

- microchip,lan937x.yaml
- Enforce phylink bindings for all ports if "mdio" is defined.

- mscc,ocelot.yaml
- Enforce phylink bindings for all ports.

- nxp,sja1105.yaml
- Enforce phylink bindings for all ports.

- qca8k.yaml
- Enforce phylink bindings for all ports if "mdio" is defined.

- realtek.yaml
- Enforce phylink bindings for all ports if "mdio" is defined.

- renesas,rzn1-a5psw.yaml
- Enforce phylink bindings for all ports.

- ar9331.txt
- Enforce phylink bindings for all ports.

- lan9303.txt
- Enforce phylink bindings for all ports if "mdio" is defined.

- lantiq-gswip.txt
- Enforce phylink bindings for all ports.

- marvell.txt
- Enforce phylink bindings for all ports if "mdio" is defined.

- vitesse,vsc73xx.txt
- Enforce phylink bindings for all ports if "mdio" is defined.

I will convert the non json-schema documents accordingly.

Signed-off-by: Arınç ÜNAL <arinc.unal@xxxxxxxxxx>
---
.../devicetree/bindings/net/altr,tse.yaml | 1 +
.../devicetree/bindings/net/cdns,macb.yaml | 1 +
.../bindings/net/dsa/arrow,xrs700x.yaml | 6 ++
.../devicetree/bindings/net/dsa/brcm,b53.yaml | 9 +++
.../devicetree/bindings/net/dsa/brcm,sf2.yaml | 6 +-
.../net/dsa/hirschmann,hellcreek.yaml | 6 ++
.../bindings/net/dsa/mediatek,mt7530.yaml | 9 +++
.../bindings/net/dsa/microchip,ksz.yaml | 9 +++
.../bindings/net/dsa/microchip,lan937x.yaml | 9 +++
.../bindings/net/dsa/mscc,ocelot.yaml | 6 ++
.../bindings/net/dsa/nxp,sja1105.yaml | 1 +
.../devicetree/bindings/net/dsa/qca8k.yaml | 9 +++
.../devicetree/bindings/net/dsa/realtek.yaml | 57 +++++++++++--------
.../bindings/net/dsa/renesas,rzn1-a5psw.yaml | 2 +-
.../bindings/net/fsl,fman-dtsec.yaml | 1 +
.../bindings/net/fsl,qoriq-mc-dpmac.yaml | 1 +
.../devicetree/bindings/net/marvell,pp2.yaml | 4 +-
.../devicetree/bindings/net/mediatek,net.yaml | 1 +
.../net/microchip,lan966x-switch.yaml | 4 +-
.../bindings/net/microchip,sparx5-switch.yaml | 5 +-
.../bindings/net/mscc,vsc7514-switch.yaml | 5 ++
.../devicetree/bindings/net/qca,ar71xx.yaml | 1 +
.../devicetree/bindings/net/snps,dwmac.yaml | 1 +
.../bindings/net/ti,k3-am654-cpsw-nuss.yaml | 4 +-
.../bindings/net/xlnx,axi-ethernet.yaml | 3 +-
25 files changed, 130 insertions(+), 31 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/altr,tse.yaml b/Documentation/devicetree/bindings/net/altr,tse.yaml
index f5d3b70af07a..24e0f1213109 100644
--- a/Documentation/devicetree/bindings/net/altr,tse.yaml
+++ b/Documentation/devicetree/bindings/net/altr,tse.yaml
@@ -67,6 +67,7 @@ required:

allOf:
- $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink
- if:
properties:
compatible:
diff --git a/Documentation/devicetree/bindings/net/cdns,macb.yaml b/Documentation/devicetree/bindings/net/cdns,macb.yaml
index bf8894a0257e..a455de04c5f1 100644
--- a/Documentation/devicetree/bindings/net/cdns,macb.yaml
+++ b/Documentation/devicetree/bindings/net/cdns,macb.yaml
@@ -156,6 +156,7 @@ required:

allOf:
- $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink

- if:
not:
diff --git a/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml b/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
index 9565a7402146..7829fc9e202d 100644
--- a/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
@@ -29,6 +29,12 @@ properties:
reg:
maxItems: 1

+patternProperties:
+ "^(ethernet-)?ports$":
+ patternProperties:
+ "^(ethernet-)?port@[0-9]+$":
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
+
required:
- compatible
- reg
diff --git a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
index 0bb2ff0cf2d0..ed5b3eab1948 100644
--- a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
@@ -142,6 +142,15 @@ allOf:
reg:
maxItems: 1

+ - if:
+ required: [ mdio ]
+ then:
+ patternProperties:
+ "^(ethernet-)?ports$":
+ patternProperties:
+ "^(ethernet-)?port@[0-9]+$":
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
+
unevaluatedProperties: false

examples:
diff --git a/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml b/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
index c745407f2f68..6cffcd35a943 100644
--- a/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
@@ -81,7 +81,10 @@ properties:

patternProperties:
'^port@[0-9a-f]$':
- $ref: dsa-port.yaml#
+ type: object
+ allOf:
+ - $ref: dsa-port.yaml#
+ - $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
unevaluatedProperties: false

properties:
@@ -161,6 +164,7 @@ examples:
port@0 {
label = "gphy";
reg = <0>;
+ phy-handle = <&phy8>;
};
};
};
diff --git a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
index 4021b054f684..30b4c7b1fd08 100644
--- a/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/hirschmann,hellcreek.yaml
@@ -67,6 +67,12 @@ properties:

additionalProperties: false

+patternProperties:
+ "^(ethernet-)?ports$":
+ patternProperties:
+ "^(ethernet-)?port@[0-9]+$":
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
+
required:
- compatible
- reg
diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
index 31a7dbbf704d..a8e1134707e4 100644
--- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
@@ -297,6 +297,15 @@ allOf:
mediatek,mcm: false
reset-names: false

+ - if:
+ required: [ mdio ]
+ then:
+ patternProperties:
+ "^(ethernet-)?ports$":
+ patternProperties:
+ "^(ethernet-)?port@[0-9]+$":
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
+
unevaluatedProperties: false

examples:
diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
index 20e4174fe1ab..d8f12234eec6 100644
--- a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
@@ -60,6 +60,15 @@ required:
- compatible
- reg

+if:
+ required: [ mdio ]
+then:
+ patternProperties:
+ "^(ethernet-)?ports$":
+ patternProperties:
+ "^(ethernet-)?port@[0-9]+$":
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
+
unevaluatedProperties: false

examples:
diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
index 33a4926b2d94..44a892b93eca 100644
--- a/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
@@ -65,6 +65,15 @@ required:
- compatible
- reg

+if:
+ required: [ mdio ]
+then:
+ patternProperties:
+ "^(ethernet-)?ports$":
+ patternProperties:
+ "^(ethernet-)?port@[0-9]+$":
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
+
unevaluatedProperties: false

examples:
diff --git a/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml b/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml
index fe02d05196e4..80cc9c49282b 100644
--- a/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/mscc,ocelot.yaml
@@ -73,6 +73,12 @@ properties:
little-endian: true
big-endian: true

+patternProperties:
+ "^(ethernet-)?ports$":
+ patternProperties:
+ "^(ethernet-)?port@[0-9]+$":
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
+
required:
- compatible
- reg
diff --git a/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml b/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
index 6838dc165d06..1d5c4a81caf6 100644
--- a/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
@@ -79,6 +79,7 @@ patternProperties:
"^(ethernet-)?ports$":
patternProperties:
"^(ethernet-)?port@[0-9]+$":
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
allOf:
- if:
properties:
diff --git a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
index c472050582be..546939ab2053 100644
--- a/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml
@@ -114,6 +114,15 @@ required:
- compatible
- reg

+if:
+ required: [ mdio ]
+then:
+ patternProperties:
+ "^(ethernet-)?ports$":
+ patternProperties:
+ "^(ethernet-)?port@[0-6]$":
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
+
unevaluatedProperties: false

examples:
diff --git a/Documentation/devicetree/bindings/net/dsa/realtek.yaml b/Documentation/devicetree/bindings/net/dsa/realtek.yaml
index 62ebaa4b5ae3..ec0428b74157 100644
--- a/Documentation/devicetree/bindings/net/dsa/realtek.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/realtek.yaml
@@ -6,8 +6,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#

title: Realtek switches for unmanaged switches

-allOf:
- - $ref: dsa.yaml#/$defs/ethernet-ports
+$ref: dsa.yaml#/$defs/ethernet-ports

maintainers:
- Linus Walleij <linus.walleij@xxxxxxxxxx>
@@ -107,33 +106,43 @@ properties:
compatible:
const: realtek,smi-mdio

-if:
- required:
- - reg
+allOf:
+ - if:
+ required:
+ - reg

-then:
- $ref: /schemas/spi/spi-peripheral-props.yaml#
- properties:
- mdc-gpios: false
- mdio-gpios: false
- mdio:
+ then:
+ $ref: /schemas/spi/spi-peripheral-props.yaml#
properties:
- compatible: false
+ mdc-gpios: false
+ mdio-gpios: false
+ mdio:
+ properties:
+ compatible: false

-else:
- properties:
- mdio:
- required:
- - compatible
+ else:
+ properties:
+ mdio:
+ required:
+ - compatible

- required:
- - mdc-gpios
- - mdio-gpios
- - mdio
- - reset-gpios
+ required:
+ - mdc-gpios
+ - mdio-gpios
+ - mdio
+ - reset-gpios

-required:
- - compatible
+ required:
+ - compatible
+
+ - if:
+ required: [ mdio ]
+ then:
+ patternProperties:
+ "^(ethernet-)?ports$":
+ patternProperties:
+ "^(ethernet-)?port@[0-9]+$":
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink

unevaluatedProperties: false

diff --git a/Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml b/Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml
index 9ad9f5cdf688..7ec4371932ef 100644
--- a/Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml
@@ -72,7 +72,7 @@ properties:

patternProperties:
"^(ethernet-)?port@[0-4]$":
- type: object
+ $ref: /schemas/net/ethernet-controller.yaml#/$defs/phylink
description: Ethernet switch ports

properties:
diff --git a/Documentation/devicetree/bindings/net/fsl,fman-dtsec.yaml b/Documentation/devicetree/bindings/net/fsl,fman-dtsec.yaml
index c80c880a9dab..c31db5f7d548 100644
--- a/Documentation/devicetree/bindings/net/fsl,fman-dtsec.yaml
+++ b/Documentation/devicetree/bindings/net/fsl,fman-dtsec.yaml
@@ -136,6 +136,7 @@ dependencies:

allOf:
- $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink
- if:
properties:
compatible:
diff --git a/Documentation/devicetree/bindings/net/fsl,qoriq-mc-dpmac.yaml b/Documentation/devicetree/bindings/net/fsl,qoriq-mc-dpmac.yaml
index a1b71b35319e..b2cab0fa7b35 100644
--- a/Documentation/devicetree/bindings/net/fsl,qoriq-mc-dpmac.yaml
+++ b/Documentation/devicetree/bindings/net/fsl,qoriq-mc-dpmac.yaml
@@ -15,6 +15,7 @@ description:

allOf:
- $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink

properties:
compatible:
diff --git a/Documentation/devicetree/bindings/net/marvell,pp2.yaml b/Documentation/devicetree/bindings/net/marvell,pp2.yaml
index 4eadafc43d4f..8e60cc4bbbc9 100644
--- a/Documentation/devicetree/bindings/net/marvell,pp2.yaml
+++ b/Documentation/devicetree/bindings/net/marvell,pp2.yaml
@@ -59,7 +59,9 @@ patternProperties:
'^(ethernet-)?port@[0-2]$':
type: object
description: subnode for each ethernet port.
- $ref: ethernet-controller.yaml#
+ allOf:
+ - $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink
unevaluatedProperties: false

properties:
diff --git a/Documentation/devicetree/bindings/net/mediatek,net.yaml b/Documentation/devicetree/bindings/net/mediatek,net.yaml
index e74502a0afe8..7562bb64baa9 100644
--- a/Documentation/devicetree/bindings/net/mediatek,net.yaml
+++ b/Documentation/devicetree/bindings/net/mediatek,net.yaml
@@ -391,6 +391,7 @@ patternProperties:
unevaluatedProperties: false
allOf:
- $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink
description:
Ethernet MAC node
properties:
diff --git a/Documentation/devicetree/bindings/net/microchip,lan966x-switch.yaml b/Documentation/devicetree/bindings/net/microchip,lan966x-switch.yaml
index 306ef9ecf2b9..a770cfc490a9 100644
--- a/Documentation/devicetree/bindings/net/microchip,lan966x-switch.yaml
+++ b/Documentation/devicetree/bindings/net/microchip,lan966x-switch.yaml
@@ -73,7 +73,9 @@ properties:
"^port@[0-9a-f]+$":
type: object

- $ref: /schemas/net/ethernet-controller.yaml#
+ allOf:
+ - $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink
unevaluatedProperties: false

properties:
diff --git a/Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml b/Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml
index fcafef8d5a33..da4b4d934705 100644
--- a/Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml
+++ b/Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml
@@ -84,7 +84,10 @@ properties:

patternProperties:
"^port@[0-9a-f]+$":
- $ref: /schemas/net/ethernet-controller.yaml#
+ type: object
+ allOf:
+ - $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink
unevaluatedProperties: false

properties:
diff --git a/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml b/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml
index 8ee2c7d7ff42..b3aff7b0790e 100644
--- a/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml
+++ b/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml
@@ -126,6 +126,11 @@ properties:
- const: xtr
- const: fdma

+ ethernet-ports:
+ patternProperties:
+ "^port@[0-9a-f]+$":
+ $ref: ethernet-controller.yaml#/$defs/phylink
+
required:
- compatible
- reg
diff --git a/Documentation/devicetree/bindings/net/qca,ar71xx.yaml b/Documentation/devicetree/bindings/net/qca,ar71xx.yaml
index 89f94b31b546..d021bfb4ad20 100644
--- a/Documentation/devicetree/bindings/net/qca,ar71xx.yaml
+++ b/Documentation/devicetree/bindings/net/qca,ar71xx.yaml
@@ -8,6 +8,7 @@ title: QCA AR71XX MAC

allOf:
- $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink

maintainers:
- Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
index ddf9522a5dc2..62d8c2cfafe9 100644
--- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
@@ -567,6 +567,7 @@ dependencies:

allOf:
- $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink
- if:
properties:
compatible:
diff --git a/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml b/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
index c9c25132d154..d4366a11918e 100644
--- a/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
+++ b/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
@@ -117,7 +117,9 @@ properties:
type: object
description: CPSWxG NUSS external ports

- $ref: ethernet-controller.yaml#
+ allOf:
+ - $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink
unevaluatedProperties: false

properties:
diff --git a/Documentation/devicetree/bindings/net/xlnx,axi-ethernet.yaml b/Documentation/devicetree/bindings/net/xlnx,axi-ethernet.yaml
index 1d33d80af11c..f8894546c02a 100644
--- a/Documentation/devicetree/bindings/net/xlnx,axi-ethernet.yaml
+++ b/Documentation/devicetree/bindings/net/xlnx,axi-ethernet.yaml
@@ -130,7 +130,8 @@ required:
- phy-handle

allOf:
- - $ref: /schemas/net/ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#
+ - $ref: ethernet-controller.yaml#/$defs/phylink

additionalProperties: false

--
2.39.2