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

Message ID 20190524162229.9185-1-linus.walleij@linaro.org
State New
Headers show
Series
  • Untitled series #20623
Related show

Commit Message

Linus Walleij May 24, 2019, 4:22 p.m.
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

-- 
2.20.1

Comments

Rob Herring May 24, 2019, 7:41 p.m. | #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

>
Rob Herring June 18, 2019, 8:22 p.m. | #2
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

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