xref: /linux/Documentation/devicetree/bindings/crypto/inside-secure,safexcel.yaml (revision 2ff81fe310167349ea17c8b2b1d8fb2bc2d755ae)
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,mt7986-crypto
22          - const: inside-secure,safexcel-eip97ies
23      - const: inside-secure,safexcel-eip197b
24      - const: inside-secure,safexcel-eip197d
25      - const: inside-secure,safexcel-eip97ies
26      - const: inside-secure,safexcel-eip197
27        description: Equivalent of inside-secure,safexcel-eip197b
28        deprecated: true
29      - const: inside-secure,safexcel-eip97
30        description: Equivalent of inside-secure,safexcel-eip97ies
31        deprecated: true
32
33  reg:
34    maxItems: 1
35
36  interrupts:
37    minItems: 4
38    maxItems: 6
39
40  interrupt-names:
41    minItems: 4
42    items:
43      - const: ring0
44      - const: ring1
45      - const: ring2
46      - const: ring3
47      - const: eip
48      - const: mem
49
50  clocks:
51    minItems: 1
52    maxItems: 2
53
54  clock-names:
55    minItems: 1
56    items:
57      - const: core
58      - const: reg
59
60  dma-coherent: true
61
62required:
63  - reg
64  - interrupts
65  - interrupt-names
66
67allOf:
68  - if:
69      properties:
70        clocks:
71          minItems: 2
72    then:
73      properties:
74        clock-names:
75          minItems: 2
76      required:
77        - clock-names
78  - if:
79      properties:
80        compatible:
81          not:
82            contains:
83              const: mediatek,mt7986-crypto
84    then:
85      properties:
86        interrupts:
87          minItems: 6
88        interrupt-names:
89          minItems: 6
90
91additionalProperties: false
92
93examples:
94  - |
95    #include <dt-bindings/interrupt-controller/arm-gic.h>
96    #include <dt-bindings/interrupt-controller/irq.h>
97
98    crypto@800000 {
99        compatible = "inside-secure,safexcel-eip197b";
100        reg = <0x800000 0x200000>;
101        interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
102                     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
103                     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
104                     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
105                     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
106                     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
107        interrupt-names = "ring0", "ring1", "ring2", "ring3", "eip", "mem";
108        clocks = <&cpm_syscon0 1 26>;
109        clock-names = "core";
110    };
111