xref: /freebsd/sys/contrib/device-tree/Bindings/firmware/qcom,scm.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
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
66*8d13bc63SEmmanuel Vadot          - qcom,scm-sm8650
677ef62cebSEmmanuel Vadot          - qcom,scm-qcs404
68*8d13bc63SEmmanuel 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
9684943d6fSEmmanuel Vadot  qcom,sdi-enabled:
9784943d6fSEmmanuel Vadot    description:
9884943d6fSEmmanuel Vadot      Indicates that the SDI (Secure Debug Image) has been enabled by TZ
9984943d6fSEmmanuel Vadot      by default and it needs to be disabled.
10084943d6fSEmmanuel Vadot      If not disabled WDT assertion or reboot will cause the board to hang
10184943d6fSEmmanuel Vadot      in the debug mode.
10284943d6fSEmmanuel Vadot    type: boolean
10384943d6fSEmmanuel Vadot
1047ef62cebSEmmanuel Vadot  qcom,dload-mode:
1057ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
1067ef62cebSEmmanuel Vadot    items:
1077ef62cebSEmmanuel Vadot      - items:
1087ef62cebSEmmanuel Vadot          - description: phandle to TCSR hardware block
1097ef62cebSEmmanuel Vadot          - description: offset of the download mode control register
1107ef62cebSEmmanuel Vadot    description: TCSR hardware block
1117ef62cebSEmmanuel Vadot
1127ef62cebSEmmanuel VadotallOf:
113cb7aa33aSEmmanuel Vadot  # Clocks
114cb7aa33aSEmmanuel Vadot  - if:
115cb7aa33aSEmmanuel Vadot      properties:
116cb7aa33aSEmmanuel Vadot        compatible:
117cb7aa33aSEmmanuel Vadot          contains:
118cb7aa33aSEmmanuel Vadot            enum:
119cb7aa33aSEmmanuel Vadot              - qcom,scm-apq8064
120cb7aa33aSEmmanuel Vadot              - qcom,scm-apq8084
121cb7aa33aSEmmanuel Vadot              - qcom,scm-mdm9607
122cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8226
123cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8660
124cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8916
125cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8953
126cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8960
127cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8974
128cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8976
129fac71e4eSEmmanuel Vadot              - qcom,scm-qcm2290
130cb7aa33aSEmmanuel Vadot              - qcom,scm-sm6375
131cb7aa33aSEmmanuel Vadot    then:
132cb7aa33aSEmmanuel Vadot      required:
133cb7aa33aSEmmanuel Vadot        - clocks
134cb7aa33aSEmmanuel Vadot        - clock-names
135cb7aa33aSEmmanuel Vadot    else:
136cb7aa33aSEmmanuel Vadot      properties:
137cb7aa33aSEmmanuel Vadot        clock-names: false
138cb7aa33aSEmmanuel Vadot        clocks: false
139cb7aa33aSEmmanuel Vadot
1407ef62cebSEmmanuel Vadot  - if:
1417ef62cebSEmmanuel Vadot      properties:
1427ef62cebSEmmanuel Vadot        compatible:
1437ef62cebSEmmanuel Vadot          contains:
1447ef62cebSEmmanuel Vadot            enum:
1457ef62cebSEmmanuel Vadot              - qcom,scm-apq8064
1467ef62cebSEmmanuel Vadot              - qcom,scm-msm8660
1477ef62cebSEmmanuel Vadot              - qcom,scm-msm8960
148fac71e4eSEmmanuel Vadot              - qcom,scm-qcm2290
1498bab661aSEmmanuel Vadot              - qcom,scm-sm6375
1507ef62cebSEmmanuel Vadot    then:
1517ef62cebSEmmanuel Vadot      properties:
1527ef62cebSEmmanuel Vadot        clock-names:
1537ef62cebSEmmanuel Vadot          items:
1547ef62cebSEmmanuel Vadot            - const: core
1557ef62cebSEmmanuel Vadot
1567ef62cebSEmmanuel Vadot        clocks:
1577ef62cebSEmmanuel Vadot          maxItems: 1
1587ef62cebSEmmanuel Vadot
1597ef62cebSEmmanuel Vadot  - if:
1607ef62cebSEmmanuel Vadot      properties:
1617ef62cebSEmmanuel Vadot        compatible:
1627ef62cebSEmmanuel Vadot          contains:
1637ef62cebSEmmanuel Vadot            enum:
1647ef62cebSEmmanuel Vadot              - qcom,scm-apq8084
1657ef62cebSEmmanuel Vadot              - qcom,scm-mdm9607
166cb7aa33aSEmmanuel Vadot              - qcom,scm-msm8226
1677ef62cebSEmmanuel Vadot              - qcom,scm-msm8916
1687ef62cebSEmmanuel Vadot              - qcom,scm-msm8953
1697ef62cebSEmmanuel Vadot              - qcom,scm-msm8974
1707ef62cebSEmmanuel Vadot              - qcom,scm-msm8976
1717ef62cebSEmmanuel Vadot    then:
1727ef62cebSEmmanuel Vadot      properties:
1737ef62cebSEmmanuel Vadot        clock-names:
1747ef62cebSEmmanuel Vadot          items:
1757ef62cebSEmmanuel Vadot            - const: core
1767ef62cebSEmmanuel Vadot            - const: bus
1777ef62cebSEmmanuel Vadot            - const: iface
1787ef62cebSEmmanuel Vadot
1797ef62cebSEmmanuel Vadot        clocks:
1807ef62cebSEmmanuel Vadot          minItems: 3
1817ef62cebSEmmanuel Vadot          maxItems: 3
1827ef62cebSEmmanuel Vadot
183cb7aa33aSEmmanuel Vadot  # Interrupts
184cb7aa33aSEmmanuel Vadot  - if:
185cb7aa33aSEmmanuel Vadot      not:
186cb7aa33aSEmmanuel Vadot        properties:
187cb7aa33aSEmmanuel Vadot          compatible:
188cb7aa33aSEmmanuel Vadot            contains:
189cb7aa33aSEmmanuel Vadot              enum:
190cb7aa33aSEmmanuel Vadot                - qcom,scm-sm8450
191cb7aa33aSEmmanuel Vadot                - qcom,scm-sm8550
192*8d13bc63SEmmanuel Vadot                - qcom,scm-sm8650
193cb7aa33aSEmmanuel Vadot    then:
194cb7aa33aSEmmanuel Vadot      properties:
195cb7aa33aSEmmanuel Vadot        interrupts: false
1967ef62cebSEmmanuel Vadot
1977ef62cebSEmmanuel Vadotrequired:
1987ef62cebSEmmanuel Vadot  - compatible
1997ef62cebSEmmanuel Vadot
2007ef62cebSEmmanuel VadotadditionalProperties: false
2017ef62cebSEmmanuel Vadot
2027ef62cebSEmmanuel Vadotexamples:
2037ef62cebSEmmanuel Vadot  - |
2047ef62cebSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
2057ef62cebSEmmanuel Vadot
2067ef62cebSEmmanuel Vadot    firmware {
2077ef62cebSEmmanuel Vadot        scm {
2087ef62cebSEmmanuel Vadot            compatible = "qcom,scm-msm8916", "qcom,scm";
2097ef62cebSEmmanuel Vadot            clocks = <&gcc GCC_CRYPTO_CLK>,
2107ef62cebSEmmanuel Vadot                     <&gcc GCC_CRYPTO_AXI_CLK>,
2117ef62cebSEmmanuel Vadot                     <&gcc GCC_CRYPTO_AHB_CLK>;
2127ef62cebSEmmanuel Vadot            clock-names = "core", "bus", "iface";
2137ef62cebSEmmanuel Vadot        };
2147ef62cebSEmmanuel Vadot    };
215