Message ID | e99ff7377a0d3d140cf62200fd9d62c108dac24e.1561649505.git-series.maxime.ripard@bootlin.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | net: Add generic and Allwinner YAML bindings | expand |
On Thu, Jun 27, 2019 at 05:31:45PM +0200, Maxime Ripard wrote: > The MDIO buses have a number of available device tree properties that can > be used in their device tree node. Add a YAML schemas for those. > > Suggested-by: Andrew Lunn <andrew@lunn.ch> > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
On Thu, Jun 27, 2019 at 9:32 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote: > > The MDIO buses have a number of available device tree properties that can > be used in their device tree node. Add a YAML schemas for those. > > Suggested-by: Andrew Lunn <andrew@lunn.ch> > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> > --- > Documentation/devicetree/bindings/net/mdio.txt | 38 +------------- > Documentation/devicetree/bindings/net/mdio.yaml | 51 ++++++++++++++++++- > 2 files changed, 52 insertions(+), 37 deletions(-) > create mode 100644 Documentation/devicetree/bindings/net/mdio.yaml Reviewed-by: Rob Herring <robh@kernel.org> However, some comments for a follow-up... > diff --git a/Documentation/devicetree/bindings/net/mdio.yaml b/Documentation/devicetree/bindings/net/mdio.yaml > new file mode 100644 > index 000000000000..b8fa8251c4bc > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/mdio.yaml > @@ -0,0 +1,51 @@ > +# SPDX-License-Identifier: GPL-2.0 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/mdio.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: MDIO Bus Generic Binding > + > +maintainers: > + - Andrew Lunn <andrew@lunn.ch> > + - Florian Fainelli <f.fainelli@gmail.com> > + - Heiner Kallweit <hkallweit1@gmail.com> > + > +description: > + These are generic properties that can apply to any MDIO bus. Any > + MDIO bus must have a list of child nodes, one per device on the > + bus. These should follow the generic ethernet-phy.yaml document, or > + a device specific binding document. > + > +properties: > + reset-gpios: > + maxItems: 1 > + description: > + The phandle and specifier for the GPIO that controls the RESET > + lines of all PHYs on that MDIO bus. > + > + reset-delay-us: > + description: > + RESET pulse width in microseconds. It applies to all PHY devices > + and must therefore be appropriately determined based on all PHY > + requirements (maximum value of all per-PHY RESET pulse widths). > + > +examples: > + - | > + davinci_mdio: mdio@5c030000 { Can we enforce nodename to be mdio? That may not work for muxes. You'll probably have to implement it and see. > + compatible = "ti,davinci_mdio"; > + reg = <0x5c030000 0x1000>; > + #address-cells = <1>; > + #size-cells = <0>; These 2 should have a schema. > + > + reset-gpios = <&gpio2 5 1>; > + reset-delay-us = <2>; > + > + ethphy0: ethernet-phy@1 { > + reg = <1>; Need a child node schema to validate the unit-address and reg property. > + }; > + > + ethphy1: ethernet-phy@3 { > + reg = <3>; > + }; > + }; > -- > git-series 0.9.1
Hi Rob, On Thu, Jun 27, 2019 at 09:48:06AM -0600, Rob Herring wrote: > On Thu, Jun 27, 2019 at 9:32 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote: > > > > The MDIO buses have a number of available device tree properties that can > > be used in their device tree node. Add a YAML schemas for those. > > > > Suggested-by: Andrew Lunn <andrew@lunn.ch> > > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> > > --- > > Documentation/devicetree/bindings/net/mdio.txt | 38 +------------- > > Documentation/devicetree/bindings/net/mdio.yaml | 51 ++++++++++++++++++- > > 2 files changed, 52 insertions(+), 37 deletions(-) > > create mode 100644 Documentation/devicetree/bindings/net/mdio.yaml > > Reviewed-by: Rob Herring <robh@kernel.org> > > However, some comments for a follow-up... > > > diff --git a/Documentation/devicetree/bindings/net/mdio.yaml b/Documentation/devicetree/bindings/net/mdio.yaml > > new file mode 100644 > > index 000000000000..b8fa8251c4bc > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/net/mdio.yaml > > @@ -0,0 +1,51 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/net/mdio.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: MDIO Bus Generic Binding > > + > > +maintainers: > > + - Andrew Lunn <andrew@lunn.ch> > > + - Florian Fainelli <f.fainelli@gmail.com> > > + - Heiner Kallweit <hkallweit1@gmail.com> > > + > > +description: > > + These are generic properties that can apply to any MDIO bus. Any > > + MDIO bus must have a list of child nodes, one per device on the > > + bus. These should follow the generic ethernet-phy.yaml document, or > > + a device specific binding document. > > + > > +properties: > > + reset-gpios: > > + maxItems: 1 > > + description: > > + The phandle and specifier for the GPIO that controls the RESET > > + lines of all PHYs on that MDIO bus. > > + > > + reset-delay-us: > > + description: > > + RESET pulse width in microseconds. It applies to all PHY devices > > + and must therefore be appropriately determined based on all PHY > > + requirements (maximum value of all per-PHY RESET pulse widths). > > + > > +examples: > > + - | > > + davinci_mdio: mdio@5c030000 { > > Can we enforce nodename to be mdio? That may not work for muxes. > You'll probably have to implement it and see. Ok, I'll send a follow-up patch for this. > > + compatible = "ti,davinci_mdio"; > > + reg = <0x5c030000 0x1000>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > These 2 should have a schema. Indeed, I'll do it for that too. > > + > > + reset-gpios = <&gpio2 5 1>; > > + reset-delay-us = <2>; > > + > > + ethphy0: ethernet-phy@1 { > > + reg = <1>; > > Need a child node schema to validate the unit-address and reg property. This should be already covered by the ethernet-phy.yaml schemas earlier in this series. Were you expecting something else? Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
On Thu, Jun 27, 2019 at 9:57 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote: > > Hi Rob, > > On Thu, Jun 27, 2019 at 09:48:06AM -0600, Rob Herring wrote: > > On Thu, Jun 27, 2019 at 9:32 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote: > > > > > > The MDIO buses have a number of available device tree properties that can > > > be used in their device tree node. Add a YAML schemas for those. > > > > > > Suggested-by: Andrew Lunn <andrew@lunn.ch> > > > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> > > > --- > > > Documentation/devicetree/bindings/net/mdio.txt | 38 +------------- > > > Documentation/devicetree/bindings/net/mdio.yaml | 51 ++++++++++++++++++- > > > 2 files changed, 52 insertions(+), 37 deletions(-) > > > create mode 100644 Documentation/devicetree/bindings/net/mdio.yaml > > > > Reviewed-by: Rob Herring <robh@kernel.org> > > > > However, some comments for a follow-up... > > > > > diff --git a/Documentation/devicetree/bindings/net/mdio.yaml b/Documentation/devicetree/bindings/net/mdio.yaml > > > new file mode 100644 > > > index 000000000000..b8fa8251c4bc > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/net/mdio.yaml > > > @@ -0,0 +1,51 @@ > > > +# SPDX-License-Identifier: GPL-2.0 > > > +%YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/net/mdio.yaml# > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: MDIO Bus Generic Binding > > > + > > > +maintainers: > > > + - Andrew Lunn <andrew@lunn.ch> > > > + - Florian Fainelli <f.fainelli@gmail.com> > > > + - Heiner Kallweit <hkallweit1@gmail.com> > > > + > > > +description: > > > + These are generic properties that can apply to any MDIO bus. Any > > > + MDIO bus must have a list of child nodes, one per device on the > > > + bus. These should follow the generic ethernet-phy.yaml document, or > > > + a device specific binding document. > > > + > > > +properties: > > > + reset-gpios: > > > + maxItems: 1 > > > + description: > > > + The phandle and specifier for the GPIO that controls the RESET > > > + lines of all PHYs on that MDIO bus. > > > + > > > + reset-delay-us: > > > + description: > > > + RESET pulse width in microseconds. It applies to all PHY devices > > > + and must therefore be appropriately determined based on all PHY > > > + requirements (maximum value of all per-PHY RESET pulse widths). > > > + > > > +examples: > > > + - | > > > + davinci_mdio: mdio@5c030000 { > > > > Can we enforce nodename to be mdio? That may not work for muxes. > > You'll probably have to implement it and see. > > Ok, I'll send a follow-up patch for this. > > > > + compatible = "ti,davinci_mdio"; > > > + reg = <0x5c030000 0x1000>; > > > + #address-cells = <1>; > > > + #size-cells = <0>; > > > > These 2 should have a schema. > > Indeed, I'll do it for that too. > > > > + > > > + reset-gpios = <&gpio2 5 1>; > > > + reset-delay-us = <2>; > > > + > > > + ethphy0: ethernet-phy@1 { > > > + reg = <1>; > > > > Need a child node schema to validate the unit-address and reg property. > > This should be already covered by the ethernet-phy.yaml schemas > earlier in this series. Partially, yes. > Were you expecting something else? That would not prevent having a child node such as 'foo {};' or 'foo@bad {};'. It would also not check valid nodes named something other than 'ethernet-phy'. Rob
On Thu, Jun 27, 2019 at 10:06:57AM -0600, Rob Herring wrote: > On Thu, Jun 27, 2019 at 9:57 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote: > > > > + > > > > + reset-gpios = <&gpio2 5 1>; > > > > + reset-delay-us = <2>; > > > > + > > > > + ethphy0: ethernet-phy@1 { > > > > + reg = <1>; > > > > > > Need a child node schema to validate the unit-address and reg property. > > > > This should be already covered by the ethernet-phy.yaml schemas > > earlier in this series. > > Partially, yes. > > > Were you expecting something else? > > That would not prevent having a child node such as 'foo {};' or > 'foo@bad {};'. It would also not check valid nodes named something > other than 'ethernet-phy'. Right, but listing the nodes won't either, since we can't enable additionalProperties in that schema. So any node that wouldn't match ethernet-phy@.* wouldn't be validated, but wouldn't generate a warning either. Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
On Fri, Jun 28, 2019 at 7:46 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote: > > On Thu, Jun 27, 2019 at 10:06:57AM -0600, Rob Herring wrote: > > On Thu, Jun 27, 2019 at 9:57 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote: > > > > > + > > > > > + reset-gpios = <&gpio2 5 1>; > > > > > + reset-delay-us = <2>; > > > > > + > > > > > + ethphy0: ethernet-phy@1 { > > > > > + reg = <1>; > > > > > > > > Need a child node schema to validate the unit-address and reg property. > > > > > > This should be already covered by the ethernet-phy.yaml schemas > > > earlier in this series. > > > > Partially, yes. > > > > > Were you expecting something else? > > > > That would not prevent having a child node such as 'foo {};' or > > 'foo@bad {};'. It would also not check valid nodes named something > > other than 'ethernet-phy'. > > Right, but listing the nodes won't either, since we can't enable > additionalProperties in that schema. So any node that wouldn't match > ethernet-phy@.* wouldn't be validated, but wouldn't generate a warning > either. Perhaps I wasn't clear, but it was missing or incorrect 'reg' property and unit-address format checks that I was thinking about. Just like we have for SPI. Rob
diff --git a/Documentation/devicetree/bindings/net/mdio.txt b/Documentation/devicetree/bindings/net/mdio.txt index e3e1603f256c..cf8a0105488e 100644 --- a/Documentation/devicetree/bindings/net/mdio.txt +++ b/Documentation/devicetree/bindings/net/mdio.txt @@ -1,37 +1 @@ -Common MDIO bus properties. - -These are generic properties that can apply to any MDIO bus. - -Optional properties: -- reset-gpios: One GPIO that control the RESET lines of all PHYs on that MDIO - bus. -- reset-delay-us: RESET pulse width in microseconds. - -A list of child nodes, one per device on the bus is expected. These -should follow the generic phy.txt, or a device specific binding document. - -The 'reset-delay-us' indicates the RESET signal pulse width in microseconds and -applies to all PHY devices. It must therefore be appropriately determined based -on all PHY requirements (maximum value of all per-PHY RESET pulse widths). - -Example : -This example shows these optional properties, plus other properties -required for the TI Davinci MDIO driver. - - davinci_mdio: ethernet@5c030000 { - compatible = "ti,davinci_mdio"; - reg = <0x5c030000 0x1000>; - #address-cells = <1>; - #size-cells = <0>; - - reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; - reset-delay-us = <2>; - - ethphy0: ethernet-phy@1 { - reg = <1>; - }; - - ethphy1: ethernet-phy@3 { - reg = <3>; - }; - }; +This file has moved to mdio.yaml. diff --git a/Documentation/devicetree/bindings/net/mdio.yaml b/Documentation/devicetree/bindings/net/mdio.yaml new file mode 100644 index 000000000000..b8fa8251c4bc --- /dev/null +++ b/Documentation/devicetree/bindings/net/mdio.yaml @@ -0,0 +1,51 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/mdio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: MDIO Bus Generic Binding + +maintainers: + - Andrew Lunn <andrew@lunn.ch> + - Florian Fainelli <f.fainelli@gmail.com> + - Heiner Kallweit <hkallweit1@gmail.com> + +description: + These are generic properties that can apply to any MDIO bus. Any + MDIO bus must have a list of child nodes, one per device on the + bus. These should follow the generic ethernet-phy.yaml document, or + a device specific binding document. + +properties: + reset-gpios: + maxItems: 1 + description: + The phandle and specifier for the GPIO that controls the RESET + lines of all PHYs on that MDIO bus. + + reset-delay-us: + description: + RESET pulse width in microseconds. It applies to all PHY devices + and must therefore be appropriately determined based on all PHY + requirements (maximum value of all per-PHY RESET pulse widths). + +examples: + - | + davinci_mdio: mdio@5c030000 { + compatible = "ti,davinci_mdio"; + reg = <0x5c030000 0x1000>; + #address-cells = <1>; + #size-cells = <0>; + + reset-gpios = <&gpio2 5 1>; + reset-delay-us = <2>; + + ethphy0: ethernet-phy@1 { + reg = <1>; + }; + + ethphy1: ethernet-phy@3 { + reg = <3>; + }; + };
The MDIO buses have a number of available device tree properties that can be used in their device tree node. Add a YAML schemas for those. Suggested-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> --- Documentation/devicetree/bindings/net/mdio.txt | 38 +------------- Documentation/devicetree/bindings/net/mdio.yaml | 51 ++++++++++++++++++- 2 files changed, 52 insertions(+), 37 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/mdio.yaml