devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
@ 2024-06-26 16:23 Frank Li
  2024-06-26 17:55 ` Rob Herring (Arm)
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Frank Li @ 2024-06-26 16:23 UTC (permalink / raw)
  To: krzk
  Cc: Frank.Li, conor+dt, davem, devicetree, edumazet, imx, krzk+dt,
	kuba, linux-kernel, netdev, pabeni, robh

Convert enetc device binding file to yaml. Split to 3 yaml files,
'fsl,enetc.yaml', 'fsl,enetc-mdio.yaml', 'fsl,enetc-ierb.yaml'.

Additional Changes:
- Add pci<vendor id>,<production id> in compatible string.
- Ref to common ethernet-controller.yaml and mdio.yaml.
- Remove fixed-link part.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Change from v1 to v2
- renamee file as fsl,enetc-mdio.yaml, fsl,enetc-ierb.yaml, fsl,enetc.yaml
- example include pcie node
---
 .../bindings/net/fsl,enetc-ierb.yaml          |  35 ++++++
 .../bindings/net/fsl,enetc-mdio.yaml          |  53 ++++++++
 .../devicetree/bindings/net/fsl,enetc.yaml    |  50 ++++++++
 .../devicetree/bindings/net/fsl-enetc.txt     | 119 ------------------
 4 files changed, 138 insertions(+), 119 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
 create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
 create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc.yaml
 delete mode 100644 Documentation/devicetree/bindings/net/fsl-enetc.txt

diff --git a/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml b/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
new file mode 100644
index 0000000000000..ce88d7ce07a5e
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
@@ -0,0 +1,35 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/fsl,enetc-ierb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Integrated Endpoint Register Block
+
+description:
+  The fsl_enetc driver can probe on the Integrated Endpoint Register
+  Block, which preconfigures the FIFO limits for the ENETC ports.
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - fsl,ls1028a-enetc-ierb
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    ierb@1f0800000 {
+        compatible = "fsl,ls1028a-enetc-ierb";
+        reg = <0xf0800000 0x10000>;
+    };
diff --git a/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
new file mode 100644
index 0000000000000..60740ea56cb08
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/fsl,enetc-mdio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ENETC the central MDIO PCIe endpoint device
+
+description:
+  In this case, the mdio node should be defined as another PCIe
+  endpoint node, at the same level with the ENETC port nodes
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - pci1957,ee01
+      - const: fsl,enetc-mdio
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: mdio.yaml
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    pcie@1f0000000 {
+        compatible = "pci-host-ecam-generic";
+        reg = <0x01 0xf0000000 0x0 0x100000>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        mdio@0,3 {
+            compatible = "pci1957,ee01", "fsl,enetc-mdio";
+            reg = <0x000300 0 0 0 0>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ethernet-phy@2 {
+                reg = <0x2>;
+            };
+        };
+    };
diff --git a/Documentation/devicetree/bindings/net/fsl,enetc.yaml b/Documentation/devicetree/bindings/net/fsl,enetc.yaml
new file mode 100644
index 0000000000000..843c27e357f2d
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/fsl,enetc.yaml
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/fsl,enetc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ENETC ethernet
+
+description:
+  Depending on board design and ENETC port type (internal or
+  external) there are two supported link modes specified by
+  below device tree bindings.
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - pci1957,e100
+      - const: fsl,enetc
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: ethernet-controller.yaml
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    pcie@1f0000000 {
+        compatible = "pci-host-ecam-generic";
+        reg = <0x01 0xf0000000 0x0 0x100000>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        ethernet@0,0 {
+            compatible = "pci1957,e100", "fsl,enetc";
+            reg = <0x000000 0 0 0 0>;
+            phy-handle = <&sgmii_phy0>;
+            phy-connection-type = "sgmii";
+        };
+    };
diff --git a/Documentation/devicetree/bindings/net/fsl-enetc.txt b/Documentation/devicetree/bindings/net/fsl-enetc.txt
deleted file mode 100644
index 9b9a3f197e2d3..0000000000000
--- a/Documentation/devicetree/bindings/net/fsl-enetc.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-* ENETC ethernet device tree bindings
-
-Depending on board design and ENETC port type (internal or
-external) there are two supported link modes specified by
-below device tree bindings.
-
-Required properties:
-
-- reg		: Specifies PCIe Device Number and Function
-		  Number of the ENETC endpoint device, according
-		  to parent node bindings.
-- compatible	: Should be "fsl,enetc".
-
-1. The ENETC external port is connected to a MDIO configurable phy
-
-1.1. Using the local ENETC Port MDIO interface
-
-In this case, the ENETC node should include a "mdio" sub-node
-that in turn should contain the "ethernet-phy" node describing the
-external phy.  Below properties are required, their bindings
-already defined in Documentation/devicetree/bindings/net/ethernet.txt or
-Documentation/devicetree/bindings/net/phy.txt.
-
-Required:
-
-- phy-handle		: Phandle to a PHY on the MDIO bus.
-			  Defined in ethernet.txt.
-
-- phy-connection-type	: Defined in ethernet.txt.
-
-- mdio			: "mdio" node, defined in mdio.txt.
-
-- ethernet-phy		: "ethernet-phy" node, defined in phy.txt.
-
-Example:
-
-	ethernet@0,0 {
-		compatible = "fsl,enetc";
-		reg = <0x000000 0 0 0 0>;
-		phy-handle = <&sgmii_phy0>;
-		phy-connection-type = "sgmii";
-
-		mdio {
-			#address-cells = <1>;
-			#size-cells = <0>;
-			sgmii_phy0: ethernet-phy@2 {
-				reg = <0x2>;
-			};
-		};
-	};
-
-1.2. Using the central MDIO PCIe endpoint device
-
-In this case, the mdio node should be defined as another PCIe
-endpoint node, at the same level with the ENETC port nodes.
-
-Required properties:
-
-- reg		: Specifies PCIe Device Number and Function
-		  Number of the ENETC endpoint device, according
-		  to parent node bindings.
-- compatible	: Should be "fsl,enetc-mdio".
-
-The remaining required mdio bus properties are standard, their bindings
-already defined in Documentation/devicetree/bindings/net/mdio.txt.
-
-Example:
-
-	ethernet@0,0 {
-		compatible = "fsl,enetc";
-		reg = <0x000000 0 0 0 0>;
-		phy-handle = <&sgmii_phy0>;
-		phy-connection-type = "sgmii";
-	};
-
-	mdio@0,3 {
-		compatible = "fsl,enetc-mdio";
-		reg = <0x000300 0 0 0 0>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-		sgmii_phy0: ethernet-phy@2 {
-			reg = <0x2>;
-		};
-	};
-
-2. The ENETC port is an internal port or has a fixed-link external
-connection
-
-In this case, the ENETC port node defines a fixed link connection,
-as specified by Documentation/devicetree/bindings/net/fixed-link.txt.
-
-Required:
-
-- fixed-link	: "fixed-link" node, defined in "fixed-link.txt".
-
-Example:
-	ethernet@0,2 {
-		compatible = "fsl,enetc";
-		reg = <0x000200 0 0 0 0>;
-		fixed-link {
-			speed = <1000>;
-			full-duplex;
-		};
-	};
-
-* Integrated Endpoint Register Block bindings
-
-Optionally, the fsl_enetc driver can probe on the Integrated Endpoint Register
-Block, which preconfigures the FIFO limits for the ENETC ports. This is a node
-with the following properties:
-
-- reg		: Specifies the address in the SoC memory space.
-- compatible	: Must be "fsl,ls1028a-enetc-ierb".
-
-Example:
-	ierb@1f0800000 {
-		compatible = "fsl,ls1028a-enetc-ierb";
-		reg = <0x01 0xf0800000 0x0 0x10000>;
-	};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
  2024-06-26 16:23 [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml Frank Li
@ 2024-06-26 17:55 ` Rob Herring (Arm)
  2024-06-26 18:38 ` Fabio Estevam
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Rob Herring (Arm) @ 2024-06-26 17:55 UTC (permalink / raw)
  To: Frank Li
  Cc: imx, pabeni, krzk, krzk+dt, kuba, edumazet, linux-kernel, netdev,
	conor+dt, devicetree, davem


On Wed, 26 Jun 2024 12:23:07 -0400, Frank Li wrote:
> Convert enetc device binding file to yaml. Split to 3 yaml files,
> 'fsl,enetc.yaml', 'fsl,enetc-mdio.yaml', 'fsl,enetc-ierb.yaml'.
> 
> Additional Changes:
> - Add pci<vendor id>,<production id> in compatible string.
> - Ref to common ethernet-controller.yaml and mdio.yaml.
> - Remove fixed-link part.
> 
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
> Change from v1 to v2
> - renamee file as fsl,enetc-mdio.yaml, fsl,enetc-ierb.yaml, fsl,enetc.yaml
> - example include pcie node
> ---
>  .../bindings/net/fsl,enetc-ierb.yaml          |  35 ++++++
>  .../bindings/net/fsl,enetc-mdio.yaml          |  53 ++++++++
>  .../devicetree/bindings/net/fsl,enetc.yaml    |  50 ++++++++
>  .../devicetree/bindings/net/fsl-enetc.txt     | 119 ------------------
>  4 files changed, 138 insertions(+), 119 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
>  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
>  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc.yaml
>  delete mode 100644 Documentation/devicetree/bindings/net/fsl-enetc.txt
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc-mdio.example.dtb: pcie@1f0000000: 'ranges' is a required property
	from schema $id: http://devicetree.org/schemas/pci/host-generic-pci.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc-mdio.example.dtb: pcie@1f0000000: 'device_type' is a required property
	from schema $id: http://devicetree.org/schemas/pci/host-generic-pci.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc-mdio.example.dtb: pcie@1f0000000: 'ranges' is a required property
	from schema $id: http://devicetree.org/schemas/pci/host-generic-pci.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc-mdio.example.dtb: pcie@1f0000000: reg: [[1, 4026531840], [0, 1048576]] is too long
	from schema $id: http://devicetree.org/schemas/pci/host-generic-pci.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc-mdio.example.dtb: pcie@1f0000000: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'mdio@0,3' were unexpected)
	from schema $id: http://devicetree.org/schemas/pci/host-generic-pci.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc-mdio.example.dtb: pcie@1f0000000: 'device_type' is a required property
	from schema $id: http://devicetree.org/schemas/pci/pci-bus-common.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc-mdio.example.dtb: pcie@1f0000000: 'ranges' is a required property
	from schema $id: http://devicetree.org/schemas/pci/pci-bus-common.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc.example.dtb: pcie@1f0000000: 'ranges' is a required property
	from schema $id: http://devicetree.org/schemas/pci/host-generic-pci.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc.example.dtb: pcie@1f0000000: 'device_type' is a required property
	from schema $id: http://devicetree.org/schemas/pci/host-generic-pci.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc.example.dtb: pcie@1f0000000: 'ranges' is a required property
	from schema $id: http://devicetree.org/schemas/pci/host-generic-pci.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc.example.dtb: pcie@1f0000000: reg: [[1, 4026531840], [0, 1048576]] is too long
	from schema $id: http://devicetree.org/schemas/pci/host-generic-pci.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc.example.dtb: pcie@1f0000000: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'ethernet@0,0' were unexpected)
	from schema $id: http://devicetree.org/schemas/pci/host-generic-pci.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc.example.dtb: pcie@1f0000000: 'device_type' is a required property
	from schema $id: http://devicetree.org/schemas/pci/pci-bus-common.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/fsl,enetc.example.dtb: pcie@1f0000000: 'ranges' is a required property
	from schema $id: http://devicetree.org/schemas/pci/pci-bus-common.yaml#

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240626162307.1748759-1-Frank.Li@nxp.com

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
  2024-06-26 16:23 [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml Frank Li
  2024-06-26 17:55 ` Rob Herring (Arm)
