blob: 47d3d2d52acd2e60a17014b6f8d646a914d23238 [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
96 qcom,sdi-enabled:
97 description:
98 Indicates that the SDI (Secure Debug Image) has been enabled by TZ
99 by default and it needs to be disabled.
100 If not disabled WDT assertion or reboot will cause the board to hang
101 in the debug mode.
102 type: boolean
103
104 qcom,dload-mode:
105 $ref: /schemas/types.yaml#/definitions/phandle-array
106 items:
107 - items:
108 - description: phandle to TCSR hardware block
109 - description: offset of the download mode control register
110 description: TCSR hardware block
111
112allOf:
113 # Clocks
114 - if:
115 properties:
116 compatible:
117 contains:
118 enum:
119 - qcom,scm-apq8064
120 - qcom,scm-apq8084
121 - qcom,scm-mdm9607
122 - qcom,scm-msm8226
123 - qcom,scm-msm8660
124 - qcom,scm-msm8916
125 - qcom,scm-msm8953
126 - qcom,scm-msm8960
127 - qcom,scm-msm8974
128 - qcom,scm-msm8976
129 - qcom,scm-qcm2290
130 - qcom,scm-sm6375
131 then:
132 required:
133 - clocks
134 - clock-names
135 else:
136 properties:
137 clock-names: false
138 clocks: false
139
140 - if:
141 properties:
142 compatible:
143 contains:
144 enum:
145 - qcom,scm-apq8064
146 - qcom,scm-msm8660
147 - qcom,scm-msm8960
148 - qcom,scm-qcm2290
149 - qcom,scm-sm6375
150 then:
151 properties:
152 clock-names:
153 items:
154 - const: core
155
156 clocks:
157 maxItems: 1
158
159 - if:
160 properties:
161 compatible:
162 contains:
163 enum:
164 - qcom,scm-apq8084
165 - qcom,scm-mdm9607
166 - qcom,scm-msm8226
167 - qcom,scm-msm8916
168 - qcom,scm-msm8953
169 - qcom,scm-msm8974
170 - qcom,scm-msm8976
171 then:
172 properties:
173 clock-names:
174 items:
175 - const: core
176 - const: bus
177 - const: iface
178
179 clocks:
180 minItems: 3
181 maxItems: 3
182
Tom Rini53633a82024-02-29 12:33:36 -0500183 # Interrupts
184 - if:
185 not:
186 properties:
187 compatible:
188 contains:
189 enum:
190 - qcom,scm-sm8450
191 - qcom,scm-sm8550
Tom Rini93743d22024-04-01 09:08:13 -0400192 - qcom,scm-sm8650
Tom Rini53633a82024-02-29 12:33:36 -0500193 then:
194 properties:
195 interrupts: false
196
197required:
198 - compatible
199
200additionalProperties: false
201
202examples:
203 - |
204 #include <dt-bindings/clock/qcom,gcc-msm8916.h>
205
206 firmware {
207 scm {
208 compatible = "qcom,scm-msm8916", "qcom,scm";
209 clocks = <&gcc GCC_CRYPTO_CLK>,
210 <&gcc GCC_CRYPTO_AXI_CLK>,
211 <&gcc GCC_CRYPTO_AHB_CLK>;
212 clock-names = "core", "bus", "iface";
213 };
214 };