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