Subject: Re: [PATCH v2] dt-bindings: net: xilinx_gmii2rgmii: Convert to json schema

From: Rob Herring <[email-masked]>
Date: Wed, 19 Jul 2023 12:22:06 -0600

On Wed, Jul 19, 2023 at 12:18:08AM -0600, Pranavi Somisetty wrote:
> Convert the Xilinx GMII to RGMII Converter device tree binding
> documentation to json schema.
> This converter is usually used as gem <---> gmii2rgmii <---> external phy
> and, it's phy-handle should point to the phandle of the external phy.
> 
> Signed-off-by: Pranavi Somisetty <[email-masked]>
> ---
> Changes v2:
> 1. Changed description for the property "reg".
> 2. Added a reference to the description of "phy-handle" property.
> ---
>  .../bindings/net/xilinx_gmii2rgmii.txt        | 35 ------------
>  .../bindings/net/xlnx,gmii-to-rgmii.yaml      | 54 +++++++++++++++++++
>  2 files changed, 54 insertions(+), 35 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/net/xilinx_gmii2rgmii.txt
>  create mode 100644 Documentation/devicetree/bindings/net/xlnx,gmii-to-rgmii.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/xilinx_gmii2rgmii.txt b/Documentation/devicetree/bindings/net/xilinx_gmii2rgmii.txt
> deleted file mode 100644
> index 038dda48b8e6..000000000000
> --- a/Documentation/devicetree/bindings/net/xilinx_gmii2rgmii.txt
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -XILINX GMIITORGMII Converter Driver Device Tree Bindings
> ---------------------------------------------------------
> -
> -The Gigabit Media Independent Interface (GMII) to Reduced Gigabit Media
> -Independent Interface (RGMII) core provides the RGMII between RGMII-compliant
> -Ethernet physical media devices (PHY) and the Gigabit Ethernet controller.
> -This core can be used in all three modes of operation(10/100/1000 Mb/s).
> -The Management Data Input/Output (MDIO) interface is used to configure the
> -Speed of operation. This core can switch dynamically between the three
> -Different speed modes by configuring the conveter register through mdio write.
> -
> -This converter sits between the ethernet MAC and the external phy.
> -MAC <==> GMII2RGMII <==> RGMII_PHY
> -
> -For more details about mdio please refer phy.txt file in the same directory.
> -
> -Required properties:
> -- compatible	: Should be "xlnx,gmii-to-rgmii-1.0"
> -- reg		: The ID number for the phy, usually a small integer
> -- phy-handle	: Should point to the external phy device.
> -		  See ethernet.txt file in the same directory.
> -
> -Example:
> -	mdio {
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -		phy: ethernet-phy@0 {
> -			......
> -		};
> -		gmiitorgmii: gmiitorgmii@8 {
> -			compatible = "xlnx,gmii-to-rgmii-1.0";
> -			reg = <8>;
> -			phy-handle = <&phy>;
> -		};
> -	};
> diff --git a/Documentation/devicetree/bindings/net/xlnx,gmii-to-rgmii.yaml b/Documentation/devicetree/bindings/net/xlnx,gmii-to-rgmii.yaml
> new file mode 100644
> index 000000000000..9d22382a64ba
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/xlnx,gmii-to-rgmii.yaml
> @@ -0,0 +1,54 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/xlnx,gmii-to-rgmii.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Xilinx GMII to RGMII Converter
> +
> +maintainers:
> +  - Harini Katakam <[email-masked]>
> +
> +description:
> +  The Gigabit Media Independent Interface (GMII) to Reduced Gigabit Media
> +  Independent Interface (RGMII) core provides the RGMII between RGMII-compliant
> +  ethernet physical media devices (PHY) and the Gigabit Ethernet controller.
> +  This core can be used in all three modes of operation(10/100/1000 Mb/s).
> +  The Management Data Input/Output (MDIO) interface is used to configure the
> +  speed of operation. This core can switch dynamically between the three
> +  different speed modes by configuring the converter register through mdio write.
> +  The core cannot function without an external phy connected to it.
> +
> +properties:
> +  compatible:
> +    const: xlnx,gmii-to-rgmii-1.0
> +
> +  reg:
> +    minimum: 0
> +    maximum: 31
> +    description: The ID number for the phy.
> +
> +  phy-handle:
> +    $ref: ethernet-controller.yaml#/properties/phy-handle

Don't reference individual properties like this. Instead add a $ref at 
the top level to just "ethernet-controller.yaml#". Since this is the 
only property you want from there, put a 'phy-handle: true' here and use 
additionalProperties instead of unevaluatedProperties below.

> +
> +required:
> +  - compatible
> +  - reg
> +  - phy-handle
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    mdio {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +        phy: ethernet-phy@0 {
> +            reg = <0>;
> +        };
> +        gmiitorgmii@8 {
> +            compatible = "xlnx,gmii-to-rgmii-1.0";
> +            reg = <8>;
> +            phy-handle = <&phy>;
> +        };
> +    };
> -- 
> 2.36.1
>