xref: /freebsd-src/sys/contrib/device-tree/Bindings/firmware/qcom,scm.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
17ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
27ef62cebSEmmanuel Vadot%YAML 1.2
37ef62cebSEmmanuel Vadot---
47ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/firmware/qcom,scm.yaml#
57ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
67ef62cebSEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: QCOM Secure Channel Manager (SCM)
87ef62cebSEmmanuel Vadot
97ef62cebSEmmanuel Vadotdescription: |
107ef62cebSEmmanuel Vadot  Qualcomm processors include an interface to communicate to the secure firmware.
117ef62cebSEmmanuel Vadot  This interface allows for clients to request different types of actions.
127ef62cebSEmmanuel Vadot  These can include CPU power up/down, HDCP requests, loading of firmware,
137ef62cebSEmmanuel Vadot  and other assorted actions.
147ef62cebSEmmanuel Vadot
157ef62cebSEmmanuel Vadotmaintainers:
167ef62cebSEmmanuel Vadot  - Bjorn Andersson <bjorn.andersson@linaro.org>
177ef62cebSEmmanuel Vadot  - Robert Marko <robimarko@gmail.com>
187ef62cebSEmmanuel Vadot  - Guru Das Srinagesh <quic_gurus@quicinc.com>
197ef62cebSEmmanuel Vadot
207ef62cebSEmmanuel Vadotproperties:
217ef62cebSEmmanuel Vadot  compatible:
227ef62cebSEmmanuel Vadot    items:
237ef62cebSEmmanuel Vadot      - enum:
247ef62cebSEmmanuel Vadot          - qcom,scm-apq8064
257ef62cebSEmmanuel Vadot          - qcom,scm-apq8084
267ef62cebSEmmanuel Vadot          - qcom,scm-ipq4019
2784943d6fSEmmanuel Vadot          - qcom,scm-ipq5018
28fac71e4eSEmmanuel Vadot          - qcom,scm-ipq5332
297ef62cebSEmmanuel Vadot          - qcom,scm-ipq6018
307ef62cebSEmmanuel Vadot          - qcom,scm-ipq806x
317ef62cebSEmmanuel Vadot          - qcom,scm-ipq8074
32fac71e4eSEmmanuel Vadot          - qcom,scm-ipq9574
337ef62cebSEmmanuel Vadot          - qcom,scm-mdm9607
347ef62cebSEmmanuel Vadot          - qcom,scm-msm8226
357ef62cebSEmmanuel Vadot          - qcom,scm-msm8660
367ef62cebSEmmanuel Vadot          - qcom,scm-msm8916
377ef62cebSEmmanuel Vadot          - qcom,scm-msm8953
387ef62cebSEmmanuel Vadot          - qcom,scm-msm8960
397ef62cebSEmmanuel Vadot          - qcom,scm-msm8974
407ef62cebSEmmanuel Vadot          - qcom,scm-msm8976
417ef62cebSEmmanuel Vadot          - qcom,scm-msm8994
427ef62cebSEmmanuel Vadot          - qcom,scm-msm8996
437ef62cebSEmmanuel Vadot          - qcom,scm-msm8998
44fac71e4eSEmmanuel Vadot          - qcom,scm-qcm2290
45cb7aa33aSEmmanuel Vadot          - qcom,scm-qdu1000
46cb7aa33aSEmmanuel Vadot          - qcom,scm-sa8775p
477ef62cebSEmmanuel Vadot          - qcom,scm-sc7180
487ef62cebSEmmanuel Vadot          - qcom,scm-sc7280
49fac71e4eSEmmanuel Vadot          - qcom,scm-sc8180x
507ef62cebSEmmanuel Vadot          - qcom,scm-sc8280xp
518bab661aSEmmanuel Vadot          - qcom,scm-sdm670
527ef62cebSEmmanuel Vadot          - qcom,scm-sdm845
537ef62cebSEmmanuel Vadot          - qcom,scm-sdx55
547ef62cebSEmmanuel Vadot          - qcom,scm-sdx65
55f126890aSEmmanuel Vadot          - qcom,scm-sdx75
567ef62cebSEmmanuel Vadot          - qcom,scm-sm6115
577ef62cebSEmmanuel Vadot          - qcom,scm-sm6125
587ef62cebSEmmanuel Vadot          - qcom,scm-sm6350
598bab661aSEmmanuel Vadot          - qcom,scm-sm6375
6084943d6fSEmmanuel Vadot          - qcom,scm-sm7150
617ef62cebSEmmanuel Vadot          - qcom,scm-sm8150
627ef62cebSEmmanuel Vadot          - qcom,scm-sm8250
637ef62cebSEmmanuel Vadot          - qcom,scm-sm8350
647ef62cebSEmmanuel Vadot          - qcom,scm-sm8450
65cb7aa33aSEmmanuel Vadot          - qcom,scm-sm8550
668d13bc63SEmmanuel Vadot          - qcom,scm-sm8650
677ef62cebSEmmanuel Vadot          - qcom,scm-qcs404
688d13bc63SEmmanuel Vadot          - qcom,scm-x1e80100
697ef62cebSEmmanuel Vadot      - const: qcom,scm
707ef62cebSEmmanuel Vadot
717ef62cebSEmmanuel Vadot  clocks:
727ef62cebSEmmanuel Vadot    minItems: 1
737ef62cebSEmmanuel Vadot    maxItems: 3
747ef62cebSEmmanuel Vadot
757ef62cebSEmmanuel Vadot  clock-names:
767ef62cebSEmmanuel Vadot    minItems: 1
777ef62cebSEmmanuel Vadot    maxItems: 3
787ef62cebSEmmanuel Vadot
79fac71e4eSEmmanuel Vadot  dma-coherent: true
80fac71e4eSEmmanuel Vadot
817ef62cebSEmmanuel Vadot  interconnects:
827ef62cebSEmmanuel Vadot    maxItems: 1
837ef62cebSEmmanuel Vadot
847ef62cebSEmmanuel Vadot  interconnect-names:
857ef62cebSEmmanuel Vadot    maxItems: 1
867ef62cebSEmmanuel Vadot
877ef62cebSEmmanuel Vadot  '#reset-cells':
887ef62cebSEmmanuel Vadot    const: 1
897ef62cebSEmmanuel Vadot
90cb7aa33aSEmmanuel Vadot  interrupts:
91cb7aa33aSEmmanuel Vadot    description:
92cb7aa33aSEmmanuel Vadot      The wait-queue interrupt that firmware raises as part of handshake
93cb7aa33aSEmmanuel Vadot      protocol to handle sleeping SCM calls.
94cb7aa33aSEmmanuel Vadot    maxItems: 1
95cb7aa33aSEmmanuel Vadot
96*0e8011faSEmmanuel Vadot  memory-region:
97*0e8011faSEmmanuel Vadot    description:
98*0e8011faSEmmanuel Vadot      Phandle to the memory region reserved for the shared memory bridge to TZ.
99*0e8011faSEmmanuel Vadot    maxItems: 1
100*0e8011faSEmmanuel Vadot
10184943d6fSEmmanuel Vadot  qcom,sdi-enabled:
10284943d6fSEmmanuel Vadot    description:
10384943d6fSEmmanuel Vadot      Indicates that the SDI (Secure Debug Image) has been enabled by TZ
10484943d6fSEmmanuel Vadot      by default and it needs to be disabled.
10584943d6fSEmmanuel Vadot      If not disabled WDT assertion or reboot will cause the board to hang
10684943d6fSEmmanuel Vadot      in the debug mode.
10784943d6fSEmmanuel Vadot    type: boolean
10884943d6fSEmmanuel Vadot
1097ef62cebSEmmanuel Vadot  qcom,dload-mode:
1107ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
1117ef62cebSEmmanuel Vadot    items:
1127ef62cebSEmmanuel Vadot      - items:
1137ef62cebSEmmanuel Vadot          - description: phandle to TCSR hardware block
1147ef62cebSEmmanuel Vadot          - description: offset of the download mode control register
1157ef62cebSEmmanuel Vadot    description: TCSR hardware block
1167ef62cebSEmmanuel Vadot
1177ef62cebSEmmanuel VadotallOf:
118cb7aa33aSEmmanuel Vadot  # Clocks
119cb7aa33aSEmmanuel Vadot  - if:
120cb7aa33aSEmmanuel Vadot      properties:
121cb7aa33aSEmmanuel Vadot        compatible:
122cb7aa33aSEmmanuel Vadot          contains:
123cb7aa33aSEmmanuel Vadot            enum:
124cb7aa33aSEmmanuel Vadot              - qcom,scm-apq8064
125cb7aa33aSEmmanuel Vadot              - qcom,scm-apq8084
126cb7aa33aSEmmanuel Vadot              - qcom,scm-mdm9607
127cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8226
128cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8660
129cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8916
130cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8953
131cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8960
132cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8974
133cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8976
134fac71e4eSEmmanuel Vadot              - qcom,scm-qcm2290
135cb7aa33aSEmmanuel Vadot              - qcom,scm-sm6375
136cb7aa33aSEmmanuel Vadot    then:
137cb7aa33aSEmmanuel Vadot      required:
138cb7aa33aSEmmanuel Vadot        - clocks
139cb7aa33aSEmmanuel Vadot        - clock-names
140cb7aa33aSEmmanuel Vadot    else:
141cb7aa33aSEmmanuel Vadot      properties:
142cb7aa33aSEmmanuel Vadot        clock-names: false
143cb7aa33aSEmmanuel Vadot        clocks: false
144cb7aa33aSEmmanuel Vadot
1457ef62cebSEmmanuel Vadot  - if:
1467ef62cebSEmmanuel Vadot      properties:
1477ef62cebSEmmanuel Vadot        compatible:
1487ef62cebSEmmanuel Vadot          contains:
1497ef62cebSEmmanuel Vadot            enum:
1507ef62cebSEmmanuel Vadot              - qcom,scm-apq8064
1517ef62cebSEmmanuel Vadot              - qcom,scm-msm8660
1527ef62cebSEmmanuel Vadot              - qcom,scm-msm8960
153fac71e4eSEmmanuel Vadot              - qcom,scm-qcm2290
1548bab661aSEmmanuel Vadot              - qcom,scm-sm6375
1557ef62cebSEmmanuel Vadot    then:
1567ef62cebSEmmanuel Vadot      properties:
1577ef62cebSEmmanuel Vadot        clock-names:
1587ef62cebSEmmanuel Vadot          items:
1597ef62cebSEmmanuel Vadot            - const: core
1607ef62cebSEmmanuel Vadot
1617ef62cebSEmmanuel Vadot        clocks:
1627ef62cebSEmmanuel Vadot          maxItems: 1
1637ef62cebSEmmanuel Vadot
1647ef62cebSEmmanuel Vadot  - if:
1657ef62cebSEmmanuel Vadot      properties:
1667ef62cebSEmmanuel Vadot        compatible:
1677ef62cebSEmmanuel Vadot          contains:
1687ef62cebSEmmanuel Vadot            enum:
1697ef62cebSEmmanuel Vadot              - qcom,scm-apq8084
1707ef62cebSEmmanuel Vadot              - qcom,scm-mdm9607
171cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8226
1727ef62cebSEmmanuel Vadot              - qcom,scm-msm8916
1737ef62cebSEmmanuel Vadot              - qcom,scm-msm8953
1747ef62cebSEmmanuel Vadot              - qcom,scm-msm8974
1757ef62cebSEmmanuel Vadot              - qcom,scm-msm8976
1767ef62cebSEmmanuel Vadot    then:
1777ef62cebSEmmanuel Vadot      properties:
1787ef62cebSEmmanuel Vadot        clock-names:
1797ef62cebSEmmanuel Vadot          items:
1807ef62cebSEmmanuel Vadot            - const: core
1817ef62cebSEmmanuel Vadot            - const: bus
1827ef62cebSEmmanuel Vadot            - const: iface
1837ef62cebSEmmanuel Vadot
1847ef62cebSEmmanuel Vadot        clocks:
1857ef62cebSEmmanuel Vadot          minItems: 3
1867ef62cebSEmmanuel Vadot          maxItems: 3
1877ef62cebSEmmanuel Vadot
188cb7aa33aSEmmanuel Vadot  # Interrupts
189cb7aa33aSEmmanuel Vadot  - if:
190cb7aa33aSEmmanuel Vadot      not:
191cb7aa33aSEmmanuel Vadot        properties:
192cb7aa33aSEmmanuel Vadot          compatible:
193cb7aa33aSEmmanuel Vadot            contains:
194cb7aa33aSEmmanuel Vadot              enum:
195cb7aa33aSEmmanuel Vadot                - qcom,scm-sm8450
196cb7aa33aSEmmanuel Vadot                - qcom,scm-sm8550
1978d13bc63SEmmanuel Vadot                - qcom,scm-sm8650
198cb7aa33aSEmmanuel Vadot    then:
199cb7aa33aSEmmanuel Vadot      properties:
200cb7aa33aSEmmanuel Vadot        interrupts: false
201*0e8011faSEmmanuel Vadot  - if:
202*0e8011faSEmmanuel Vadot      not:
203*0e8011faSEmmanuel Vadot        properties:
204*0e8011faSEmmanuel Vadot          compatible:
205*0e8011faSEmmanuel Vadot            contains:
206*0e8011faSEmmanuel Vadot              enum:
207*0e8011faSEmmanuel Vadot                - qcom,scm-sa8775p
208*0e8011faSEmmanuel Vadot    then:
209*0e8011faSEmmanuel Vadot      properties:
210*0e8011faSEmmanuel Vadot        memory-region: false
2117ef62cebSEmmanuel Vadot
2127ef62cebSEmmanuel Vadotrequired:
2137ef62cebSEmmanuel Vadot  - compatible
2147ef62cebSEmmanuel Vadot
2157ef62cebSEmmanuel VadotadditionalProperties: false
2167ef62cebSEmmanuel Vadot
2177ef62cebSEmmanuel Vadotexamples:
2187ef62cebSEmmanuel Vadot  - |
2197ef62cebSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
2207ef62cebSEmmanuel Vadot
2217ef62cebSEmmanuel Vadot    firmware {
2227ef62cebSEmmanuel Vadot        scm {
2237ef62cebSEmmanuel Vadot            compatible = "qcom,scm-msm8916", "qcom,scm";
2247ef62cebSEmmanuel Vadot            clocks = <&gcc GCC_CRYPTO_CLK>,
2257ef62cebSEmmanuel Vadot                     <&gcc GCC_CRYPTO_AXI_CLK>,
2267ef62cebSEmmanuel Vadot                     <&gcc GCC_CRYPTO_AHB_CLK>;
2277ef62cebSEmmanuel Vadot            clock-names = "core", "bus", "iface";
2287ef62cebSEmmanuel Vadot        };
2297ef62cebSEmmanuel Vadot    };
230