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
279e4a7652SKathiravan T          - qcom,scm-ipq5332
281c46589dSDavid Heidelberg          - qcom,scm-ipq6018
291c46589dSDavid Heidelberg          - qcom,scm-ipq806x
301c46589dSDavid Heidelberg          - qcom,scm-ipq8074
3181ac3914SPoovendhan Selvaraj          - qcom,scm-ipq9574
321c46589dSDavid Heidelberg          - qcom,scm-mdm9607
331c46589dSDavid Heidelberg          - qcom,scm-msm8226
341c46589dSDavid Heidelberg          - qcom,scm-msm8660
351c46589dSDavid Heidelberg          - qcom,scm-msm8916
361c46589dSDavid Heidelberg          - qcom,scm-msm8953
371c46589dSDavid Heidelberg          - qcom,scm-msm8960
381c46589dSDavid Heidelberg          - qcom,scm-msm8974
391c46589dSDavid Heidelberg          - qcom,scm-msm8976
401c46589dSDavid Heidelberg          - qcom,scm-msm8994
411c46589dSDavid Heidelberg          - qcom,scm-msm8996
421c46589dSDavid Heidelberg          - qcom,scm-msm8998
431ad3efe5SKonrad Dybcio          - qcom,scm-qcm2290
445b8db5b4SMelody Olvera          - qcom,scm-qdu1000
4527d71e80SBartosz Golaszewski          - qcom,scm-sa8775p
461c46589dSDavid Heidelberg          - qcom,scm-sc7180
471c46589dSDavid Heidelberg          - qcom,scm-sc7280
48c78ad859SVinod Koul          - qcom,scm-sc8180x
491c46589dSDavid Heidelberg          - qcom,scm-sc8280xp
50aa9f4740SRichard Acayan          - qcom,scm-sdm670
511c46589dSDavid Heidelberg          - qcom,scm-sdm845
521c46589dSDavid Heidelberg          - qcom,scm-sdx55
531c46589dSDavid Heidelberg          - qcom,scm-sdx65
54677b9e85SRohit Agarwal          - qcom,scm-sdx75
55f2567b73SAdam Skladowski          - qcom,scm-sm6115
561c46589dSDavid Heidelberg          - qcom,scm-sm6125
571c46589dSDavid Heidelberg          - qcom,scm-sm6350
58fa2d6ed1SKonrad Dybcio          - qcom,scm-sm6375
591c46589dSDavid Heidelberg          - qcom,scm-sm8150
601c46589dSDavid Heidelberg          - qcom,scm-sm8250
611c46589dSDavid Heidelberg          - qcom,scm-sm8350
621c46589dSDavid Heidelberg          - qcom,scm-sm8450
63b9fd3353SAbel Vesa          - qcom,scm-sm8550
641c46589dSDavid Heidelberg          - qcom,scm-qcs404
651c46589dSDavid Heidelberg      - const: qcom,scm
661c46589dSDavid Heidelberg
671c46589dSDavid Heidelberg  clocks:
681c46589dSDavid Heidelberg    minItems: 1
691c46589dSDavid Heidelberg    maxItems: 3
701c46589dSDavid Heidelberg
711c46589dSDavid Heidelberg  clock-names:
721c46589dSDavid Heidelberg    minItems: 1
731c46589dSDavid Heidelberg    maxItems: 3
741c46589dSDavid Heidelberg
75c0877829SDouglas Anderson  dma-coherent: true
76c0877829SDouglas Anderson
771c46589dSDavid Heidelberg  interconnects:
781c46589dSDavid Heidelberg    maxItems: 1
791c46589dSDavid Heidelberg
801c46589dSDavid Heidelberg  interconnect-names:
811c46589dSDavid Heidelberg    maxItems: 1
821c46589dSDavid Heidelberg
831c46589dSDavid Heidelberg  '#reset-cells':
841c46589dSDavid Heidelberg    const: 1
851c46589dSDavid Heidelberg
86afb37e25SGuru Das Srinagesh  interrupts:
87afb37e25SGuru Das Srinagesh    description:
88afb37e25SGuru Das Srinagesh      The wait-queue interrupt that firmware raises as part of handshake
89afb37e25SGuru Das Srinagesh      protocol to handle sleeping SCM calls.
90afb37e25SGuru Das Srinagesh    maxItems: 1
91afb37e25SGuru Das Srinagesh
921c46589dSDavid Heidelberg  qcom,dload-mode:
931c46589dSDavid Heidelberg    $ref: /schemas/types.yaml#/definitions/phandle-array
941c46589dSDavid Heidelberg    items:
951c46589dSDavid Heidelberg      - items:
961c46589dSDavid Heidelberg          - description: phandle to TCSR hardware block
971c46589dSDavid Heidelberg          - description: offset of the download mode control register
981c46589dSDavid Heidelberg    description: TCSR hardware block
991c46589dSDavid Heidelberg
1001c46589dSDavid HeidelbergallOf:
101c5b8840cSKrzysztof Kozlowski  # Clocks
102c5b8840cSKrzysztof Kozlowski  - if:
103c5b8840cSKrzysztof Kozlowski      properties:
104c5b8840cSKrzysztof Kozlowski        compatible:
105c5b8840cSKrzysztof Kozlowski          contains:
106c5b8840cSKrzysztof Kozlowski            enum:
107c5b8840cSKrzysztof Kozlowski              - qcom,scm-apq8064
108c5b8840cSKrzysztof Kozlowski              - qcom,scm-apq8084
109c5b8840cSKrzysztof Kozlowski              - qcom,scm-mdm9607
110c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8226
111c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8660
112c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8916
113c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8953
114c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8960
115c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8974
116c5b8840cSKrzysztof Kozlowski              - qcom,scm-msm8976
1171ad3efe5SKonrad Dybcio              - qcom,scm-qcm2290
118c5b8840cSKrzysztof Kozlowski              - qcom,scm-sm6375
119c5b8840cSKrzysztof Kozlowski    then:
120c5b8840cSKrzysztof Kozlowski      required:
121c5b8840cSKrzysztof Kozlowski        - clocks
122c5b8840cSKrzysztof Kozlowski        - clock-names
123c5b8840cSKrzysztof Kozlowski    else:
124c5b8840cSKrzysztof Kozlowski      properties:
125c5b8840cSKrzysztof Kozlowski        clock-names: false
126c5b8840cSKrzysztof Kozlowski        clocks: false
127c5b8840cSKrzysztof Kozlowski
1281c46589dSDavid Heidelberg  - if:
1291c46589dSDavid Heidelberg      properties:
1301c46589dSDavid Heidelberg        compatible:
1311c46589dSDavid Heidelberg          contains:
1321c46589dSDavid Heidelberg            enum:
1331c46589dSDavid Heidelberg              - qcom,scm-apq8064
1341c46589dSDavid Heidelberg              - qcom,scm-msm8660
1351c46589dSDavid Heidelberg              - qcom,scm-msm8960
1361ad3efe5SKonrad Dybcio              - qcom,scm-qcm2290
137fa2d6ed1SKonrad Dybcio              - qcom,scm-sm6375
1381c46589dSDavid Heidelberg    then:
1391c46589dSDavid Heidelberg      properties:
1401c46589dSDavid Heidelberg        clock-names:
1411c46589dSDavid Heidelberg          items:
1421c46589dSDavid Heidelberg            - const: core
1431c46589dSDavid Heidelberg
1441c46589dSDavid Heidelberg        clocks:
1451c46589dSDavid Heidelberg          maxItems: 1
1461c46589dSDavid Heidelberg
1471c46589dSDavid Heidelberg  - if:
1481c46589dSDavid Heidelberg      properties:
1491c46589dSDavid Heidelberg        compatible:
1501c46589dSDavid Heidelberg          contains:
1511c46589dSDavid Heidelberg            enum:
1521c46589dSDavid Heidelberg              - qcom,scm-apq8084
1531c46589dSDavid Heidelberg              - qcom,scm-mdm9607
1548f3945a9SKrzysztof Kozlowski              - qcom,scm-msm8226
1551c46589dSDavid Heidelberg              - qcom,scm-msm8916
1561c46589dSDavid Heidelberg              - qcom,scm-msm8953
1571c46589dSDavid Heidelberg              - qcom,scm-msm8974
1581c46589dSDavid Heidelberg              - qcom,scm-msm8976
1591c46589dSDavid Heidelberg    then:
1601c46589dSDavid Heidelberg      properties:
1611c46589dSDavid Heidelberg        clock-names:
1621c46589dSDavid Heidelberg          items:
1631c46589dSDavid Heidelberg            - const: core
1641c46589dSDavid Heidelberg            - const: bus
1651c46589dSDavid Heidelberg            - const: iface
1661c46589dSDavid Heidelberg
1671c46589dSDavid Heidelberg        clocks:
1681c46589dSDavid Heidelberg          minItems: 3
1691c46589dSDavid Heidelberg          maxItems: 3
1701c46589dSDavid Heidelberg
171c5b8840cSKrzysztof Kozlowski  # Interconnects
172c5b8840cSKrzysztof Kozlowski  - if:
173c5b8840cSKrzysztof Kozlowski      not:
174c5b8840cSKrzysztof Kozlowski        properties:
175c5b8840cSKrzysztof Kozlowski          compatible:
176c5b8840cSKrzysztof Kozlowski            contains:
177c5b8840cSKrzysztof Kozlowski              enum:
178bbf97c27SMelody Olvera                - qcom,scm-qdu1000
179*412bf52dSKonrad Dybcio                - qcom,scm-sc8280xp
180c5b8840cSKrzysztof Kozlowski                - qcom,scm-sm8450
181b9fd3353SAbel Vesa                - qcom,scm-sm8550
182c5b8840cSKrzysztof Kozlowski    then:
183c5b8840cSKrzysztof Kozlowski      properties:
184c5b8840cSKrzysztof Kozlowski        interconnects: false
1851c46589dSDavid Heidelberg
186afb37e25SGuru Das Srinagesh  # Interrupts
187afb37e25SGuru Das Srinagesh  - if:
188afb37e25SGuru Das Srinagesh      not:
189afb37e25SGuru Das Srinagesh        properties:
190afb37e25SGuru Das Srinagesh          compatible:
191afb37e25SGuru Das Srinagesh            contains:
192afb37e25SGuru Das Srinagesh              enum:
193afb37e25SGuru Das Srinagesh                - qcom,scm-sm8450
194b9fd3353SAbel Vesa                - qcom,scm-sm8550
195afb37e25SGuru Das Srinagesh    then:
196afb37e25SGuru Das Srinagesh      properties:
197afb37e25SGuru Das Srinagesh        interrupts: false
198afb37e25SGuru Das Srinagesh
1991c46589dSDavid Heidelbergrequired:
2001c46589dSDavid Heidelberg  - compatible
2011c46589dSDavid Heidelberg
2021c46589dSDavid HeidelbergadditionalProperties: false
2031c46589dSDavid Heidelberg
2041c46589dSDavid Heidelbergexamples:
2051c46589dSDavid Heidelberg  - |
2061c46589dSDavid Heidelberg    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
2071c46589dSDavid Heidelberg
2081c46589dSDavid Heidelberg    firmware {
2091c46589dSDavid Heidelberg        scm {
2101c46589dSDavid Heidelberg            compatible = "qcom,scm-msm8916", "qcom,scm";
2111c46589dSDavid Heidelberg            clocks = <&gcc GCC_CRYPTO_CLK>,
2121c46589dSDavid Heidelberg                     <&gcc GCC_CRYPTO_AXI_CLK>,
2131c46589dSDavid Heidelberg                     <&gcc GCC_CRYPTO_AHB_CLK>;
2141c46589dSDavid Heidelberg            clock-names = "core", "bus", "iface";
2151c46589dSDavid Heidelberg        };
2161c46589dSDavid Heidelberg    };
217