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