Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/firmware/qcom,scm.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: QCOM Secure Channel Manager (SCM)
8
9description: |
10 Qualcomm processors include an interface to communicate to the secure firmware.
11 This interface allows for clients to request different types of actions.
12 These can include CPU power up/down, HDCP requests, loading of firmware,
13 and other assorted actions.
14
15maintainers:
16 - Bjorn Andersson <bjorn.andersson@linaro.org>
17 - Robert Marko <robimarko@gmail.com>
18 - Guru Das Srinagesh <quic_gurus@quicinc.com>
19
20properties:
21 compatible:
22 items:
23 - enum:
24 - qcom,scm-apq8064
25 - qcom,scm-apq8084
26 - qcom,scm-ipq4019
27 - qcom,scm-ipq5018
28 - qcom,scm-ipq5332
29 - qcom,scm-ipq5424
30 - qcom,scm-ipq6018
31 - qcom,scm-ipq806x
32 - qcom,scm-ipq8074
33 - qcom,scm-ipq9574
34 - qcom,scm-mdm9607
35 - qcom,scm-msm8226
36 - qcom,scm-msm8660
37 - qcom,scm-msm8916
38 - qcom,scm-msm8953
39 - qcom,scm-msm8960
40 - qcom,scm-msm8974
41 - qcom,scm-msm8976
42 - qcom,scm-msm8994
43 - qcom,scm-msm8996
44 - qcom,scm-msm8998
45 - qcom,scm-qcm2290
46 - qcom,scm-qcs615
47 - qcom,scm-qcs8300
48 - qcom,scm-qdu1000
49 - qcom,scm-sa8255p
50 - qcom,scm-sa8775p
51 - qcom,scm-sar2130p
52 - qcom,scm-sc7180
53 - qcom,scm-sc7280
54 - qcom,scm-sc8180x
55 - qcom,scm-sc8280xp
56 - qcom,scm-sdm670
57 - qcom,scm-sdm845
58 - qcom,scm-sdx55
59 - qcom,scm-sdx65
60 - qcom,scm-sdx75
61 - qcom,scm-sm6115
62 - qcom,scm-sm6125
63 - qcom,scm-sm6350
64 - qcom,scm-sm6375
65 - qcom,scm-sm7150
66 - qcom,scm-sm8150
67 - qcom,scm-sm8250
68 - qcom,scm-sm8350
69 - qcom,scm-sm8450
70 - qcom,scm-sm8550
71 - qcom,scm-sm8650
72 - qcom,scm-sm8750
73 - qcom,scm-qcs404
74 - qcom,scm-x1e80100
75 - const: qcom,scm
76
77 clocks:
78 minItems: 1
79 maxItems: 3
80
81 clock-names:
82 minItems: 1
83 maxItems: 3
84
85 dma-coherent: true
86
87 interconnects:
88 maxItems: 1
89
90 interconnect-names:
91 maxItems: 1
92
93 '#reset-cells':
94 const: 1
95
96 interrupts:
97 description:
98 The wait-queue interrupt that firmware raises as part of handshake
99 protocol to handle sleeping SCM calls.
100 maxItems: 1
101
102 memory-region:
103 description:
104 Phandle to the memory region reserved for the shared memory bridge to TZ.
105 maxItems: 1
106
107 qcom,sdi-enabled:
108 description:
109 Indicates that the SDI (Secure Debug Image) has been enabled by TZ
110 by default and it needs to be disabled.
111 If not disabled WDT assertion or reboot will cause the board to hang
112 in the debug mode.
113 type: boolean
114
115 qcom,dload-mode:
116 $ref: /schemas/types.yaml#/definitions/phandle-array
117 items:
118 - items:
119 - description: phandle to TCSR hardware block
120 - description: offset of the download mode control register
121 description: TCSR hardware block
122
123allOf:
124 # Clocks
125 - if:
126 properties:
127 compatible:
128 contains:
129 enum:
130 - qcom,scm-apq8064
131 - qcom,scm-apq8084
132 - qcom,scm-mdm9607
133 - qcom,scm-msm8226
134 - qcom,scm-msm8660
135 - qcom,scm-msm8916
136 - qcom,scm-msm8953
137 - qcom,scm-msm8960
138 - qcom,scm-msm8974
139 - qcom,scm-msm8976
140 - qcom,scm-qcm2290
141 - qcom,scm-sm6375
142 then:
143 required:
144 - clocks
145 - clock-names
146 else:
147 properties:
148 clock-names: false
149 clocks: false
150
151 - if:
152 properties:
153 compatible:
154 contains:
155 enum:
156 - qcom,scm-apq8064
157 - qcom,scm-msm8660
158 - qcom,scm-msm8960
159 - qcom,scm-qcm2290
160 - qcom,scm-sm6375
161 then:
162 properties:
163 clock-names:
164 items:
165 - const: core
166
167 clocks:
168 maxItems: 1
169
170 - if:
171 properties:
172 compatible:
173 contains:
174 enum:
175 - qcom,scm-apq8084
176 - qcom,scm-mdm9607
177 - qcom,scm-msm8226
178 - qcom,scm-msm8916
179 - qcom,scm-msm8953
180 - qcom,scm-msm8974
181 - qcom,scm-msm8976
182 then:
183 properties:
184 clock-names:
185 items:
186 - const: core
187 - const: bus
188 - const: iface
189
190 clocks:
191 minItems: 3
192 maxItems: 3
193
194 # Interrupts
195 - if:
196 not:
197 properties:
198 compatible:
199 contains:
200 enum:
201 - qcom,scm-sm8450
202 - qcom,scm-sm8550
203 - qcom,scm-sm8650
204 - qcom,scm-sm8750
205 then:
206 properties:
207 interrupts: false
208 - if:
209 not:
210 properties:
211 compatible:
212 contains:
213 enum:
214 - qcom,scm-sa8255p
215 - qcom,scm-sa8775p
216 then:
217 properties:
218 memory-region: false
219
220required:
221 - compatible
222
223additionalProperties: false
224
225examples:
226 - |
227 #include <dt-bindings/clock/qcom,gcc-msm8916.h>
228
229 firmware {
230 scm {
231 compatible = "qcom,scm-msm8916", "qcom,scm";
232 clocks = <&gcc GCC_CRYPTO_CLK>,
233 <&gcc GCC_CRYPTO_AXI_CLK>,
234 <&gcc GCC_CRYPTO_AHB_CLK>;
235 clock-names = "core", "bus", "iface";
236 };
237 };