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

Message ID 20230719061808.30967-1-pranavi.somisetty@amd.com
State New
Headers
Series [v2] dt-bindings: net: xilinx_gmii2rgmii: Convert to json schema |

Commit Message

Somisetty, Pranavi July 19, 2023, 6:18 a.m. UTC
  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 <pranavi.somisetty@amd.com>
---
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
  

Comments

Conor Dooley July 19, 2023, 4:36 p.m. UTC | #1
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 <pranavi.somisetty@amd.com>
> ---
> Changes v2:
> 1. Changed description for the property "reg".
> 2. Added a reference to the description of "phy-handle" property.

Seems fine to me, one /minor/ nit that I don't expect to be addressed.
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>

Thanks,
Conor.

> 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

> +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>;
> +        };

Ideally, add a blank line before child nodes.

> +    };
> -- 
> 2.36.1
>
  
Rob Herring July 19, 2023, 6:22 p.m. UTC | #2
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 <pranavi.somisetty@amd.com>
> ---
> 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 <harini.katakam@amd.com>
> +
> +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
>
  
Somisetty, Pranavi July 24, 2023, 1:16 p.m. UTC | #3
> -----Original Message-----
> From: Rob Herring <robh@kernel.org>
> Sent: Wednesday, July 19, 2023 11:52 PM
> To: Somisetty, Pranavi <pranavi.somisetty@amd.com>
> Cc: davem@davemloft.net; edumazet@google.com; kuba@kernel.org;
> krzysztof.kozlowski+dt@linaro.org; conor+dt@kernel.org; Simek, Michal
> <michal.simek@amd.com>; Katakam, Harini <harini.katakam@amd.com>;
> git (AMD-Xilinx) <git@amd.com>; Pandey, Radhey Shyam
> <radhey.shyam.pandey@amd.com>; netdev@vger.kernel.org; linux-
> kernel@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org
> Subject: Re: [PATCH v2] dt-bindings: net: xilinx_gmii2rgmii: Convert to json
> schema
> 
> 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 <pranavi.somisetty@amd.com>
> > ---
> > 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 <harini.katakam@amd.com>
> > +
> > +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.
>

Adding a top level $ref to ethernet-controller, implies, DT for gmii2rgmii, follows the schema in ethernet-controller.yaml. This is incorrect since gmii2rgmii IP isn't an ethernet controller.
I'm not sure how to reference ethernet-controller.yaml from this schema. Would it be okay to add a description to the phy-handle property instead of referencing the description in ethernet-controller.yaml?

Regards
Pranavi
> > +
> > +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
> >
  
Somisetty, Pranavi July 27, 2023, 7:51 a.m. UTC | #4
> -----Original Message-----
> From: Somisetty, Pranavi <pranavi.somisetty@amd.com>
> Sent: Monday, July 24, 2023 6:47 PM
> To: Rob Herring <robh@kernel.org>
> Cc: davem@davemloft.net; edumazet@google.com; kuba@kernel.org;
> krzysztof.kozlowski+dt@linaro.org; conor+dt@kernel.org; Simek, Michal
> <michal.simek@amd.com>; Katakam, Harini <harini.katakam@amd.com>;
> git (AMD-Xilinx) <git@amd.com>; Pandey, Radhey Shyam
> <radhey.shyam.pandey@amd.com>; netdev@vger.kernel.org; linux-
> kernel@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org
> Subject: RE: [PATCH v2] dt-bindings: net: xilinx_gmii2rgmii: Convert to json
> schema
> 
> 
> 
> > -----Original Message-----
> > From: Rob Herring <robh@kernel.org>
> > Sent: Wednesday, July 19, 2023 11:52 PM
> > To: Somisetty, Pranavi <pranavi.somisetty@amd.com>
> > Cc: davem@davemloft.net; edumazet@google.com; kuba@kernel.org;
> > krzysztof.kozlowski+dt@linaro.org; conor+dt@kernel.org; Simek, Michal
> > <michal.simek@amd.com>; Katakam, Harini <harini.katakam@amd.com>;
> git
> > (AMD-Xilinx) <git@amd.com>; Pandey, Radhey Shyam
> > <radhey.shyam.pandey@amd.com>; netdev@vger.kernel.org; linux-
> > kernel@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-
> > kernel@lists.infradead.org
> > Subject: Re: [PATCH v2] dt-bindings: net: xilinx_gmii2rgmii: Convert
> > to json schema
> >
<snip>

> > > +
> > > +  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.
> >
> 
> Adding a top level $ref to ethernet-controller, implies, DT for gmii2rgmii,
> follows the schema in ethernet-controller.yaml. This is incorrect since
> gmii2rgmii IP isn't an ethernet controller.
> I'm not sure how to reference ethernet-controller.yaml from this schema.
> Would it be okay to add a description to the phy-handle property instead of
> referencing the description in ethernet-controller.yaml?
> 
> Regards
> Pranavi

Just FYI, when I add a $ref pointing to ethernet-controller.yaml, this is the error I'm seeing: Documentation/devicetree/bindings/net/xlnx,gmii-to-rgmii.example.dtb: gmiitorgmii@8: $nodename:0: 'gmiitorgmii@8' does not match '^ethernet(@.*)?$'

Regards,
Pranavi
> > > +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
> > >
  

Patch

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 <harini.katakam@amd.com>
+
+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
+
+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>;
+        };
+    };