diff mbox series

[v2,2/4] dt-bindings: crypto: Add DT bindings documentation for sun8i-ss Security System

Message ID 20191023201016.26195-3-clabbe.montjoie@gmail.com (mailing list archive)
State Not Applicable
Delegated to: Herbert Xu
Headers show
Series crypto: add sun8i-ss driver for Allwinner Security System | expand

Commit Message

Corentin Labbe Oct. 23, 2019, 8:10 p.m. UTC
This patch adds documentation for Device-Tree bindings of the
Security System cryptographic offloader driver.

Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
 .../bindings/crypto/allwinner,sun8i-ss.yaml   | 64 +++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml

Comments

Maxime Ripard Oct. 24, 2019, 6:50 a.m. UTC | #1
Hi,

On Wed, Oct 23, 2019 at 10:10:14PM +0200, Corentin Labbe wrote:
> This patch adds documentation for Device-Tree bindings of the
> Security System cryptographic offloader driver.
>
> Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
> ---
>  .../bindings/crypto/allwinner,sun8i-ss.yaml   | 64 +++++++++++++++++++
>  1 file changed, 64 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
>
> diff --git a/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml b/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
> new file mode 100644
> index 000000000000..99b7736975bc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
> @@ -0,0 +1,64 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/crypto/allwinner,sun8i-ss.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Allwinner Security System v2 driver
> +
> +maintainers:
> +  - Corentin Labbe <corentin.labbe@gmail.com>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - allwinner,sun8i-a83t-crypto
> +      - allwinner,sun9i-a80-crypto
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    items:
> +      - description: Bus clock
> +      - description: Module clock
> +
> +  clock-names:
> +    items:
> +      - const: bus
> +      - const: mod
> +
> +  resets:
> +    maxItems: 1

The A83t at least has a reset line, so please make a condition to have
it required.

> +  reset-names:
> +    const: bus

You don't need reset-names at all in that binding.

Maxime
Corentin Labbe Oct. 24, 2019, 9:31 a.m. UTC | #2
On Thu, Oct 24, 2019 at 08:50:05AM +0200, Maxime Ripard wrote:
> Hi,
> 
> On Wed, Oct 23, 2019 at 10:10:14PM +0200, Corentin Labbe wrote:
> > This patch adds documentation for Device-Tree bindings of the
> > Security System cryptographic offloader driver.
> >
> > Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
> > ---
> >  .../bindings/crypto/allwinner,sun8i-ss.yaml   | 64 +++++++++++++++++++
> >  1 file changed, 64 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml b/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
> > new file mode 100644
> > index 000000000000..99b7736975bc
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
> > @@ -0,0 +1,64 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/crypto/allwinner,sun8i-ss.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Allwinner Security System v2 driver
> > +
> > +maintainers:
> > +  - Corentin Labbe <corentin.labbe@gmail.com>
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - allwinner,sun8i-a83t-crypto
> > +      - allwinner,sun9i-a80-crypto
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    items:
> > +      - description: Bus clock
> > +      - description: Module clock
> > +
> > +  clock-names:
> > +    items:
> > +      - const: bus
> > +      - const: mod
> > +
> > +  resets:
> > +    maxItems: 1
> 
> The A83t at least has a reset line, so please make a condition to have
> it required.
> 

Hello

The A80 have one also, so I need to set minItems: 1
But setting both minItems: 1 and maxItems:1 lead to a check failure:
properties:resets: {'minItems': 1, 'maxItems': 1} is not valid under any of the given schemas

How to do that ?

Furthermore, I try to do that for interrupts and reg, since they are also mandatory and same failure.

> > +  reset-names:
> > +    const: bus
> 
> You don't need reset-names at all in that binding.

Fixed

Thanks
Maxime Ripard Oct. 24, 2019, 6:24 p.m. UTC | #3
On Thu, Oct 24, 2019 at 11:31:18AM +0200, Corentin Labbe wrote:
> On Thu, Oct 24, 2019 at 08:50:05AM +0200, Maxime Ripard wrote:
> > Hi,
> >
> > On Wed, Oct 23, 2019 at 10:10:14PM +0200, Corentin Labbe wrote:
> > > This patch adds documentation for Device-Tree bindings of the
> > > Security System cryptographic offloader driver.
> > >
> > > Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
> > > ---
> > >  .../bindings/crypto/allwinner,sun8i-ss.yaml   | 64 +++++++++++++++++++
> > >  1 file changed, 64 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml b/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
> > > new file mode 100644
> > > index 000000000000..99b7736975bc
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
> > > @@ -0,0 +1,64 @@
> > > +# SPDX-License-Identifier: GPL-2.0
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/crypto/allwinner,sun8i-ss.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Allwinner Security System v2 driver
> > > +
> > > +maintainers:
> > > +  - Corentin Labbe <corentin.labbe@gmail.com>
> > > +
> > > +properties:
> > > +  compatible:
> > > +    enum:
> > > +      - allwinner,sun8i-a83t-crypto
> > > +      - allwinner,sun9i-a80-crypto
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  interrupts:
> > > +    maxItems: 1
> > > +
> > > +  clocks:
> > > +    items:
> > > +      - description: Bus clock
> > > +      - description: Module clock
> > > +
> > > +  clock-names:
> > > +    items:
> > > +      - const: bus
> > > +      - const: mod
> > > +
> > > +  resets:
> > > +    maxItems: 1
> >
> > The A83t at least has a reset line, so please make a condition to have
> > it required.
> >
>
> Hello
>
> The A80 have one also, so I need to set minItems: 1
> But setting both minItems: 1 and maxItems:1 lead to a check failure:
>
> properties:resets: {'minItems': 1, 'maxItems': 1} is not valid under
> any of the given schemas
>
> How to do that ?

IIRC the meta-schema prevent having both because the tooling will
insert it for you.

It doesn't really matter at this level though. maxItems alone will
make sure that there's a single element, and the schemas in the tools
will make sure that the type for resets is correct.

What you'd need here though would be to add resets to the list of
required properties, otherwise it will only be checked against if the
property is there.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml b/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
new file mode 100644
index 000000000000..99b7736975bc
--- /dev/null
+++ b/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ss.yaml
@@ -0,0 +1,64 @@ 
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/crypto/allwinner,sun8i-ss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allwinner Security System v2 driver
+
+maintainers:
+  - Corentin Labbe <corentin.labbe@gmail.com>
+
+properties:
+  compatible:
+    enum:
+      - allwinner,sun8i-a83t-crypto
+      - allwinner,sun9i-a80-crypto
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Bus clock
+      - description: Module clock
+
+  clock-names:
+    items:
+      - const: bus
+      - const: mod
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    const: bus
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/sun8i-a83t-ccu.h>
+    #include <dt-bindings/reset/sun8i-a83t-ccu.h>
+
+    crypto: crypto@1c15000 {
+      compatible = "allwinner,sun8i-a83t-crypto";
+      reg = <0x01c15000 0x1000>;
+      interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+      clocks = <&ccu CLK_BUS_SS>, <&ccu CLK_SS>;
+      clock-names = "bus", "mod";
+      resets = <&ccu RST_BUS_SS>;
+      reset-names = "bus";
+    };
+