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