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 }; 246