diff mbox series

[7/8] net: ethernet: ixp4xx: Add DT bindings

Message ID 20190524162229.9185-1-linus.walleij@linaro.org
State Changes Requested
Delegated to: David Miller
Headers show
Series None | expand

Commit Message

Linus Walleij May 24, 2019, 4:22 p.m. UTC
This adds device tree bindings for the IXP4xx ethernet.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 .../bindings/net/intel,ixp4xx-ethernet.yaml   | 53 +++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml

Comments

Rob Herring May 24, 2019, 7:41 p.m. UTC | #1
On Fri, May 24, 2019 at 11:22 AM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> This adds device tree bindings for the IXP4xx ethernet.
>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  .../bindings/net/intel,ixp4xx-ethernet.yaml   | 53 +++++++++++++++++++
>  1 file changed, 53 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
> new file mode 100644
> index 000000000000..4575a7e5aa4a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
> @@ -0,0 +1,53 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2018 Linaro Ltd.
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/net/intel-ixp4xx-ethernet.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Intel IXP4xx ethernet
> +
> +maintainers:
> +  - Linus Walleij <linus.walleij@linaro.org>
> +
> +description: |
> +  The Intel IXP4xx ethernet makes use of the IXP4xx NPE (Network
> +  Processing Engine) and the IXP4xx Queue Mangager to process
> +  the ethernet frames. It can optionally contain an MDIO bus to
> +  talk to PHYs.
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +        - const: intel,ixp4xx-ethernet

You can drop the oneOf and items.

> +
> +  reg:
> +    maxItems: 1
> +    description: Ethernet MMIO address range
> +
> +  queue-rx:
> +    $ref: '/schemas/types.yaml#/definitions/phandle-array'
> +    maxItems: 1

This doesn't actually do what you think it is doing. A $ref plus
additional constraints need to be under an 'allOf' list.

> +    description: phandle to the RX queue on the NPE

But this is a phandle plus 1 cell, right?

- allOf:
    - $ref: '/schemas/types.yaml#/definitions/phandle-array'
    - items:
        - items:
            - description: phandle to the RX queue on the NPE
            - description: whatever the cell contains
              enum: [ 1, 2, 3, 4 ] # any constraints you can put on the cell

This implicitly says you have 1 of a phandle + 1 cell.

I need to add this to example-schema.yaml...

> +
> +  queue-txready:
> +    $ref: '/schemas/types.yaml#/definitions/phandle-array'
> +    maxItems: 1
> +    description: phandle to the TX READY queue on the NPE
> +
> +required:
> +  - compatible
> +  - reg
> +  - queue-rx
> +  - queue-txready
> +
> +examples:
> +  - |
> +    ethernet@c8009000 {
> +        compatible = "intel,ixp4xx-ethernet";
> +        reg = <0xc8009000 0x1000>;
> +        status = "disabled";

Don't show status in examples.

> +        queue-rx = <&qmgr 3>;
> +        queue-txready = <&qmgr 20>;
> +    };
> --
> 2.20.1
>
Linus Walleij June 18, 2019, 7:44 p.m. UTC | #2
On Fri, May 24, 2019 at 9:41 PM Rob Herring <robh@kernel.org> wrote:

> > +  reg:
> > +    maxItems: 1
> > +    description: Ethernet MMIO address range
> > +
> > +  queue-rx:
> > +    $ref: '/schemas/types.yaml#/definitions/phandle-array'
> > +    maxItems: 1
>
> This doesn't actually do what you think it is doing. A $ref plus
> additional constraints need to be under an 'allOf' list.
>
> > +    description: phandle to the RX queue on the NPE
>
> But this is a phandle plus 1 cell, right?
>
> - allOf:
>     - $ref: '/schemas/types.yaml#/definitions/phandle-array'
>     - items:
>         - items:
>             - description: phandle to the RX queue on the NPE
>             - description: whatever the cell contains
>               enum: [ 1, 2, 3, 4 ] # any constraints you can put on the cell
>
> This implicitly says you have 1 of a phandle + 1 cell.
>
> I need to add this to example-schema.yaml...

I just can't get this right :(

I have this:

  queue-rx:
    - allOf:
      - $ref: '/schemas/types.yaml#/definitions/phandle-array'
      - items:
        - items:
          - description: phandle to the RX queue on the NPE
          - description: index of the NPE engine RX queue to use
            enum: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

I get this from dt_binding_check:

  CHKDT   Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml:
