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-ipq6018 28 - qcom,scm-ipq806x 29 - qcom,scm-ipq8074 30 - qcom,scm-mdm9607 31 - qcom,scm-msm8226 32 - qcom,scm-msm8660 33 - qcom,scm-msm8916 34 - qcom,scm-msm8953 35 - qcom,scm-msm8960 36 - qcom,scm-msm8974 37 - qcom,scm-msm8976 38 - qcom,scm-msm8994 39 - qcom,scm-msm8996 40 - qcom,scm-msm8998 41 - qcom,scm-qdu1000 42 - qcom,scm-sa8775p 43 - qcom,scm-sc7180 44 - qcom,scm-sc7280 45 - qcom,scm-sc8280xp 46 - qcom,scm-sdm670 47 - qcom,scm-sdm845 48 - qcom,scm-sdx55 49 - qcom,scm-sdx65 50 - qcom,scm-sm6115 51 - qcom,scm-sm6125 52 - qcom,scm-sm6350 53 - qcom,scm-sm6375 54 - qcom,scm-sm8150 55 - qcom,scm-sm8250 56 - qcom,scm-sm8350 57 - qcom,scm-sm8450 58 - qcom,scm-sm8550 59 - qcom,scm-qcs404 60 - const: qcom,scm 61 62 clocks: 63 minItems: 1 64 maxItems: 3 65 66 clock-names: 67 minItems: 1 68 maxItems: 3 69 70 interconnects: 71 maxItems: 1 72 73 interconnect-names: 74 maxItems: 1 75 76 '#reset-cells': 77 const: 1 78 79 interrupts: 80 description: 81 The wait-queue interrupt that firmware raises as part of handshake 82 protocol to handle sleeping SCM calls. 83 maxItems: 1 84 85 qcom,dload-mode: 86 $ref: /schemas/types.yaml#/definitions/phandle-array 87 items: 88 - items: 89 - description: phandle to TCSR hardware block 90 - description: offset of the download mode control register 91 description: TCSR hardware block 92 93allOf: 94 # Clocks 95 - if: 96 properties: 97 compatible: 98 contains: 99 enum: 100 - qcom,scm-apq8064 101 - qcom,scm-apq8084 102 - qcom,scm-mdm9607 103 - qcom,scm-msm8226 104 - qcom,scm-msm8660 105 - qcom,scm-msm8916 106 - qcom,scm-msm8953 107 - qcom,scm-msm8960 108 - qcom,scm-msm8974 109 - qcom,scm-msm8976 110 - qcom,scm-sm6375 111 then: 112 required: 113 - clocks 114 - clock-names 115 else: 116 properties: 117 clock-names: false 118 clocks: false 119 120 - if: 121 properties: 122 compatible: 123 contains: 124 enum: 125 - qcom,scm-apq8064 126 - qcom,scm-msm8660 127 - qcom,scm-msm8960 128 - qcom,scm-sm6375 129 then: 130 properties: 131 clock-names: 132 items: 133 - const: core 134 135 clocks: 136 maxItems: 1 137 138 - if: 139 properties: 140 compatible: 141 contains: 142 enum: 143 - qcom,scm-apq8084 144 - qcom,scm-mdm9607 145 - qcom,scm-msm8226 146 - qcom,scm-msm8916 147 - qcom,scm-msm8953 148 - qcom,scm-msm8974 149 - qcom,scm-msm8976 150 then: 151 properties: 152 clock-names: 153 items: 154 - const: core 155 - const: bus 156 - const: iface 157 158 clocks: 159 minItems: 3 160 maxItems: 3 161 162 # Interconnects 163 - if: 164 not: 165 properties: 166 compatible: 167 contains: 168 enum: 169 - qcom,scm-sm8450 170 - qcom,scm-sm8550 171 then: 172 properties: 173 interconnects: false 174 175 # Interrupts 176 - if: 177 not: 178 properties: 179 compatible: 180 contains: 181 enum: 182 - qcom,scm-sm8450 183 - qcom,scm-sm8550 184 then: 185 properties: 186 interrupts: false 187 188required: 189 - compatible 190 191additionalProperties: false 192 193examples: 194 - | 195 #include <dt-bindings/clock/qcom,gcc-msm8916.h> 196 197 firmware { 198 scm { 199 compatible = "qcom,scm-msm8916", "qcom,scm"; 200 clocks = <&gcc GCC_CRYPTO_CLK>, 201 <&gcc GCC_CRYPTO_AXI_CLK>, 202 <&gcc GCC_CRYPTO_AHB_CLK>; 203 clock-names = "core", "bus", "iface"; 204 }; 205 }; 206