Re: [PATCH v6 1/3] dt-bindings: add device tree binding for Arm CryptoCell trng engine

From: Rob Herring
Date: Thu Mar 26 2020 - 23:04:22 EST


On Thu, Mar 26, 2020 at 3:05 PM Hadar Gat <Hadar.Gat@xxxxxxx> wrote:
>
> Hi Rob,
>
> >
> > On Wed, Mar 25, 2020 at 07:41:09AM +0200, Hadar Gat wrote:
> > > The Arm CryptoCell is a hardware security engine. This patch adds DT
> > > bindings for its TRNG (True Random Number Generator) engine.
> > >
> > > Signed-off-by: Hadar Gat <hadar.gat@xxxxxxx>
> > > ---
> > > .../devicetree/bindings/rng/arm-cctrng.yaml | 55
> > ++++++++++++++++++++++
> > > 1 file changed, 55 insertions(+)
> > > create mode 100644
> > > Documentation/devicetree/bindings/rng/arm-cctrng.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/rng/arm-cctrng.yaml
> > > b/Documentation/devicetree/bindings/rng/arm-cctrng.yaml
> > > new file mode 100644
> > > index 0000000..7f70e4b
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/rng/arm-cctrng.yaml
> > > @@ -0,0 +1,55 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/rng/arm-cctrng.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Arm TrustZone CryptoCell TRNG engine
> > > +
> > > +maintainers:
> > > + - Hadar Gat <hadar.gat@xxxxxxx>
> > > +
> > > +description: |+
> > > + Arm TrustZone CryptoCell TRNG (True Random Number Generator)
> > engine.
> > > +
> > > +properties:
> > > + compatible:
> > > + enum:
> > > + - arm,cryptocell-713-trng
> > > + - arm,cryptocell-703-trng
> > > +
> > > + interrupts:
> > > + maxItems: 1
> > > +
> > > + reg:
> > > + maxItems: 1
> > > +
> > > + arm,rosc-ratio:
> > > + description:
> > > + Arm TrustZone CryptoCell TRNG engine has 4 ring oscillators.
> > > + Sampling ratio values for these 4 ring oscillators. (from calibration)
> > > + allOf:
> > > + - $ref: /schemas/types.yaml#/definitions/uint32-array
> > > + - items:
> > > + minItems: 4
> > > + maxItems: 4
> >
> > Aren't there some constraints on the values?
> >
> > If not, then just this is enough:
> >
> > - maxItems: 4
> >
> The constraint is just on the array size and not on the values.
> The array is of 4 elements for the CryptoCell 4 ring oscillators.
> Isn't 'minitems:' is about the array min size? Isn't it the way to block less than 4 items? This is what I want to do.
> I'm a bit confused if it is required or not..

Essentially, we always require bounds on the array size, so if you
only specify one of minItems or maxItems it's implied to be a fixed
size. IOW, you only have to specify both if you have a variable number
of items. Also, note that an 'items' list implies the exact size. Both
of these are not the default behavior for json-schema.

Hope that helps.

Rob