properties:queue-rx: [{'allOf': [{'$ref':
'/schemas/types.yaml#/definitions/phandle-array'}, {'items':
[{'items': [{'description': 'phandle to the RX queue on the NPE'},
{'description': 'index of the NPE engine RX queue to use', 'enum': [0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}]}]}]}] is not of type 'object',
'boolean'
make[3]: *** [../Documentation/devicetree/bindings/Makefile:12:
Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.example.dts]
Error 1

Hm .... I just can't figure out what this recursive parsing thingie means...
I tried to update the pip3 repo but no cigar.

Any hints?

Yours,
Linus Walleij
Rob Herring June 18, 2019, 8:22 p.m. UTC | #3
On Tue, Jun 18, 2019 at 1:44 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> On Fri, May 24, 2019 at 9:41 PM Rob Herring <robh@kernel.org> wrote:
>
> > > +  reg:
> > > +    maxItems: 1
> > > +    description: Ethernet MMIO address range
> > > +
> > > +  queue-rx:
> > > +    $ref: '/schemas/types.yaml#/definitions/phandle-array'
> > > +    maxItems: 1
> >
> > This doesn't actually do what you think it is doing. A $ref plus
> > additional constraints need to be under an 'allOf' list.
> >
> > > +    description: phandle to the RX queue on the NPE
> >
> > But this is a phandle plus 1 cell, right?
> >
> > - allOf:
> >     - $ref: '/schemas/types.yaml#/definitions/phandle-array'
> >     - items:
> >         - items:
> >             - description: phandle to the RX queue on the NPE
> >             - description: whatever the cell contains
> >               enum: [ 1, 2, 3, 4 ] # any constraints you can put on the cell
> >
> > This implicitly says you have 1 of a phandle + 1 cell.
> >
> > I need to add this to example-schema.yaml...
>
> I just can't get this right :(
>
> I have this:
>
>   queue-rx:
>     - allOf:

Properties take a schema/object/dict or boolean. You are making
queue-rx a list. Drop the '-'.

>       - $ref: '/schemas/types.yaml#/definitions/phandle-array'
>       - items:
>         - items:
>           - description: phandle to the RX queue on the NPE
>           - description: index of the NPE engine RX queue to use
>             enum: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
>
> I get this from dt_binding_check:
>
>   CHKDT   Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
> Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml:
> properties:queue-rx: [{'allOf': [{'$ref':
> '/schemas/types.yaml#/definitions/phandle-array'}, {'items':
> [{'items': [{'description': 'phandle to the RX queue on the NPE'},
> {'description': 'index of the NPE engine RX queue to use', 'enum': [0,
> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}]}]}]}] is not of type 'object',
> 'boolean'
> make[3]: *** [../Documentation/devicetree/bindings/Makefile:12:
> Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.example.dts]
> Error 1
>
> Hm .... I just can't figure out what this recursive parsing thingie means...
> I tried to update the pip3 repo but no cigar.

What do you mean pip didn't work?

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
new file mode 100644
index 000000000000..4575a7e5aa4a
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
@@ -0,0 +1,53 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2018 Linaro Ltd.
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/net/intel-ixp4xx-ethernet.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Intel IXP4xx ethernet
+
+maintainers:
+  - Linus Walleij <linus.walleij@linaro.org>
+
+description: |
+  The Intel IXP4xx ethernet makes use of the IXP4xx NPE (Network
+  Processing Engine) and the IXP4xx Queue Mangager to process
+  the ethernet frames. It can optionally contain an MDIO bus to
+  talk to PHYs.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+        - const: intel,ixp4xx-ethernet
+
+  reg:
+    maxItems: 1
+    description: Ethernet MMIO address range
+
+  queue-rx:
+    $ref: '/schemas/types.yaml#/definitions/phandle-array'
+    maxItems: 1
+    description: phandle to the RX queue on the NPE
+
+  queue-txready:
+    $ref: '/schemas/types.yaml#/definitions/phandle-array'
+    maxItems: 1
+    description: phandle to the TX READY queue on the NPE
+
+required:
+  - compatible
+  - reg
+  - queue-rx
+  - queue-txready
+
+examples:
+  - |
+    ethernet@c8009000 {
+        compatible = "intel,ixp4xx-ethernet";
+        reg = <0xc8009000 0x1000>;
+        status = "disabled";
+        queue-rx = <&qmgr 3>;
+        queue-txready = <&qmgr 20>;
+    };