@ 2024-06-26 18:38 ` Fabio Estevam
  2024-06-27 15:44   ` Rob Herring
  2024-06-27 15:55 ` Rob Herring
  2024-07-08 10:07 ` Wei Fang
  3 siblings, 1 reply; 10+ messages in thread
From: Fabio Estevam @ 2024-06-26 18:38 UTC (permalink / raw)
  To: Frank Li
  Cc: krzk, conor+dt, davem, devicetree, edumazet, imx, krzk+dt, kuba,
	linux-kernel, netdev, pabeni, robh

On Wed, Jun 26, 2024 at 1:25 PM Frank Li <Frank.Li@nxp.com> wrote:

> +examples:
> +  - |
> +    ierb@1f0800000 {

Node names should be generic.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
  2024-06-26 18:38 ` Fabio Estevam
@ 2024-06-27 15:44   ` Rob Herring
  0 siblings, 0 replies; 10+ messages in thread
From: Rob Herring @ 2024-06-27 15:44 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Frank Li, krzk, conor+dt, davem, devicetree, edumazet, imx,
	krzk+dt, kuba, linux-kernel, netdev, pabeni

On Wed, Jun 26, 2024 at 03:38:48PM -0300, Fabio Estevam wrote:
> On Wed, Jun 26, 2024 at 1:25 PM Frank Li <Frank.Li@nxp.com> wrote:
> 
> > +examples:
> > +  - |
> > +    ierb@1f0800000 {
> 
> Node names should be generic.

Yes, but what would that be for this block? Unless we have (or add) a 
documented name, then it doesn't matter too much.

Rob

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
  2024-06-26 16:23 [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml Frank Li
  2024-06-26 17:55 ` Rob Herring (Arm)
  2024-06-26 18:38 ` Fabio Estevam
@ 2024-06-27 15:55 ` Rob Herring
  2024-07-01 22:04   ` Frank Li
  2024-07-08 10:07 ` Wei Fang
  3 siblings, 1 reply; 10+ messages in thread
From: Rob Herring @ 2024-06-27 15:55 UTC (permalink / raw)
  To: Frank Li
  Cc: krzk, conor+dt, davem, devicetree, edumazet, imx, krzk+dt, kuba,
	linux-kernel, netdev, pabeni

On Wed, Jun 26, 2024 at 12:23:07PM -0400, Frank Li wrote:
> Convert enetc device binding file to yaml. Split to 3 yaml files,
> 'fsl,enetc.yaml', 'fsl,enetc-mdio.yaml', 'fsl,enetc-ierb.yaml'.
> 
> Additional Changes:
> - Add pci<vendor id>,<production id> in compatible string.
> - Ref to common ethernet-controller.yaml and mdio.yaml.
> - Remove fixed-link part.
> 
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
> Change from v1 to v2
> - renamee file as fsl,enetc-mdio.yaml, fsl,enetc-ierb.yaml, fsl,enetc.yaml
> - example include pcie node
> ---
>  .../bindings/net/fsl,enetc-ierb.yaml          |  35 ++++++
>  .../bindings/net/fsl,enetc-mdio.yaml          |  53 ++++++++
>  .../devicetree/bindings/net/fsl,enetc.yaml    |  50 ++++++++
>  .../devicetree/bindings/net/fsl-enetc.txt     | 119 ------------------
>  4 files changed, 138 insertions(+), 119 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
>  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
>  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc.yaml
>  delete mode 100644 Documentation/devicetree/bindings/net/fsl-enetc.txt
> 
> diff --git a/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml b/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
> new file mode 100644
> index 0000000000000..ce88d7ce07a5e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
> @@ -0,0 +1,35 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/fsl,enetc-ierb.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Integrated Endpoint Register Block
> +
> +description:
> +  The fsl_enetc driver can probe on the Integrated Endpoint Register
> +  Block, which preconfigures the FIFO limits for the ENETC ports.

Wrap at 80 chars

> +
> +maintainers:
> +  - Frank Li <Frank.Li@nxp.com>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - fsl,ls1028a-enetc-ierb
> +
> +  reg:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    ierb@1f0800000 {

unit-address doesn't match

> +        compatible = "fsl,ls1028a-enetc-ierb";
> +        reg = <0xf0800000 0x10000>;
> +    };
> diff --git a/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> new file mode 100644
> index 0000000000000..60740ea56cb08
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> @@ -0,0 +1,53 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/fsl,enetc-mdio.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ENETC the central MDIO PCIe endpoint device
> +
> +description:
> +  In this case, the mdio node should be defined as another PCIe
> +  endpoint node, at the same level with the ENETC port nodes
> +
> +maintainers:
> +  - Frank Li <Frank.Li@nxp.com>.

stray '.'                         ^

> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - pci1957,ee01
> +      - const: fsl,enetc-mdio
> +
> +  reg:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +allOf:
> +  - $ref: mdio.yaml

As a PCI device, also needs pci-device.yaml.

> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    pcie@1f0000000 {
> +        compatible = "pci-host-ecam-generic";
> +        reg = <0x01 0xf0000000 0x0 0x100000>;

Drop compatible and reg. Just need the minimum to define a PCI bus node.

> +        #address-cells = <3>;
> +        #size-cells = <2>;
> +
> +        mdio@0,3 {
> +            compatible = "pci1957,ee01", "fsl,enetc-mdio";
> +            reg = <0x000300 0 0 0 0>;
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +
> +            ethernet-phy@2 {
> +                reg = <0x2>;
> +            };
> +        };
> +    };
> diff --git a/Documentation/devicetree/bindings/net/fsl,enetc.yaml b/Documentation/devicetree/bindings/net/fsl,enetc.yaml
> new file mode 100644
> index 0000000000000..843c27e357f2d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/fsl,enetc.yaml
> @@ -0,0 +1,50 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/fsl,enetc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ENETC ethernet
> +
> +description:
> +  Depending on board design and ENETC port type (internal or
> +  external) there are two supported link modes specified by
> +  below device tree bindings.
> +
> +maintainers:
> +  - Frank Li <Frank.Li@nxp.com>
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - pci1957,e100
> +      - const: fsl,enetc
> +
> +  reg:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +allOf:
> +  - $ref: ethernet-controller.yaml

As a PCI device, also needs pci-device.yaml.

> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    pcie@1f0000000 {
> +        compatible = "pci-host-ecam-generic";
> +        reg = <0x01 0xf0000000 0x0 0x100000>;
> +        #address-cells = <3>;
> +        #size-cells = <2>;
> +
> +        ethernet@0,0 {
> +            compatible = "pci1957,e100", "fsl,enetc";
> +            reg = <0x000000 0 0 0 0>;
> +            phy-handle = <&sgmii_phy0>;
> +            phy-connection-type = "sgmii";
> +        };
> +    };

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
  2024-06-27 15:55 ` Rob Herring
@ 2024-07-01 22:04   ` Frank Li
  2024-07-09 14:33     ` Rob Herring
  0 siblings, 1 reply; 10+ messages in thread
From: Frank Li @ 2024-07-01 22:04 UTC (permalink / raw)
  To: Rob Herring
  Cc: krzk, conor+dt, davem, devicetree, edumazet, imx, krzk+dt, kuba,
	linux-kernel, netdev, pabeni

On Thu, Jun 27, 2024 at 09:55:47AM -0600, Rob Herring wrote:
> On Wed, Jun 26, 2024 at 12:23:07PM -0400, Frank Li wrote:
> > Convert enetc device binding file to yaml. Split to 3 yaml files,
> > 'fsl,enetc.yaml', 'fsl,enetc-mdio.yaml', 'fsl,enetc-ierb.yaml'.
> > 
> > Additional Changes:
> > - Add pci<vendor id>,<production id> in compatible string.
> > - Ref to common ethernet-controller.yaml and mdio.yaml.
> > - Remove fixed-link part.
> > 
> > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > ---
> > Change from v1 to v2
> > - renamee file as fsl,enetc-mdio.yaml, fsl,enetc-ierb.yaml, fsl,enetc.yaml
> > - example include pcie node
> > ---
> >  .../bindings/net/fsl,enetc-ierb.yaml          |  35 ++++++
> >  .../bindings/net/fsl,enetc-mdio.yaml          |  53 ++++++++
> >  .../devicetree/bindings/net/fsl,enetc.yaml    |  50 ++++++++
> >  .../devicetree/bindings/net/fsl-enetc.txt     | 119 ------------------
> >  4 files changed, 138 insertions(+), 119 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
> >  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> >  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc.yaml
> >  delete mode 100644 Documentation/devicetree/bindings/net/fsl-enetc.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml b/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
> > new file mode 100644
> > index 0000000000000..ce88d7ce07a5e
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
> > @@ -0,0 +1,35 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/fsl,enetc-ierb.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Integrated Endpoint Register Block
> > +
> > +description:
> > +  The fsl_enetc driver can probe on the Integrated Endpoint Register
> > +  Block, which preconfigures the FIFO limits for the ENETC ports.
> 
> Wrap at 80 chars
> 
> > +
> > +maintainers:
> > +  - Frank Li <Frank.Li@nxp.com>
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - fsl,ls1028a-enetc-ierb
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    ierb@1f0800000 {
> 
> unit-address doesn't match
> 
> > +        compatible = "fsl,ls1028a-enetc-ierb";
> > +        reg = <0xf0800000 0x10000>;
> > +    };
> > diff --git a/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> > new file mode 100644
> > index 0000000000000..60740ea56cb08
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> > @@ -0,0 +1,53 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/fsl,enetc-mdio.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: ENETC the central MDIO PCIe endpoint device
> > +
> > +description:
> > +  In this case, the mdio node should be defined as another PCIe
> > +  endpoint node, at the same level with the ENETC port nodes
> > +
> > +maintainers:
> > +  - Frank Li <Frank.Li@nxp.com>.
> 
> stray '.'                         ^
> 
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - enum:
> > +          - pci1957,ee01
> > +      - const: fsl,enetc-mdio
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +
> > +allOf:
> > +  - $ref: mdio.yaml
> 
> As a PCI device, also needs pci-device.yaml.

After I add pci-devices.yaml, I get
Documentation/devicetree/bindings/net/fsl,enetc.example.dtb: ethernet@0,0: False schema does not allow {'compatible': ['pci1957,e100', 'fsl,enetc'], 'reg': [[0, 0, 0, 0, 0]], 'phy-handle': [[4294967295]], 'phy-connection-type': ['sgmii'], '$nodename': ['ethernet@0,0']}

It looks like match to two schemas, then report error. If I change enetc's
compatible string to other random string. No error report.

I am not sure how to fix this. I have not seen other schema use
pci-device.yaml yet.

Frank
> 
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > +  - |
> > +    pcie@1f0000000 {
> > +        compatible = "pci-host-ecam-generic";
> > +        reg = <0x01 0xf0000000 0x0 0x100000>;
> 
> Drop compatible and reg. Just need the minimum to define a PCI bus node.
> 
> > +        #address-cells = <3>;
> > +        #size-cells = <2>;
> > +
> > +        mdio@0,3 {
> > +            compatible = "pci1957,ee01", "fsl,enetc-mdio";
> > +            reg = <0x000300 0 0 0 0>;
> > +            #address-cells = <1>;
> > +            #size-cells = <0>;
> > +
> > +            ethernet-phy@2 {
> > +                reg = <0x2>;
> > +            };
> > +        };
> > +    };
> > diff --git a/Documentation/devicetree/bindings/net/fsl,enetc.yaml b/Documentation/devicetree/bindings/net/fsl,enetc.yaml
> > new file mode 100644
> > index 0000000000000..843c27e357f2d
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/fsl,enetc.yaml
> > @@ -0,0 +1,50 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/fsl,enetc.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: ENETC ethernet
> > +
> > +description:
> > +  Depending on board design and ENETC port type (internal or
> > +  external) there are two supported link modes specified by
> > +  below device tree bindings.
> > +
> > +maintainers:
> > +  - Frank Li <Frank.Li@nxp.com>
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - enum:
> > +          - pci1957,e100
> > +      - const: fsl,enetc
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +
> > +allOf:
> > +  - $ref: ethernet-controller.yaml
> 
> As a PCI device, also needs pci-device.yaml.
> 
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > +  - |
> > +    pcie@1f0000000 {
> > +        compatible = "pci-host-ecam-generic";
> > +        reg = <0x01 0xf0000000 0x0 0x100000>;
> > +        #address-cells = <3>;
> > +        #size-cells = <2>;
> > +
> > +        ethernet@0,0 {
> > +            compatible = "pci1957,e100", "fsl,enetc";
> > +            reg = <0x000000 0 0 0 0>;
> > +            phy-handle = <&sgmii_phy0>;
> > +            phy-connection-type = "sgmii";
> > +        };
> > +    };

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
  2024-06-26 16:23 [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml Frank Li
                   ` (2 preceding siblings ...)
  2024-06-27 15:55 ` Rob Herring
@ 2024-07-08 10:07 ` Wei Fang
  2024-07-09 14:10   ` Rob Herring
  3 siblings, 1 reply; 10+ messages in thread
From: Wei Fang @ 2024-07-08 10:07 UTC (permalink / raw)
  To: Frank Li, krzk@kernel.org
  Cc: Frank Li, conor+dt@kernel.org, davem@davemloft.net,
	devicetree@vger.kernel.org, edumazet@google.com,
	imx@lists.linux.dev, krzk+dt@kernel.org, kuba@kernel.org,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	pabeni@redhat.com, robh@kernel.org, Vladimir Oltean,
	Claudiu Manoil, Clark Wang

> -----Original Message-----
> From: Frank Li <Frank.Li@nxp.com>
> Sent: 2024年6月27日 0:23
> To: krzk@kernel.org
> Cc: Frank Li <frank.li@nxp.com>; conor+dt@kernel.org;
> davem@davemloft.net; devicetree@vger.kernel.org; edumazet@google.com;
> imx@lists.linux.dev; krzk+dt@kernel.org; kuba@kernel.org;
> linux-kernel@vger.kernel.org; netdev@vger.kernel.org; pabeni@redhat.com;
> robh@kernel.org
> Subject: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
> 
> Convert enetc device binding file to yaml. Split to 3 yaml files, 'fsl,enetc.yaml',
> 'fsl,enetc-mdio.yaml', 'fsl,enetc-ierb.yaml'.
> 

Sorry I didn't see this patch until now, I was planning to make this conversion
but didn't realize you had started it first. It's very nice, thanks!

> Additional Changes:
> - Add pci<vendor id>,<production id> in compatible string.
> - Ref to common ethernet-controller.yaml and mdio.yaml.
> - Remove fixed-link part.
> 
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
> Change from v1 to v2
> - renamee file as fsl,enetc-mdio.yaml, fsl,enetc-ierb.yaml, fsl,enetc.yaml
> - example include pcie node
> ---
>  .../bindings/net/fsl,enetc-ierb.yaml          |  35 ++++++
>  .../bindings/net/fsl,enetc-mdio.yaml          |  53 ++++++++
>  .../devicetree/bindings/net/fsl,enetc.yaml    |  50 ++++++++
>  .../devicetree/bindings/net/fsl-enetc.txt     | 119 ------------------
>  4 files changed, 138 insertions(+), 119 deletions(-)  create mode 100644
> Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
>  create mode 100644
> Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
>  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc.yaml
>  delete mode 100644 Documentation/devicetree/bindings/net/fsl-enetc.txt
> 
> diff --git a/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> new file mode 100644
> index 0000000000000..60740ea56cb08
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml

I suggest changing the file name to nxp,netc-emdio.yaml. "fsl" is a very outdated
prefix. For new files, I think "nxp" is a better prefix.

> @@ -0,0 +1,53 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> +---
> +
> +title: ENETC the central MDIO PCIe endpoint device
external is better, that is why we call it EMDIO.

> +
> +description:
> +  In this case, the mdio node should be defined as another PCIe
> +  endpoint node, at the same level with the ENETC port nodes
> +
This my local description, excerpted from NETC's block guide, FYI.
description: |
  NETC provides an external master MDIO interface (EMDIO) for managing external
  devices (PHYs). EMDIO supports both Clause 22 and 45 protocols. And the EMDIO
  provides a means for different software modules to share a single set of MDIO
  signals to access their PHYs.

> +maintainers:
> +  - Frank Li <Frank.Li@nxp.com>.
Vladimir and Claudiu as the driver maintainer, it is best to add them
to this list

> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - pci1957,ee01
> +      - const: fsl,enetc-mdio

" fsl,enetc-mdio" is meaningless, we did not use it ever.
> +
> +  reg:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +allOf:
> +  - $ref: mdio.yaml
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    pcie@1f0000000 {
> +        compatible = "pci-host-ecam-generic";
> +        reg = <0x01 0xf0000000 0x0 0x100000>;
> +        #address-cells = <3>;
> +        #size-cells = <2>;
> +
> +        mdio@0,3 {
> +            compatible = "pci1957,ee01", "fsl,enetc-mdio";
> +            reg = <0x000300 0 0 0 0>;
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +
> +            ethernet-phy@2 {
> +                reg = <0x2>;
> +            };
> +        };
> +    };
> diff --git a/Documentation/devicetree/bindings/net/fsl,enetc.yaml
> b/Documentation/devicetree/bindings/net/fsl,enetc.yaml
> new file mode 100644
> index 0000000000000..843c27e357f2d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/fsl,enetc.yaml
Same as above, nxp,enetc.yaml or nxp,netc-enetc.yaml is better.

> @@ -0,0 +1,50 @@
> +title: ENETC ethernet
title: The NIC functionality of NXP NETC

> +
> +description:
> +  Depending on board design and ENETC port type (internal or
> +  external) there are two supported link modes specified by
> +  below device tree bindings.
description: |
  The NIC functionality in NETC is known as EtherNET Controller (ENETC). ENETC
  supports virtualization/isolation based on PCIe Single Root IO Virtualization
  (SR-IOV), advanced QoS with 8 traffic classes and 4 drop resilience levels,
  and a full range of TSN standards and NIC offload capabilities.

> +
> +maintainers:
> +  - Frank Li <Frank.Li@nxp.com>
Save as above.

> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - pci1957,e100
> +      - const: fsl,enetc
Should be removed.

> +
> +  reg:
> +    maxItems: 1
> +

This is an example I see in fsl-enetc.txt
ethernet@0,0 {
	compatible = "fsl,enetc";
	reg = <0x000000 0 0 0 0>;
	phy-handle = <&sgmii_phy0>;
	phy-connection-type = "sgmii";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;
		sgmii_phy0: ethernet-phy@2 {
			reg = <0x2>;
		};
	};
};
But here I don't see any description of the mdio child node.
I think you need to add it, just like below.
mdio:
    $ref: mdio.yaml#
    unevaluatedProperties: false
    description: |
      Optional child node for ENETC instance, otherwise use NETC EMDIO.

> +required:
> +  - compatible
> +  - reg
> +
> +allOf:
> +  - $ref: ethernet-controller.yaml
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    pcie@1f0000000 {
> +        compatible = "pci-host-ecam-generic";
> +        reg = <0x01 0xf0000000 0x0 0x100000>;
> +        #address-cells = <3>;
> +        #size-cells = <2>;
> +
> +        ethernet@0,0 {
> +            compatible = "pci1957,e100", "fsl,enetc";
> +            reg = <0x000000 0 0 0 0>;
> +            phy-handle = <&sgmii_phy0>;
> +            phy-connection-type = "sgmii";
> +        };
> +    };
> diff --git a/Documentation/devicetree/bindings/net/fsl-enetc.txt
> b/Documentation/devicetree/bindings/net/fsl-enetc.txt
> deleted file mode 100644
> index 9b9a3f197e2d3..0000000000000
> --- a/Documentation/devicetree/bindings/net/fsl-enetc.txt
> +++ /dev/null
> @@ -1,119 +0,0 @@
> -* ENETC ethernet device tree bindings
> -
> -Depending on board design and ENETC port type (internal or
> -external) there are two supported link modes specified by -below device tree
> bindings.
> -
> -Required properties:
> -
> -- reg		: Specifies PCIe Device Number and Function
> -		  Number of the ENETC endpoint device, according
> -		  to parent node bindings.
> -- compatible	: Should be "fsl,enetc".
> -
> -1. The ENETC external port is connected to a MDIO configurable phy
> -
> -1.1. Using the local ENETC Port MDIO interface
> -
> -In this case, the ENETC node should include a "mdio" sub-node -that in turn
> should contain the "ethernet-phy" node describing the -external phy.  Below
> properties are required, their bindings -already defined in
> Documentation/devicetree/bindings/net/ethernet.txt or
> -Documentation/devicetree/bindings/net/phy.txt.
> -
> -Required:
> -
> -- phy-handle		: Phandle to a PHY on the MDIO bus.
> -			  Defined in ethernet.txt.
> -
> -- phy-connection-type	: Defined in ethernet.txt.
> -
> -- mdio			: "mdio" node, defined in mdio.txt.
> -
> -- ethernet-phy		: "ethernet-phy" node, defined in phy.txt.
> -
> -Example:
> -
> -	ethernet@0,0 {
> -		compatible = "fsl,enetc";
> -		reg = <0x000000 0 0 0 0>;
> -		phy-handle = <&sgmii_phy0>;
> -		phy-connection-type = "sgmii";
> -
> -		mdio {
> -			#address-cells = <1>;
> -			#size-cells = <0>;
> -			sgmii_phy0: ethernet-phy@2 {
> -				reg = <0x2>;
> -			};
> -		};
> -	};
> -
> -1.2. Using the central MDIO PCIe endpoint device
> -
> -In this case, the mdio node should be defined as another PCIe -endpoint node,
> at the same level with the ENETC port nodes.
> -
> -Required properties:
> -
> -- reg		: Specifies PCIe Device Number and Function
> -		  Number of the ENETC endpoint device, according
> -		  to parent node bindings.
> -- compatible	: Should be "fsl,enetc-mdio".
> -
> -The remaining required mdio bus properties are standard, their bindings
> -already defined in Documentation/devicetree/bindings/net/mdio.txt.
> -
> -Example:
> -
> -	ethernet@0,0 {
> -		compatible = "fsl,enetc";
> -		reg = <0x000000 0 0 0 0>;
> -		phy-handle = <&sgmii_phy0>;
> -		phy-connection-type = "sgmii";
> -	};
> -
> -	mdio@0,3 {
> -		compatible = "fsl,enetc-mdio";
> -		reg = <0x000300 0 0 0 0>;
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -		sgmii_phy0: ethernet-phy@2 {
> -			reg = <0x2>;
> -		};
> -	};
> -
> -2. The ENETC port is an internal port or has a fixed-link external -connection
> -
> -In this case, the ENETC port node defines a fixed link connection, -as specified
> by Documentation/devicetree/bindings/net/fixed-link.txt.
> -
> -Required:
> -
> -- fixed-link	: "fixed-link" node, defined in "fixed-link.txt".
> -
> -Example:
> -	ethernet@0,2 {
> -		compatible = "fsl,enetc";
> -		reg = <0x000200 0 0 0 0>;
> -		fixed-link {
> -			speed = <1000>;
> -			full-duplex;
> -		};
> -	};
> -
> -* Integrated Endpoint Register Block bindings
> -
> -Optionally, the fsl_enetc driver can probe on the Integrated Endpoint Register
> -Block, which preconfigures the FIFO limits for the ENETC ports. This is a node
> -with the following properties:
> -
> -- reg		: Specifies the address in the SoC memory space.
> -- compatible	: Must be "fsl,ls1028a-enetc-ierb".
> -
> -Example:
> -	ierb@1f0800000 {
> -		compatible = "fsl,ls1028a-enetc-ierb";
> -		reg = <0x01 0xf0800000 0x0 0x10000>;
> -	};
> --
> 2.34.1
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
  2024-07-08 10:07 ` Wei Fang
@ 2024-07-09 14:10   ` Rob Herring
  2024-07-10  2:01     ` Wei Fang
  0 siblings, 1 reply; 10+ messages in thread
From: Rob Herring @ 2024-07-09 14:10 UTC (permalink / raw)
  To: Wei Fang
  Cc: Frank Li, krzk@kernel.org, conor+dt@kernel.org,
	davem@davemloft.net, devicetree@vger.kernel.org,
	edumazet@google.com, imx@lists.linux.dev, krzk+dt@kernel.org,
	kuba@kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, pabeni@redhat.com, Vladimir Oltean,
	Claudiu Manoil, Clark Wang

On Mon, Jul 8, 2024 at 4:07 AM Wei Fang <wei.fang@nxp.com> wrote:
>
> > -----Original Message-----
> > From: Frank Li <Frank.Li@nxp.com>
> > Sent: 2024年6月27日 0:23
> > To: krzk@kernel.org
> > Cc: Frank Li <frank.li@nxp.com>; conor+dt@kernel.org;
> > davem@davemloft.net; devicetree@vger.kernel.org; edumazet@google.com;
> > imx@lists.linux.dev; krzk+dt@kernel.org; kuba@kernel.org;
> > linux-kernel@vger.kernel.org; netdev@vger.kernel.org; pabeni@redhat.com;
> > robh@kernel.org
> > Subject: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
> >
> > Convert enetc device binding file to yaml. Split to 3 yaml files, 'fsl,enetc.yaml',
> > 'fsl,enetc-mdio.yaml', 'fsl,enetc-ierb.yaml'.
> >
>
> Sorry I didn't see this patch until now, I was planning to make this conversion
> but didn't realize you had started it first. It's very nice, thanks!
>
> > Additional Changes:
> > - Add pci<vendor id>,<production id> in compatible string.
> > - Ref to common ethernet-controller.yaml and mdio.yaml.
> > - Remove fixed-link part.
> >
> > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > ---
> > Change from v1 to v2
> > - renamee file as fsl,enetc-mdio.yaml, fsl,enetc-ierb.yaml, fsl,enetc.yaml
> > - example include pcie node
> > ---
> >  .../bindings/net/fsl,enetc-ierb.yaml          |  35 ++++++
> >  .../bindings/net/fsl,enetc-mdio.yaml          |  53 ++++++++
> >  .../devicetree/bindings/net/fsl,enetc.yaml    |  50 ++++++++
> >  .../devicetree/bindings/net/fsl-enetc.txt     | 119 ------------------
> >  4 files changed, 138 insertions(+), 119 deletions(-)  create mode 100644
> > Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
> >  create mode 100644
> > Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> >  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc.yaml
> >  delete mode 100644 Documentation/devicetree/bindings/net/fsl-enetc.txt
> >
> > diff --git a/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> > b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> > new file mode 100644
> > index 0000000000000..60740ea56cb08
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
>
> I suggest changing the file name to nxp,netc-emdio.yaml. "fsl" is a very outdated
> prefix. For new files, I think "nxp" is a better prefix.

Convention is filenames use the compatible string. So no.

> > @@ -0,0 +1,53 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> > +---
> > +
> > +title: ENETC the central MDIO PCIe endpoint device
> external is better, that is why we call it EMDIO.
>
> > +
> > +description:
> > +  In this case, the mdio node should be defined as another PCIe
> > +  endpoint node, at the same level with the ENETC port nodes
> > +
> This my local description, excerpted from NETC's block guide, FYI.
> description: |
>   NETC provides an external master MDIO interface (EMDIO) for managing external
>   devices (PHYs). EMDIO supports both Clause 22 and 45 protocols. And the EMDIO
>   provides a means for different software modules to share a single set of MDIO
>   signals to access their PHYs.
>
> > +maintainers:
> > +  - Frank Li <Frank.Li@nxp.com>.
> Vladimir and Claudiu as the driver maintainer, it is best to add them
> to this list
>
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - enum:
> > +          - pci1957,ee01
> > +      - const: fsl,enetc-mdio
>
> " fsl,enetc-mdio" is meaningless, we did not use it ever.

arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi:
 compatible = "pci1957,ee01", "fsl,enetc-mdio";

In fact, until I recently added the standard PCI compatibles, these
were the only compatible strings used.


Rob

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
  2024-07-01 22:04   ` Frank Li
@ 2024-07-09 14:33     ` Rob Herring
  0 siblings, 0 replies; 10+ messages in thread
From: Rob Herring @ 2024-07-09 14:33 UTC (permalink / raw)
  To: Frank Li
  Cc: krzk, conor+dt, davem, devicetree, edumazet, imx, krzk+dt, kuba,
	linux-kernel, netdev, pabeni

On Mon, Jul 1, 2024 at 4:04 PM Frank Li <Frank.li@nxp.com> wrote:
>
> On Thu, Jun 27, 2024 at 09:55:47AM -0600, Rob Herring wrote:
> > On Wed, Jun 26, 2024 at 12:23:07PM -0400, Frank Li wrote:
> > > Convert enetc device binding file to yaml. Split to 3 yaml files,
> > > 'fsl,enetc.yaml', 'fsl,enetc-mdio.yaml', 'fsl,enetc-ierb.yaml'.
> > >
> > > Additional Changes:
> > > - Add pci<vendor id>,<production id> in compatible string.
> > > - Ref to common ethernet-controller.yaml and mdio.yaml.
> > > - Remove fixed-link part.
> > >
> > > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > > ---
> > > Change from v1 to v2
> > > - renamee file as fsl,enetc-mdio.yaml, fsl,enetc-ierb.yaml, fsl,enetc.yaml
> > > - example include pcie node
> > > ---
> > >  .../bindings/net/fsl,enetc-ierb.yaml          |  35 ++++++
> > >  .../bindings/net/fsl,enetc-mdio.yaml          |  53 ++++++++
> > >  .../devicetree/bindings/net/fsl,enetc.yaml    |  50 ++++++++
> > >  .../devicetree/bindings/net/fsl-enetc.txt     | 119 ------------------
> > >  4 files changed, 138 insertions(+), 119 deletions(-)
> > >  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
> > >  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> > >  create mode 100644 Documentation/devicetree/bindings/net/fsl,enetc.yaml
> > >  delete mode 100644 Documentation/devicetree/bindings/net/fsl-enetc.txt
> > >
> > > diff --git a/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml b/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
> > > new file mode 100644
> > > index 0000000000000..ce88d7ce07a5e
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
> > > @@ -0,0 +1,35 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/net/fsl,enetc-ierb.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Integrated Endpoint Register Block
> > > +
> > > +description:
> > > +  The fsl_enetc driver can probe on the Integrated Endpoint Register
> > > +  Block, which preconfigures the FIFO limits for the ENETC ports.
> >
> > Wrap at 80 chars
> >
> > > +
> > > +maintainers:
> > > +  - Frank Li <Frank.Li@nxp.com>
> > > +
> > > +properties:
> > > +  compatible:
> > > +    enum:
> > > +      - fsl,ls1028a-enetc-ierb
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    ierb@1f0800000 {
> >
> > unit-address doesn't match
> >
> > > +        compatible = "fsl,ls1028a-enetc-ierb";
> > > +        reg = <0xf0800000 0x10000>;
> > > +    };
> > > diff --git a/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> > > new file mode 100644
> > > index 0000000000000..60740ea56cb08
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> > > @@ -0,0 +1,53 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/net/fsl,enetc-mdio.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: ENETC the central MDIO PCIe endpoint device
> > > +
> > > +description:
> > > +  In this case, the mdio node should be defined as another PCIe
> > > +  endpoint node, at the same level with the ENETC port nodes
> > > +
> > > +maintainers:
> > > +  - Frank Li <Frank.Li@nxp.com>.
> >
> > stray '.'                         ^
> >
> > > +
> > > +properties:
> > > +  compatible:
> > > +    items:
> > > +      - enum:
> > > +          - pci1957,ee01
> > > +      - const: fsl,enetc-mdio
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +
> > > +allOf:
> > > +  - $ref: mdio.yaml
> >
> > As a PCI device, also needs pci-device.yaml.
>
> After I add pci-devices.yaml, I get
> Documentation/devicetree/bindings/net/fsl,enetc.example.dtb: ethernet@0,0: False schema does not allow {'compatible': ['pci1957,e100', 'fsl,enetc'], 'reg': [[0, 0, 0, 0, 0]], 'phy-handle': [[4294967295]], 'phy-connection-type': ['sgmii'], '$nodename': ['ethernet@0,0']}

Perhaps use pci-device.yaml, not pci-devices.yaml which doesn't exist.
The latter gives me this error, the former works fine for me.

Rob

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
  2024-07-09 14:10   ` Rob Herring
@ 2024-07-10  2:01     ` Wei Fang
  0 siblings, 0 replies; 10+ messages in thread
From: Wei Fang @ 2024-07-10  2:01 UTC (permalink / raw)
  To: 'Rob Herring'
  Cc: Frank Li, krzk@kernel.org, conor+dt@kernel.org,
	davem@davemloft.net, devicetree@vger.kernel.org,
	edumazet@google.com, imx@lists.linux.dev, krzk+dt@kernel.org,
	kuba@kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, pabeni@redhat.com, Vladimir Oltean,
	Claudiu Manoil, Clark Wang

> -----Original Message-----
> From: Rob Herring <robh@kernel.org>
> Sent: 2024年7月9日 22:11
> To: Wei Fang <wei.fang@nxp.com>
> Cc: Frank Li <frank.li@nxp.com>; krzk@kernel.org; conor+dt@kernel.org;
> davem@davemloft.net; devicetree@vger.kernel.org; edumazet@google.com;
> imx@lists.linux.dev; krzk+dt@kernel.org; kuba@kernel.org;
> linux-kernel@vger.kernel.org; netdev@vger.kernel.org; pabeni@redhat.com;
> Vladimir Oltean <vladimir.oltean@nxp.com>; Claudiu Manoil
> <claudiu.manoil@nxp.com>; Clark Wang <xiaoning.wang@nxp.com>
> Subject: Re: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
> 
> On Mon, Jul 8, 2024 at 4:07 AM Wei Fang <wei.fang@nxp.com> wrote:
> >
> > > -----Original Message-----
> > > From: Frank Li <Frank.Li@nxp.com>
> > > Sent: 2024年6月27日 0:23
> > > To: krzk@kernel.org
> > > Cc: Frank Li <frank.li@nxp.com>; conor+dt@kernel.org;
> > > davem@davemloft.net; devicetree@vger.kernel.org;
> > > edumazet@google.com; imx@lists.linux.dev; krzk+dt@kernel.org;
> > > kuba@kernel.org; linux-kernel@vger.kernel.org;
> > > netdev@vger.kernel.org; pabeni@redhat.com; robh@kernel.org
> > > Subject: [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml
> > >
> > > Convert enetc device binding file to yaml. Split to 3 yaml files,
> > > 'fsl,enetc.yaml', 'fsl,enetc-mdio.yaml', 'fsl,enetc-ierb.yaml'.
> > >
> >
> > Sorry I didn't see this patch until now, I was planning to make this
> > conversion but didn't realize you had started it first. It's very nice, thanks!
> >
> > > Additional Changes:
> > > - Add pci<vendor id>,<production id> in compatible string.
> > > - Ref to common ethernet-controller.yaml and mdio.yaml.
> > > - Remove fixed-link part.
> > >
> > > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > > ---
> > > Change from v1 to v2
> > > - renamee file as fsl,enetc-mdio.yaml, fsl,enetc-ierb.yaml,
> > > fsl,enetc.yaml
> > > - example include pcie node
> > > ---
> > >  .../bindings/net/fsl,enetc-ierb.yaml          |  35 ++++++
> > >  .../bindings/net/fsl,enetc-mdio.yaml          |  53 ++++++++
> > >  .../devicetree/bindings/net/fsl,enetc.yaml    |  50 ++++++++
> > >  .../devicetree/bindings/net/fsl-enetc.txt     | 119 ------------------
> > >  4 files changed, 138 insertions(+), 119 deletions(-)  create mode
> > > 100644 Documentation/devicetree/bindings/net/fsl,enetc-ierb.yaml
> > >  create mode 100644
> > > Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> > >  create mode 100644
> > > Documentation/devicetree/bindings/net/fsl,enetc.yaml
> > >  delete mode 100644
> > > Documentation/devicetree/bindings/net/fsl-enetc.txt
> > >
> > > diff --git
> > > a/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> > > b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> > > new file mode 100644
> > > index 0000000000000..60740ea56cb08
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/net/fsl,enetc-mdio.yaml
> >
> > I suggest changing the file name to nxp,netc-emdio.yaml. "fsl" is a
> > very outdated prefix. For new files, I think "nxp" is a better prefix.
> 
> Convention is filenames use the compatible string. So no.
Actually, the "fsl,enetc-mdio" compatible is not used in the driver, I'm not
sure whether we should still keep it in the DTS, maybe we can remove it
from DTS first, or rename the compatible string, IMO, "fsl,enetc-mdio" is
not quiet right, this MDIO controller not only provide MDIO bus to ENETC,
but also to NETC switch.

> 
> > > @@ -0,0 +1,53 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> > > +---
> > > +
> > > +title: ENETC the central MDIO PCIe endpoint device
> > external is better, that is why we call it EMDIO.
> >
> > > +
> > > +description:
> > > +  In this case, the mdio node should be defined as another PCIe
> > > +  endpoint node, at the same level with the ENETC port nodes
> > > +
> > This my local description, excerpted from NETC's block guide, FYI.
> > description: |
> >   NETC provides an external master MDIO interface (EMDIO) for managing
> external
> >   devices (PHYs). EMDIO supports both Clause 22 and 45 protocols. And
> the EMDIO
> >   provides a means for different software modules to share a single set of
> MDIO
> >   signals to access their PHYs.
> >
> > > +maintainers:
> > > +  - Frank Li <Frank.Li@nxp.com>.
> > Vladimir and Claudiu as the driver maintainer, it is best to add them
> > to this list
> >
> > > +
> > > +properties:
> > > +  compatible:
> > > +    items:
> > > +      - enum:
> > > +          - pci1957,ee01
> > > +      - const: fsl,enetc-mdio
> >
> > " fsl,enetc-mdio" is meaningless, we did not use it ever.
> 
> arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi:
>  compatible = "pci1957,ee01", "fsl,enetc-mdio";
> 
> In fact, until I recently added the standard PCI compatibles, these were the
> only compatible strings used.
> 
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-07-10  2:02 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-26 16:23 [PATCH v2 1/1] dt-bindings: net: convert enetc to yaml Frank Li
2024-06-26 17:55 ` Rob Herring (Arm)
2024-06-26 18:38 ` Fabio Estevam
2024-06-27 15:44   ` Rob Herring
2024-06-27 15:55 ` Rob Herring
2024-07-01 22:04   ` Frank Li
2024-07-09 14:33     ` Rob Herring
2024-07-08 10:07 ` Wei Fang
2024-07-09 14:10   ` Rob Herring
2024-07-10  2:01     ` Wei Fang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).