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

From: Hadar Gat
Date: Thu Feb 13 2020 - 05:21:56 EST


Thanks Rob for your clarifications. I surly learned more about .yaml schema.
All fixes will be applied in the next patch version (v4).
Hadar

> On Sun, Feb 9, 2020 at 3:34 AM Hadar Gat <Hadar.Gat@xxxxxxx> wrote:
> >
> > Hi Rob,
> > Thanks for remarks.
> > Please see my answers.
> > Hadar
> >
> > > On Sun, Feb 02, 2020 at 03:26:59PM +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 | 51
> > > ++++++++++++++++++++++
> > > > 1 file changed, 51 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..fe9422e
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/rng/arm-cctrng.yaml
> > > > @@ -0,0 +1,51 @@
> > > > +# SPDX-License-Identifier: GPL-2.0
> > >
> > > Dual license new bindings:
> > >
> > > (GPL-2.0-only OR BSD-2-Clause)
> > >
> > Okay.
> >
> > > > +%YAML 1.2
> > > > +---
> > > > +$id: http://devicetree.org/schemas/rng/arm-cctrng.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +title: Arm ZrustZone CryptoCell TRNG engine
> > > > +
> > > > +maintainers:
> > > > + - Hadar Gat <hadar.gat@xxxxxxx>
> > > > +
> > > > +description: |+
> > > > + Arm ZrustZone CryptoCell TRNG (True Random Number Generator)
> > > engine.
> > > > +
> > > > +properties:
> > > > + compatible:
> > > > + description: Should be "arm,cryptocell-7x3-trng"
> > >
> > > Drop. That's what the schema says.
> > >
> > Okay.
> >
> > > > + const: arm,cryptocell-7x3-trng
> > >
> > > Is 'x' a wildcard? We don't do wildcards unless you have other ways
> > > to get the specific version.
> > >
> > Kind of a wildcard. It stands for either 703 or 713.
> > Should I fix this to the specific versions?
> > OR,
> > Since the specific version doesn't matter to the driver, should it changed?
>
> Maybe not now, but both will always have the same errata and features?
> 2 is not a large number, so just do 2.
>
> Of course, errata can vary by revision. Most Arm IP has version registers, so I
> assume that's true here. If not, we'd need per SoC implementation
> compatible strings here.
>
> > (checking out other rng drivers, I see this example in
> Samsung,exynos4.yaml:
> > - samsung,exynos4-rng # for Exynos4210 and Exynos4412 )
>
> Well, there's lots of bad examples, and also, some Samsung bindings are
> declared to not be stable.
>
> >
> > > > +
> > > > + interrupts:
> > > > + description: Interrupt number for the device.
> > >
> > > Drop. That's all 'interrupts'.
> > >
> > Okay.
> >
> > > > + maxItems: 1
> > > > +
> > > > + reg:
> > > > + description: Base physical address of the engine and length of
> memory
> > > > + mapped region.
> > >
> > > Drop.
> > >
> > Okay.
> >
> > > > + maxItems: 1
> > > > +
> > > > + rosc-ratio:
> > > > + description: Sampling ratio values from calibration for 4 ring
> oscillators.
> > > > + maxItems: 1
> > >
> > > Is this an array?
> > >
> > Yes, array of 4. (I'll mention in the description)
>
> Don't need a description as that's constraints the schema should express.
>
> > > Needs a vendor prefix, a type ref and any constraints you can come up
> with.
> > >
> > Do you mean in the name? instead of "rosc-ratio"?
>
> arm,rosc-ratio:
> allOf:
> - $ref: /schemas/types.yaml#/definitions/uint32-array
> maxItems: 4
>
> > I didn't find anything about it in the documentation or examples in other
> rng drivers..
> >
> > > > +
> > > > + clocks:
> > > > + description: Reference to the crypto engine clock.
> > >
> > > How many clocks?
> > >
> > One clock. (I will change clocks --> clock)
>
> No, the property name is always 'clocks'. You need just 'maxItems: 1'
> if there's a single clock.
>
> Rob