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
41*5b8db5b4SMelody Olvera          - qcom,scm-qdu1000
421c46589dSDavid Heidelberg          - qcom,scm-sc7180
431c46589dSDavid Heidelberg          - qcom,scm-sc7280
441c46589dSDavid Heidelberg          - qcom,scm-sc8280xp
45aa9f4740SRichard Acayan          - qcom,scm-sdm670
461c46589dSDavid Heidelberg          - qcom,scm-sdm845
471c46589dSDavid Heidelberg          - qcom,scm-sdx55
481c46589dSDavid Heidelberg          - qcom,scm-sdx65
49f2567b73SAdam Skladowski          - qcom,scm-sm6115
501c46589dSDavid Heidelberg          - qcom,scm-sm6125
511c46589dSDavid Heidelberg          - qcom,scm-sm6350
52fa2d6ed1SKonrad Dybcio          - qcom,scm-sm6375
531c46589dSDavid Heidelberg          - qcom,scm-sm8150
541c46589dSDavid Heidelberg          - qcom,scm-sm8250
551c46589dSDavid Heidelberg          - qcom,scm-sm8350
561c46589dSDavid Heidelberg          - qcom,scm-sm8450
571c46589dSDavid Heidelberg          - qcom,scm-qcs404
581c46589dSDavid Heidelberg      - const: qcom,scm
591c46589dSDavid Heidelberg
601c46589dSDavid Heidelberg  clocks:
611c46589dSDavid Heidelberg    minItems: 1
621c46589dSDavid Heidelberg    maxItems: 3
631c46589dSDavid Heidelberg
641c46589dSDavid Heidelberg  clock-names:
651c46589dSDavid Heidelberg    minItems: 1
661c46589dSDavid Heidelberg    maxItems: 3
671c46589dSDavid Heidelberg
681c46589dSDavid Heidelberg  interconnects:
691c46589dSDavid Heidelberg    maxItems: 1
701c46589dSDavid Heidelberg
711c46589dSDavid Heidelberg  interconnect-names:
721c46589dSDavid Heidelberg    maxItems: 1
731c46589dSDavid Heidelberg
741c46589dSDavid Heidelberg  '#reset-cells':
751c46589dSDavid Heidelberg    const: 1
761c46589dSDavid Heidelberg
771c46589dSDavid Heidelberg  qcom,dload-mode:
781c46589dSDavid Heidelberg    $ref: /schemas/types.yaml#/definitions/phandle-array
791c46589dSDavid Heidelberg    items:
801c46589dSDavid Heidelberg      - items:
811c46589dSDavid Heidelberg          - description: phandle to TCSR hardware block
821c46589dSDavid Heidelberg          - description: offset of the download mode control register
831c46589dSDavid Heidelberg    description: TCSR hardware block
841c46589dSDavid Heidelberg
851c46589dSDavid HeidelbergallOf:
86c5b8840cSKrzysztof Kozlowski  # Clocks
87c5b8840cSKrzysztof Kozlowski  - if:
88c5b8840cSKrzysztof Kozlowski      properties:
89c5b8840cSKrzysztof Kozlowski        compatible:
90c5b8840cSKrzysztof Kozlowski          contains:
91c5b8840cSKrzysztof Kozlowski            enum:
92c5b8840cSKrzysztof Kozlowski              - qcom,scm-apq8064
93c5b8840cSKrzysztof Kozlowski              - qcom,scm-apq8084
94c5b8840cSKrzysztof Kozlowski              - qcom,scm-mdm9607
95c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8226
96c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8660
97c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8916
98c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8953
99c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8960
100c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8974
101c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8976
102c5b8840cSKrzysztof Kozlowski              - qcom,scm-sm6375
103c5b8840cSKrzysztof Kozlowski    then:
104c5b8840cSKrzysztof Kozlowski      required:
105c5b8840cSKrzysztof Kozlowski        - clocks
106c5b8840cSKrzysztof Kozlowski        - clock-names
107c5b8840cSKrzysztof Kozlowski    else:
108c5b8840cSKrzysztof Kozlowski      properties:
109c5b8840cSKrzysztof Kozlowski        clock-names: false
110c5b8840cSKrzysztof Kozlowski        clocks: false
111c5b8840cSKrzysztof Kozlowski
1121c46589dSDavid Heidelberg  - if:
1131c46589dSDavid Heidelberg      properties:
1141c46589dSDavid Heidelberg        compatible:
1151c46589dSDavid Heidelberg          contains:
1161c46589dSDavid Heidelberg            enum:
1171c46589dSDavid Heidelberg              - qcom,scm-apq8064
1181c46589dSDavid Heidelberg              - qcom,scm-msm8660
1191c46589dSDavid Heidelberg              - qcom,scm-msm8960
120fa2d6ed1SKonrad Dybcio              - qcom,scm-sm6375
1211c46589dSDavid Heidelberg    then:
1221c46589dSDavid Heidelberg      properties:
1231c46589dSDavid Heidelberg        clock-names:
1241c46589dSDavid Heidelberg          items:
1251c46589dSDavid Heidelberg            - const: core
1261c46589dSDavid Heidelberg
1271c46589dSDavid Heidelberg        clocks:
1281c46589dSDavid Heidelberg          maxItems: 1
1291c46589dSDavid Heidelberg
1301c46589dSDavid Heidelberg  - if:
1311c46589dSDavid Heidelberg      properties:
1321c46589dSDavid Heidelberg        compatible:
1331c46589dSDavid Heidelberg          contains:
1341c46589dSDavid Heidelberg            enum:
1351c46589dSDavid Heidelberg              - qcom,scm-apq8084
1361c46589dSDavid Heidelberg              - qcom,scm-mdm9607
1378f3945a9SKrzysztof Kozlowski              - qcom,scm-msm8226
1381c46589dSDavid Heidelberg              - qcom,scm-msm8916
1391c46589dSDavid Heidelberg              - qcom,scm-msm8953
1401c46589dSDavid Heidelberg              - qcom,scm-msm8974
1411c46589dSDavid Heidelberg              - qcom,scm-msm8976
1421c46589dSDavid Heidelberg    then:
1431c46589dSDavid Heidelberg      properties:
1441c46589dSDavid Heidelberg        clock-names:
1451c46589dSDavid Heidelberg          items:
1461c46589dSDavid Heidelberg            - const: core
1471c46589dSDavid Heidelberg            - const: bus
1481c46589dSDavid Heidelberg            - const: iface
1491c46589dSDavid Heidelberg
1501c46589dSDavid Heidelberg        clocks:
1511c46589dSDavid Heidelberg          minItems: 3
1521c46589dSDavid Heidelberg          maxItems: 3
1531c46589dSDavid Heidelberg
154c5b8840cSKrzysztof Kozlowski  # Interconnects
155c5b8840cSKrzysztof Kozlowski  - if:
156c5b8840cSKrzysztof Kozlowski      not:
157c5b8840cSKrzysztof Kozlowski        properties:
158c5b8840cSKrzysztof Kozlowski          compatible:
159c5b8840cSKrzysztof Kozlowski            contains:
160c5b8840cSKrzysztof Kozlowski              enum:
161c5b8840cSKrzysztof Kozlowski                - qcom,scm-sm8450
162c5b8840cSKrzysztof Kozlowski    then:
163c5b8840cSKrzysztof Kozlowski      properties:
164c5b8840cSKrzysztof Kozlowski        interconnects: false
1651c46589dSDavid Heidelberg
1661c46589dSDavid Heidelbergrequired:
1671c46589dSDavid Heidelberg  - compatible
1681c46589dSDavid Heidelberg
1691c46589dSDavid HeidelbergadditionalProperties: false
1701c46589dSDavid Heidelberg
1711c46589dSDavid Heidelbergexamples:
1721c46589dSDavid Heidelberg  - |
1731c46589dSDavid Heidelberg    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
1741c46589dSDavid Heidelberg
1751c46589dSDavid Heidelberg    firmware {
1761c46589dSDavid Heidelberg        scm {
1771c46589dSDavid Heidelberg            compatible = "qcom,scm-msm8916", "qcom,scm";
1781c46589dSDavid Heidelberg            clocks = <&gcc GCC_CRYPTO_CLK>,
1791c46589dSDavid Heidelberg                     <&gcc GCC_CRYPTO_AXI_CLK>,
1801c46589dSDavid Heidelberg                     <&gcc GCC_CRYPTO_AHB_CLK>;
1811c46589dSDavid Heidelberg            clock-names = "core", "bus", "iface";
1821c46589dSDavid Heidelberg        };
1831c46589dSDavid Heidelberg    };
184