On Fri, May 21, 2021 at 12:30:20AM +0200, Linus Walleij wrote: > This adds device tree bindings for the ixp4xx crypto engine. > > Cc: Corentin Labbe <clabbe@xxxxxxxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > ChangeLog v1->v2: > - Drop the phandle to self, just add an NPE instance number > instead. > - Add the crypto node to the NPE binding. > - Move the example over to the NPE binding where it appears > in context. > --- > .../bindings/crypto/intel,ixp4xx-crypto.yaml | 46 +++++++++++++++++++ > ...ntel,ixp4xx-network-processing-engine.yaml | 13 +++++- > 2 files changed, 58 insertions(+), 1 deletion(-) > create mode 100644 Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml > > diff --git a/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml b/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml > new file mode 100644 > index 000000000000..79e9d23be1f4 > --- /dev/null > +++ b/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml > @@ -0,0 +1,46 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +# Copyright 2018 Linaro Ltd. > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/crypto/intel,ixp4xx-crypto.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: Intel IXP4xx cryptographic engine > + > +maintainers: > + - Linus Walleij <linus.walleij@xxxxxxxxxx> > + > +description: | > + The Intel IXP4xx cryptographic engine makes use of the IXP4xx NPE > + (Network Processing Engine). Since it is not a device on its own > + it is defined as a subnode of the NPE, if crypto support is > + available on the platform. > + > +properties: > + compatible: > + const: intel,ixp4xx-crypto > + > + intel,npe: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 3 > + description: phandle to the NPE this ethernet instance is using Not a phandle now. > + and the instance to use in the second cell Maybe 'reg' works here? You can only have 1 thing you address though if you use reg here. How are other NPE instances used? Are you going to need to have a reference to them? > + > + queue-rx: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + description: phandle to the RX queue on the NPE Plus a cell value. What's it for? > + > + queue-txready: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + description: phandle to the TX READY queue on the NPE And here. > + > +required: > + - compatible > + - intel,npe > + - queue-rx > + - queue-txready > + > +additionalProperties: false > diff --git a/Documentation/devicetree/bindings/firmware/intel,ixp4xx-network-processing-engine.yaml b/Documentation/devicetree/bindings/firmware/intel,ixp4xx-network-processing-engine.yaml > index 1bd2870c3a9c..add46ae6c461 100644 > --- a/Documentation/devicetree/bindings/firmware/intel,ixp4xx-network-processing-engine.yaml > +++ b/Documentation/devicetree/bindings/firmware/intel,ixp4xx-network-processing-engine.yaml > @@ -30,6 +30,10 @@ properties: > - description: NPE1 register range > - description: NPE2 register range > > + crypto: > + type: object > + description: optional node for the embedded crypto engine $ref: /schemas/crypto/intel,ixp4xx-crypto.yaml# > + > required: > - compatible > - reg > @@ -38,8 +42,15 @@ additionalProperties: false > > examples: > - | > - npe@c8006000 { > + npe: npe@c8006000 { > compatible = "intel,ixp4xx-network-processing-engine"; > reg = <0xc8006000 0x1000>, <0xc8007000 0x1000>, <0xc8008000 0x1000>; > + > + crypto { > + compatible = "intel,ixp4xx-crypto"; > + intel,npe = <2>; > + queue-rx = <&qmgr 30>; > + queue-txready = <&qmgr 29>; > + }; > }; > ... > -- > 2.31.1 >