Message ID | 20190524162229.9185-1-linus.walleij@linaro.org |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | None | expand |
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 >
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
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 --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>; + };
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