xref: /linux/Documentation/devicetree/bindings/crypto/inside-secure,safexcel.yaml (revision 53597deca0e38c30e6cd4ba2114fa42d2bcd85bb)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/crypto/inside-secure,safexcel.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Inside Secure SafeXcel cryptographic engine
8
9maintainers:
10  - Antoine Tenart <atenart@kernel.org>
11
12properties:
13  compatible:
14    oneOf:
15      - items:
16          - const: marvell,armada-cp110-crypto
17          - const: inside-secure,safexcel-eip197b
18      - items:
19          - enum:
20              - marvell,armada-3700-crypto
21              - mediatek,mt7981-crypto
22              - mediatek,mt7986-crypto
23          - const: inside-secure,safexcel-eip97ies
24      - const: inside-secure,safexcel-eip197b
25      - const: inside-secure,safexcel-eip197d
26      - const: inside-secure,safexcel-eip97ies
27      - const: inside-secure,safexcel-eip197
28        description: Equivalent of inside-secure,safexcel-eip197b
29        deprecated: true
30      - const: inside-secure,safexcel-eip97
31        description: Equivalent of inside-secure,safexcel-eip97ies
32        deprecated: true
33
34  reg:
35    maxItems: 1
36
37  interrupts:
38    minItems: 4
39    maxItems: 6
40
41  interrupt-names:
42    minItems: 4
43    items:
44      - const: ring0
45      - const: ring1
46      - const: ring2
47      - const: ring3
48      - const: eip
49      - const: mem
50
51  clocks:
52    minItems: 1
53    maxItems: 2
54
55  clock-names:
56    minItems: 1
57    items:
58      - const: core
59      - const: reg
60
61  dma-coherent: true
62
63required:
64  - reg
65  - interrupts
66  - interrupt-names
67
68allOf:
69  - if:
70      properties:
71        clocks:
72          minItems: 2
73    then:
74      properties:
75        clock-names:
76          minItems: 2
77      required:
78        - clock-names
79  - if:
80      properties:
81        compatible:
82          not:
83            contains:
84              enum:
85                - mediatek,mt7981-crypto
86                - mediatek,mt7986-crypto
87    then:
88      properties:
89        interrupts:
90          minItems: 6
91        interrupt-names:
92          minItems: 6
93
94additionalProperties: false
95
96examples:
97  - |
98    #include <dt-bindings/interrupt-controller/arm-gic.h>
99    #include <dt-bindings/interrupt-controller/irq.h>
100
101    crypto@800000 {
102        compatible = "inside-secure,safexcel-eip197b";
103        reg = <0x800000 0x200000>;
104        interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
105                     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
106                     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
107                     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
108                     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
109                     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
110        interrupt-names = "ring0", "ring1", "ring2", "ring3", "eip", "mem";
111        clocks = <&cpm_syscon0 1 26>;
112        clock-names = "core";
113    };
114