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