On Thu, Jun 27, 2019 at 9:32 AM Maxime Ripard <maxime.ripard@xxxxxxxxxxx> wrote: > > The networking PHYs have a number of available device tree properties that > can be used in their device tree node. Add a YAML schemas for those. > > Reviewed-by: Andrew Lunn <andrew@xxxxxxx> > Reviewed-by: Rob Herring <robh@xxxxxxxxxx> > Signed-off-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxx> > --- > Documentation/devicetree/bindings/net/ethernet-phy.yaml | 179 +++++++++- > Documentation/devicetree/bindings/net/phy.txt | 80 +---- > 2 files changed, 180 insertions(+), 79 deletions(-) > create mode 100644 Documentation/devicetree/bindings/net/ethernet-phy.yaml > > diff --git a/Documentation/devicetree/bindings/net/ethernet-phy.yaml b/Documentation/devicetree/bindings/net/ethernet-phy.yaml > new file mode 100644 > index 000000000000..81d2016d7232 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/ethernet-phy.yaml > @@ -0,0 +1,179 @@ > +# SPDX-License-Identifier: GPL-2.0 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/ethernet-phy.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Ethernet PHY Generic Binding > + > +maintainers: > + - Andrew Lunn <andrew@xxxxxxx> > + - Florian Fainelli <f.fainelli@xxxxxxxxx> > + - Heiner Kallweit <hkallweit1@xxxxxxxxx> > + > +# The dt-schema tools will generate a select statement first by using > +# the compatible, and second by using the node name if any. In our > +# case, the node name is the one we want to match on, while the > +# compatible is optional. > +select: > + properties: > + $nodename: > + pattern: "^ethernet-phy(@[a-f0-9]+)?$" > + > + required: > + - $nodename > + > +properties: > + $nodename: > + pattern: "^ethernet-phy(@[a-f0-9]+)?$" > + > + compatible: > + oneOf: > + - const: ethernet-phy-ieee802.3-c22 > + description: PHYs that implement IEEE802.3 clause 22 > + - const: ethernet-phy-ieee802.3-c45 > + description: PHYs that implement IEEE802.3 clause 45 > + - pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$" > + description: > + If the PHY reports an incorrect ID (or none at all) then the > + compatible list may contain an entry with the correct PHY ID > + in the above form. > + The first group of digits is the 16 bit Phy Identifier 1 > + register, this is the chip vendor OUI bits 3:18. The > + second group of digits is the Phy Identifier 2 register, > + this is the chip vendor OUI bits 19:24, followed by 10 > + bits of a vendor specific ID. > + - items: > + - pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$" > + - const: ethernet-phy-ieee802.3-c45 > + > + reg: > + maxItems: 1 > + minimum: 0 > + maximum: 31 > + description: > + The ID number for the PHY. Mixing array and scalar properties is something we shouldn't be doing, so I dropped maxItems as that is implied. I have a meta-schema check for this once a couple of occurrences are fixed in the tree. Rob