]>
Commit | Line | Data |
---|---|---|
53633a89 TR |
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 | ||
7 | title: QCOM Secure Channel Manager (SCM) | |
8 | ||
9 | description: | | |
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 | ||
15 | maintainers: | |
16 | - Bjorn Andersson <bjorn.andersson@linaro.org> | |
17 | - Robert Marko <robimarko@gmail.com> | |
18 | - Guru Das Srinagesh <quic_gurus@quicinc.com> | |
19 | ||
20 | properties: | |
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 | |
93743d24 | 66 | - qcom,scm-sm8650 |
53633a89 | 67 | - qcom,scm-qcs404 |
93743d24 | 68 | - qcom,scm-x1e80100 |
53633a89 TR |
69 | - 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 | ||
112 | allOf: | |
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 | ||
53633a89 TR |
183 | # Interrupts |
184 | - if: | |
185 | not: | |
186 | properties: | |
187 | compatible: | |
188 | contains: | |
189 | enum: | |
190 | - qcom,scm-sm8450 | |
191 | - qcom,scm-sm8550 | |
93743d24 | 192 | - qcom,scm-sm8650 |
53633a89 TR |
193 | then: |
194 | properties: | |
195 | interrupts: false | |
196 | ||
197 | required: | |
198 | - compatible | |
199 | ||
200 | additionalProperties: false | |
201 | ||
202 | examples: | |
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 | }; |