xref: /linux/Documentation/devicetree/bindings/crypto/qcom-qce.yaml (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/crypto/qcom-qce.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm crypto engine driver
8
9maintainers:
10  - Bhupesh Sharma <bhupesh.sharma@linaro.org>
11
12description:
13  This document defines the binding for the QCE crypto
14  controller found on Qualcomm parts.
15
16properties:
17  compatible:
18    oneOf:
19      - const: qcom,crypto-v5.1
20        deprecated: true
21        description: Kept only for ABI backward compatibility
22
23      - const: qcom,crypto-v5.4
24        deprecated: true
25        description: Kept only for ABI backward compatibility
26
27      - items:
28          - enum:
29              - qcom,ipq4019-qce
30              - qcom,sm8150-qce
31          - const: qcom,qce
32
33      - items:
34          - enum:
35              - qcom,ipq6018-qce
36              - qcom,ipq8074-qce
37              - qcom,ipq9574-qce
38              - qcom,msm8996-qce
39              - qcom,qcm2290-qce
40              - qcom,sdm845-qce
41              - qcom,sm6115-qce
42          - const: qcom,ipq4019-qce
43          - const: qcom,qce
44
45      - items:
46          - enum:
47              - qcom,sc7280-qce
48              - qcom,sm6350-qce
49              - qcom,sm8250-qce
50              - qcom,sm8350-qce
51              - qcom,sm8450-qce
52              - qcom,sm8550-qce
53              - qcom,sm8650-qce
54          - const: qcom,sm8150-qce
55          - const: qcom,qce
56
57  reg:
58    maxItems: 1
59
60  clocks:
61    minItems: 1
62    maxItems: 3
63
64  clock-names:
65    minItems: 1
66    maxItems: 3
67
68  iommus:
69    minItems: 1
70    maxItems: 8
71    description:
72      phandle to apps_smmu node with sid mask.
73
74  interconnects:
75    maxItems: 1
76    description:
77      Interconnect path between qce crypto and main memory.
78
79  interconnect-names:
80    const: memory
81
82  dmas:
83    items:
84      - description: DMA specifiers for rx dma channel.
85      - description: DMA specifiers for tx dma channel.
86
87  dma-names:
88    items:
89      - const: rx
90      - const: tx
91
92allOf:
93  - if:
94      properties:
95        compatible:
96          contains:
97            enum:
98              - qcom,crypto-v5.1
99              - qcom,crypto-v5.4
100              - qcom,ipq6018-qce
101              - qcom,ipq8074-qce
102              - qcom,ipq9574-qce
103              - qcom,msm8996-qce
104              - qcom,sdm845-qce
105    then:
106      properties:
107        clocks:
108          maxItems: 3
109        clock-names:
110          items:
111            - const: iface
112            - const: bus
113            - const: core
114      required:
115        - clocks
116        - clock-names
117
118  - if:
119      properties:
120        compatible:
121          contains:
122            enum:
123              - qcom,qcm2290-qce
124              - qcom,sm6115-qce
125    then:
126      properties:
127        clocks:
128          maxItems: 1
129        clock-names:
130          items:
131            - const: core
132      required:
133        - clocks
134        - clock-names
135
136  - if:
137      properties:
138        compatible:
139          contains:
140            enum:
141              - qcom,sm8150-qce
142    then:
143      properties:
144        clocks: false
145        clock-names: false
146
147required:
148  - compatible
149  - reg
150  - dmas
151  - dma-names
152
153additionalProperties: false
154
155examples:
156  - |
157    #include <dt-bindings/clock/qcom,gcc-apq8084.h>
158    crypto-engine@fd45a000 {
159        compatible = "qcom,ipq6018-qce", "qcom,ipq4019-qce", "qcom,qce";
160        reg = <0xfd45a000 0x6000>;
161        clocks = <&gcc GCC_CE2_AHB_CLK>,
162                 <&gcc GCC_CE2_AXI_CLK>,
163                 <&gcc GCC_CE2_CLK>;
164        clock-names = "iface", "bus", "core";
165        dmas = <&cryptobam 2>, <&cryptobam 3>;
166        dma-names = "rx", "tx";
167        iommus = <&apps_smmu 0x584 0x0011>,
168                 <&apps_smmu 0x586 0x0011>,
169                 <&apps_smmu 0x594 0x0011>,
170                 <&apps_smmu 0x596 0x0011>;
171    };
172