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