blob: 2cc83771d8e708c8e45bf977ab4a94b1cc846eb4 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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-ipq6018
30 - qcom,scm-ipq806x
31 - qcom,scm-ipq8074
32 - qcom,scm-ipq9574
33 - qcom,scm-mdm9607
34 - qcom,scm-msm8226
35 - qcom,scm-msm8660
36 - qcom,scm-msm8916
37 - qcom,scm-msm8953
38 - qcom,scm-msm8960
39 - qcom,scm-msm8974
40 - qcom,scm-msm8976
41 - qcom,scm-msm8994
42 - qcom,scm-msm8996
43 - qcom,scm-msm8998
44 - qcom,scm-qcm2290
45 - qcom,scm-qdu1000
46 - qcom,scm-sa8775p
47 - qcom,scm-sc7180
48 - qcom,scm-sc7280
49 - qcom,scm-sc8180x
50 - qcom,scm-sc8280xp
51 - qcom,scm-sdm670
52 - qcom,scm-sdm845
53 - qcom,scm-sdx55
54 - qcom,scm-sdx65
55 - qcom,scm-sdx75
56 - qcom,scm-sm6115
57 - qcom,scm-sm6125
58 - qcom,scm-sm6350
59 - qcom,scm-sm6375
60 - qcom,scm-sm7150
61 - qcom,scm-sm8150
62 - qcom,scm-sm8250
63 - qcom,scm-sm8350
64 - qcom,scm-sm8450
65 - qcom,scm-sm8550
Tom Rini93743d22024-04-01 09:08:13 -040066 - qcom,scm-sm8650
Tom Rini53633a82024-02-29 12:33:36 -050067 - qcom,scm-qcs404
Tom Rini93743d22024-04-01 09:08:13 -040068 - qcom,scm-x1e80100
Tom Rini53633a82024-02-29 12:33:36 -050069 - const: qcom,scm
70
71 clocks:
72 minItems: 1
73 maxItems: 3
74
75 clock-names:
76 minItems: 1
77 maxItems: 3
78
79 dma-coherent: true
80
81 interconnects:
82 maxItems: 1
83
84 interconnect-names:
85 maxItems: 1
86
87 '#reset-cells':
88 const: 1
89
90 interrupts:
91 description:
92 The wait-queue interrupt that firmware raises as part of handshake
93 protocol to handle sleeping SCM calls.
94 maxItems: 1
95
Tom Rini6b642ac2024-10-01 12:20:28 -060096 memory-region:
97 description:
98 Phandle to the memory region reserved for the shared memory bridge to TZ.
99 maxItems: 1
100
Tom Rini53633a82024-02-29 12:33:36 -0500101 qcom,sdi-enabled:
102 description:
103 Indicates that the SDI (Secure Debug Image) has been enabled by TZ
104 by default and it needs to be disabled.
105 If not disabled WDT assertion or reboot will cause the board to hang
106 in the debug mode.
107 type: boolean
108
109 qcom,dload-mode:
110 $ref: /schemas/types.yaml#/definitions/phandle-array
111 items:
112 - items:
113 - description: phandle to TCSR hardware block
114 - description: offset of the download mode control register
115 description: TCSR hardware block
116
117allOf:
118 # Clocks
119 - if:
120 properties:
121 compatible:
122 contains:
123 enum:
124 - qcom,scm-apq8064
125 - qcom,scm-apq8084
126 - qcom,scm-mdm9607
127 - qcom,scm-msm8226
128 - qcom,scm-msm8660
129 - qcom,scm-msm8916
130 - qcom,scm-msm8953
131 - qcom,scm-msm8960
132 - qcom,scm-msm8974
133 - qcom,scm-msm8976
134 - qcom,scm-qcm2290
135 - qcom,scm-sm6375
136 then:
137 required:
138 - clocks
139 - clock-names
140 else:
141 properties:
142 clock-names: false
143 clocks: false
144
145 - if:
146 properties:
147 compatible:
148 contains:
149 enum:
150 - qcom,scm-apq8064
151 - qcom,scm-msm8660
152 - qcom,scm-msm8960
153 - qcom,scm-qcm2290
154 - qcom,scm-sm6375
155 then:
156 properties:
157 clock-names:
158 items:
159 - const: core
160
161 clocks:
162 maxItems: 1
163
164 - if:
165 properties:
166 compatible:
167 contains:
168 enum:
169 - qcom,scm-apq8084
170 - qcom,scm-mdm9607
171 - qcom,scm-msm8226
172 - qcom,scm-msm8916
173 - qcom,scm-msm8953
174 - qcom,scm-msm8974
175 - qcom,scm-msm8976
176 then:
177 properties:
178 clock-names:
179 items:
180 - const: core
181 - const: bus
182 - const: iface
183
184 clocks:
185 minItems: 3
186 maxItems: 3
187
Tom Rini53633a82024-02-29 12:33:36 -0500188 # Interrupts
189 - if:
190 not:
191 properties:
192 compatible:
193 contains:
194 enum:
195 - qcom,scm-sm8450
196 - qcom,scm-sm8550
Tom Rini93743d22024-04-01 09:08:13 -0400197 - qcom,scm-sm8650
Tom Rini53633a82024-02-29 12:33:36 -0500198 then:
199 properties:
200 interrupts: false
Tom Rini6b642ac2024-10-01 12:20:28 -0600201 - if:
202 not:
203 properties:
204 compatible:
205 contains:
206 enum:
207 - qcom,scm-sa8775p
208 then:
209 properties:
210 memory-region: false
Tom Rini53633a82024-02-29 12:33:36 -0500211
212required:
213 - compatible
214
215additionalProperties: false
216
217examples:
218 - |
219 #include <dt-bindings/clock/qcom,gcc-msm8916.h>
220
221 firmware {
222 scm {
223 compatible = "qcom,scm-msm8916", "qcom,scm";
224 clocks = <&gcc GCC_CRYPTO_CLK>,
225 <&gcc GCC_CRYPTO_AXI_CLK>,
226 <&gcc GCC_CRYPTO_AHB_CLK>;
227 clock-names = "core", "bus", "iface";
228 };
229 };