11c46589dSDavid Heidelberg# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
21c46589dSDavid Heidelberg%YAML 1.2
31c46589dSDavid Heidelberg---
41c46589dSDavid Heidelberg$id: http://devicetree.org/schemas/firmware/qcom,scm.yaml#
51c46589dSDavid Heidelberg$schema: http://devicetree.org/meta-schemas/core.yaml#
61c46589dSDavid Heidelberg
71c46589dSDavid Heidelbergtitle: QCOM Secure Channel Manager (SCM)
81c46589dSDavid Heidelberg
91c46589dSDavid Heidelbergdescription: |
101c46589dSDavid Heidelberg  Qualcomm processors include an interface to communicate to the secure firmware.
111c46589dSDavid Heidelberg  This interface allows for clients to request different types of actions.
121c46589dSDavid Heidelberg  These can include CPU power up/down, HDCP requests, loading of firmware,
131c46589dSDavid Heidelberg  and other assorted actions.
141c46589dSDavid Heidelberg
151c46589dSDavid Heidelbergmaintainers:
161c46589dSDavid Heidelberg  - Bjorn Andersson <bjorn.andersson@linaro.org>
171c46589dSDavid Heidelberg  - Robert Marko <robimarko@gmail.com>
181c46589dSDavid Heidelberg  - Guru Das Srinagesh <quic_gurus@quicinc.com>
191c46589dSDavid Heidelberg
201c46589dSDavid Heidelbergproperties:
211c46589dSDavid Heidelberg  compatible:
221c46589dSDavid Heidelberg    items:
231c46589dSDavid Heidelberg      - enum:
241c46589dSDavid Heidelberg          - qcom,scm-apq8064
251c46589dSDavid Heidelberg          - qcom,scm-apq8084
261c46589dSDavid Heidelberg          - qcom,scm-ipq4019
271c46589dSDavid Heidelberg          - qcom,scm-ipq6018
281c46589dSDavid Heidelberg          - qcom,scm-ipq806x
291c46589dSDavid Heidelberg          - qcom,scm-ipq8074
301c46589dSDavid Heidelberg          - qcom,scm-mdm9607
311c46589dSDavid Heidelberg          - qcom,scm-msm8226
321c46589dSDavid Heidelberg          - qcom,scm-msm8660
331c46589dSDavid Heidelberg          - qcom,scm-msm8916
341c46589dSDavid Heidelberg          - qcom,scm-msm8953
351c46589dSDavid Heidelberg          - qcom,scm-msm8960
361c46589dSDavid Heidelberg          - qcom,scm-msm8974
371c46589dSDavid Heidelberg          - qcom,scm-msm8976
381c46589dSDavid Heidelberg          - qcom,scm-msm8994
391c46589dSDavid Heidelberg          - qcom,scm-msm8996
401c46589dSDavid Heidelberg          - qcom,scm-msm8998
411c46589dSDavid Heidelberg          - qcom,scm-sc7180
421c46589dSDavid Heidelberg          - qcom,scm-sc7280
431c46589dSDavid Heidelberg          - qcom,scm-sc8280xp
44aa9f4740SRichard Acayan          - qcom,scm-sdm670
451c46589dSDavid Heidelberg          - qcom,scm-sdm845
461c46589dSDavid Heidelberg          - qcom,scm-sdx55
471c46589dSDavid Heidelberg          - qcom,scm-sdx65
48f2567b73SAdam Skladowski          - qcom,scm-sm6115
491c46589dSDavid Heidelberg          - qcom,scm-sm6125
501c46589dSDavid Heidelberg          - qcom,scm-sm6350
51fa2d6ed1SKonrad Dybcio          - qcom,scm-sm6375
521c46589dSDavid Heidelberg          - qcom,scm-sm8150
531c46589dSDavid Heidelberg          - qcom,scm-sm8250
541c46589dSDavid Heidelberg          - qcom,scm-sm8350
551c46589dSDavid Heidelberg          - qcom,scm-sm8450
561c46589dSDavid Heidelberg          - qcom,scm-qcs404
571c46589dSDavid Heidelberg      - const: qcom,scm
581c46589dSDavid Heidelberg
591c46589dSDavid Heidelberg  clocks:
601c46589dSDavid Heidelberg    minItems: 1
611c46589dSDavid Heidelberg    maxItems: 3
621c46589dSDavid Heidelberg
631c46589dSDavid Heidelberg  clock-names:
641c46589dSDavid Heidelberg    minItems: 1
651c46589dSDavid Heidelberg    maxItems: 3
661c46589dSDavid Heidelberg
671c46589dSDavid Heidelberg  interconnects:
681c46589dSDavid Heidelberg    maxItems: 1
691c46589dSDavid Heidelberg
701c46589dSDavid Heidelberg  interconnect-names:
711c46589dSDavid Heidelberg    maxItems: 1
721c46589dSDavid Heidelberg
731c46589dSDavid Heidelberg  '#reset-cells':
741c46589dSDavid Heidelberg    const: 1
751c46589dSDavid Heidelberg
761c46589dSDavid Heidelberg  qcom,dload-mode:
771c46589dSDavid Heidelberg    $ref: /schemas/types.yaml#/definitions/phandle-array
781c46589dSDavid Heidelberg    items:
791c46589dSDavid Heidelberg      - items:
801c46589dSDavid Heidelberg          - description: phandle to TCSR hardware block
811c46589dSDavid Heidelberg          - description: offset of the download mode control register
821c46589dSDavid Heidelberg    description: TCSR hardware block
831c46589dSDavid Heidelberg
841c46589dSDavid HeidelbergallOf:
851c46589dSDavid Heidelberg  - if:
861c46589dSDavid Heidelberg      properties:
871c46589dSDavid Heidelberg        compatible:
881c46589dSDavid Heidelberg          contains:
891c46589dSDavid Heidelberg            enum:
901c46589dSDavid Heidelberg              - qcom,scm-apq8064
911c46589dSDavid Heidelberg              - qcom,scm-msm8660
921c46589dSDavid Heidelberg              - qcom,scm-msm8960
93fa2d6ed1SKonrad Dybcio              - qcom,scm-sm6375
941c46589dSDavid Heidelberg    then:
951c46589dSDavid Heidelberg      properties:
961c46589dSDavid Heidelberg        clock-names:
971c46589dSDavid Heidelberg          items:
981c46589dSDavid Heidelberg            - const: core
991c46589dSDavid Heidelberg
1001c46589dSDavid Heidelberg        clocks:
1011c46589dSDavid Heidelberg          maxItems: 1
1021c46589dSDavid Heidelberg
1031c46589dSDavid Heidelberg      required:
1041c46589dSDavid Heidelberg        - clocks
1051c46589dSDavid Heidelberg        - clock-names
1061c46589dSDavid Heidelberg
1071c46589dSDavid Heidelberg  - if:
1081c46589dSDavid Heidelberg      properties:
1091c46589dSDavid Heidelberg        compatible:
1101c46589dSDavid Heidelberg          contains:
1111c46589dSDavid Heidelberg            enum:
1121c46589dSDavid Heidelberg              - qcom,scm-apq8084
1131c46589dSDavid Heidelberg              - qcom,scm-mdm9607
114*8f3945a9SKrzysztof Kozlowski              - qcom,scm-msm8226
1151c46589dSDavid Heidelberg              - qcom,scm-msm8916
1161c46589dSDavid Heidelberg              - qcom,scm-msm8953
1171c46589dSDavid Heidelberg              - qcom,scm-msm8974
1181c46589dSDavid Heidelberg              - qcom,scm-msm8976
1191c46589dSDavid Heidelberg    then:
1201c46589dSDavid Heidelberg      properties:
1211c46589dSDavid Heidelberg        clock-names:
1221c46589dSDavid Heidelberg          items:
1231c46589dSDavid Heidelberg            - const: core
1241c46589dSDavid Heidelberg            - const: bus
1251c46589dSDavid Heidelberg            - const: iface
1261c46589dSDavid Heidelberg
1271c46589dSDavid Heidelberg        clocks:
1281c46589dSDavid Heidelberg          minItems: 3
1291c46589dSDavid Heidelberg          maxItems: 3
1301c46589dSDavid Heidelberg
1311c46589dSDavid Heidelberg      required:
1321c46589dSDavid Heidelberg        - clocks
1331c46589dSDavid Heidelberg        - clock-names
1341c46589dSDavid Heidelberg
1351c46589dSDavid Heidelbergrequired:
1361c46589dSDavid Heidelberg  - compatible
1371c46589dSDavid Heidelberg
1381c46589dSDavid HeidelbergadditionalProperties: false
1391c46589dSDavid Heidelberg
1401c46589dSDavid Heidelbergexamples:
1411c46589dSDavid Heidelberg  - |
1421c46589dSDavid Heidelberg    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
1431c46589dSDavid Heidelberg
1441c46589dSDavid Heidelberg    firmware {
1451c46589dSDavid Heidelberg        scm {
1461c46589dSDavid Heidelberg            compatible = "qcom,scm-msm8916", "qcom,scm";
1471c46589dSDavid Heidelberg            clocks = <&gcc GCC_CRYPTO_CLK>,
1481c46589dSDavid Heidelberg                     <&gcc GCC_CRYPTO_AXI_CLK>,
1491c46589dSDavid Heidelberg                     <&gcc GCC_CRYPTO_AHB_CLK>;
1501c46589dSDavid Heidelberg            clock-names = "core", "bus", "iface";
1511c46589dSDavid Heidelberg        };
1521c46589dSDavid Heidelberg    };
153