Subject: Re: [PATCH v3] dt-bindings: net: Convert mdio-gpio to yaml

From: Rob Herring <[email-masked]>
Date: Fri, 30 Apr 2021 16:53:25 -0500

On Fri, Apr 30, 2021 at 06:29:41PM +0000, Corentin Labbe wrote:
> Converts net/mdio-gpio.txt to yaml
> 
> Reviewed-by: Andrew Lunn <[email-masked]>
> Signed-off-by: Corentin Labbe <[email-masked]>
> ---
> Changes since v1:
> - fixes yamllint warning about indent
> - added maxItems 3
> 
> Changes since v2:
> - fixed example (gpios need 2 entries)
> 
>  .../devicetree/bindings/net/mdio-gpio.txt     | 27 ---------
>  .../devicetree/bindings/net/mdio-gpio.yaml    | 57 +++++++++++++++++++
>  2 files changed, 57 insertions(+), 27 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/net/mdio-gpio.txt
>  create mode 100644 Documentation/devicetree/bindings/net/mdio-gpio.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/mdio-gpio.txt b/Documentation/devicetree/bindings/net/mdio-gpio.txt
> deleted file mode 100644
> index 4d91a36c5cf5..000000000000
> --- a/Documentation/devicetree/bindings/net/mdio-gpio.txt
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -MDIO on GPIOs
> -
> -Currently defined compatibles:
> -- virtual,gpio-mdio
> -- microchip,mdio-smi0
> -
> -MDC and MDIO lines connected to GPIO controllers are listed in the
> -gpios property as described in section VIII.1 in the following order:
> -
> -MDC, MDIO.
> -
> -Note: Each gpio-mdio bus should have an alias correctly numbered in "aliases"
> -node.
> -
> -Example:
> -
> -aliases {
> -	mdio-gpio0 = &mdio0;
> -};
> -
> -mdio0: mdio {
> -	compatible = "virtual,mdio-gpio";
> -	#address-cells = <1>;
> -	#size-cells = <0>;
> -	gpios = <&qe_pio_a 11
> -		 &qe_pio_c 6>;
> -};
> diff --git a/Documentation/devicetree/bindings/net/mdio-gpio.yaml b/Documentation/devicetree/bindings/net/mdio-gpio.yaml
> new file mode 100644
> index 000000000000..183cf248d597
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/mdio-gpio.yaml
> @@ -0,0 +1,57 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/mdio-gpio.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MDIO on GPIOs
> +
> +maintainers:
> +  - Andrew Lunn <[email-masked]>
> +  - Florian Fainelli <[email-masked]>
> +  - Heiner Kallweit <[email-masked]>
> +
> +allOf:
> +  - $ref: "mdio.yaml#"
> +
> +properties:
> +  compatible:
> +    enum:
> +      - virtual,mdio-gpio
> +      - microchip,mdio-smi0
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 0
> +
> +  gpios:
> +    minItems: 2
> +    maxItems: 3
> +    description: |
> +      MDC and MDIO lines connected to GPIO controllers are listed in
> +      the gpios property as described in section VIII.1 in the
> +      following order: MDC, MDIO.

section VIII.1 of what? Might be in DT spec, but if so the section is 
different for sure.

What's the order with 3 lines? In any case, define the order with 
schema:

minItems:
items:
  - description: MDC signal
  - description: MDIO or ?? signal
  - description: ?? signal

> +
> +#Note: Each gpio-mdio bus should have an alias correctly numbered in "aliases"
> +#node.
> +unevaluatedProperties: false

additionalProperties:
  type: object

To say anything else has to be a child node.

> +
> +examples:
> +  - |
> +    aliases {
> +        mdio-gpio0 = &mdio0;
> +    };
> +
> +    mdio0: mdio {
> +      compatible = "virtual,mdio-gpio";
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +      gpios = <&qe_pio_a 11>,
> +              <&qe_pio_c 6>;
> +      ethphy0: ethernet-phy@0 {
> +        reg = <0>;
> +      };
> +    };
> +...
> -- 
> 2.26.3
>