File Index
Files and directories
Sign in
FILE

qcom,scm.yaml

File preview with syntax highlighting.

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