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