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