1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/crypto/rockchip,rk3288-crypto.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Rockchip Electronics Security Accelerator
8
9maintainers:
10  - Heiko Stuebner <heiko@sntech.de>
11
12properties:
13  compatible:
14    enum:
15      - rockchip,rk3288-crypto
16      - rockchip,rk3328-crypto
17      - rockchip,rk3399-crypto
18
19  reg:
20    maxItems: 1
21
22  interrupts:
23    maxItems: 1
24
25  clocks:
26    minItems: 3
27    maxItems: 4
28
29  clock-names:
30    minItems: 3
31    maxItems: 4
32
33  resets:
34    minItems: 1
35    maxItems: 3
36
37  reset-names:
38    minItems: 1
39    maxItems: 3
40
41allOf:
42  - if:
43      properties:
44        compatible:
45          contains:
46            const: rockchip,rk3288-crypto
47    then:
48      properties:
49        clocks:
50          minItems: 4
51        clock-names:
52          items:
53            - const: aclk
54            - const: hclk
55            - const: sclk
56            - const: apb_pclk
57        resets:
58          maxItems: 1
59        reset-names:
60          items:
61            - const: crypto-rst
62  - if:
63      properties:
64        compatible:
65          contains:
66            const: rockchip,rk3328-crypto
67    then:
68      properties:
69        clocks:
70          maxItems: 3
71        clock-names:
72          items:
73            - const: hclk_master
74            - const: hclk_slave
75            - const: sclk
76        resets:
77          maxItems: 1
78        reset-names:
79          items:
80            - const: crypto-rst
81  - if:
82      properties:
83        compatible:
84          contains:
85            const: rockchip,rk3399-crypto
86    then:
87      properties:
88        clocks:
89          maxItems: 3
90        clock-names:
91          items:
92            - const: hclk_master
93            - const: hclk_slave
94            - const: sclk
95        resets:
96          minItems: 3
97        reset-names:
98          items:
99            - const: master
100            - const: slave
101            - const: crypto-rst
102
103required:
104  - compatible
105  - reg
106  - interrupts
107  - clocks
108  - clock-names
109  - resets
110  - reset-names
111
112additionalProperties: false
113
114examples:
115  - |
116    #include <dt-bindings/interrupt-controller/arm-gic.h>
117    #include <dt-bindings/clock/rk3288-cru.h>
118    crypto@ff8a0000 {
119      compatible = "rockchip,rk3288-crypto";
120      reg = <0xff8a0000 0x4000>;
121      interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
122      clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
123               <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
124      clock-names = "aclk", "hclk", "sclk", "apb_pclk";
125      resets = <&cru SRST_CRYPTO>;
126      reset-names = "crypto-rst";
127    };
128