xref: /freebsd/sys/contrib/device-tree/Bindings/crypto/marvell,orion-crypto.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/crypto/marvell,orion-crypto.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Marvell Cryptographic Engines And Security Accelerator
8
9maintainers:
10  - Andrew Lunn <andrew@lunn.ch>
11  - Boris Brezillon <bbrezillon@kernel.org>
12
13description: |
14  Marvell Cryptographic Engines And Security Accelerator
15
16properties:
17  compatible:
18    enum:
19      - marvell,armada-370-crypto
20      - marvell,armada-xp-crypto
21      - marvell,armada-375-crypto
22      - marvell,armada-38x-crypto
23      - marvell,dove-crypto
24      - marvell,kirkwood-crypto
25      - marvell,orion-crypto
26
27  reg:
28    minItems: 1
29    items:
30      - description: Registers region
31      - description: SRAM region
32        deprecated: true
33
34  reg-names:
35    minItems: 1
36    items:
37      - const: regs
38      - const: sram
39        deprecated: true
40
41  interrupts:
42    description: One interrupt for each CESA engine
43    minItems: 1
44    maxItems: 2
45
46  clocks:
47    description: One or two clocks for each CESA engine
48    minItems: 1
49    maxItems: 4
50
51  clock-names:
52    minItems: 1
53    items:
54      - const: cesa0
55      - const: cesa1
56      - const: cesaz0
57      - const: cesaz1
58
59  marvell,crypto-srams:
60    description: Phandle(s) to crypto SRAM.
61    $ref: /schemas/types.yaml#/definitions/phandle-array
62    minItems: 1
63    maxItems: 2
64    items:
65      maxItems: 1
66
67  marvell,crypto-sram-size:
68    description: SRAM size reserved for crypto operations.
69    $ref: /schemas/types.yaml#/definitions/uint32
70    default: 0x800
71
72required:
73  - compatible
74  - reg
75  - reg-names
76  - interrupts
77  - marvell,crypto-srams
78
79allOf:
80  - if:
81      not:
82        properties:
83          compatible:
84            enum:
85              - marvell,kirkwood-crypto
86              - marvell,orion-crypto
87    then:
88      required:
89        - clocks
90  - if:
91      properties:
92        compatible:
93          contains:
94            enum:
95              - marvell,armada-370-crypto
96              - marvell,armada-375-crypto
97              - marvell,armada-38x-crypto
98              - marvell,armada-xp-crypto
99    then:
100      required:
101        - clock-names
102  - if:
103      properties:
104        compatible:
105          contains:
106            enum:
107              - marvell,armada-375-crypto
108              - marvell,armada-38x-crypto
109    then:
110      properties:
111        clocks:
112          minItems: 4
113        clock-names:
114          minItems: 4
115    else:
116      properties:
117        clocks:
118          maxItems: 2
119        clock-names:
120          maxItems: 2
121
122additionalProperties: false
123
124examples:
125  - |
126    crypto@30000 {
127        compatible = "marvell,orion-crypto";
128        reg = <0x30000 0x10000>;
129        reg-names = "regs";
130        interrupts = <22>;
131        marvell,crypto-srams = <&crypto_sram>;
132        marvell,crypto-sram-size = <0x600>;
133    };
134