| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/firmware/qcom,scm.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: QCOM Secure Channel Manager (SCM)
- description: |
- Qualcomm processors include an interface to communicate to the secure firmware.
- This interface allows for clients to request different types of actions.
- These can include CPU power up/down, HDCP requests, loading of firmware,
- and other assorted actions.
- maintainers:
- - Bjorn Andersson <bjorn.andersson@linaro.org>
- - Robert Marko <robimarko@gmail.com>
- - Guru Das Srinagesh <quic_gurus@quicinc.com>
- properties:
- compatible:
- items:
- - enum:
- - qcom,scm-apq8064
- - qcom,scm-apq8084
- - qcom,scm-ipq4019
- - qcom,scm-ipq5018
- - qcom,scm-ipq5332
- - qcom,scm-ipq6018
- - qcom,scm-ipq806x
- - qcom,scm-ipq8074
- - qcom,scm-ipq9574
- - qcom,scm-mdm9607
- - qcom,scm-msm8226
- - qcom,scm-msm8660
- - qcom,scm-msm8916
- - qcom,scm-msm8953
- - qcom,scm-msm8960
- - qcom,scm-msm8974
- - qcom,scm-msm8976
- - qcom,scm-msm8994
- - qcom,scm-msm8996
- - qcom,scm-msm8998
- - qcom,scm-qcm2290
- - qcom,scm-qdu1000
- - qcom,scm-sa8775p
- - qcom,scm-sc7180
- - qcom,scm-sc7280
- - qcom,scm-sc8180x
- - qcom,scm-sc8280xp
- - qcom,scm-sdm670
- - qcom,scm-sdm845
- - qcom,scm-sdx55
- - qcom,scm-sdx65
- - qcom,scm-sdx75
- - qcom,scm-sm6115
- - qcom,scm-sm6125
- - qcom,scm-sm6350
- - qcom,scm-sm6375
- - qcom,scm-sm7150
- - qcom,scm-sm8150
- - qcom,scm-sm8250
- - qcom,scm-sm8350
- - qcom,scm-sm8450
- - qcom,scm-sm8550
- - qcom,scm-sm8650
- - qcom,scm-qcs404
- - qcom,scm-x1e80100
- - const: qcom,scm
- clocks:
- minItems: 1
- maxItems: 3
- clock-names:
- minItems: 1
- maxItems: 3
- dma-coherent: true
- interconnects:
- maxItems: 1
- interconnect-names:
- maxItems: 1
- '#reset-cells':
- const: 1
- interrupts:
- description:
- The wait-queue interrupt that firmware raises as part of handshake
- protocol to handle sleeping SCM calls.
- maxItems: 1
- memory-region:
- description:
- Phandle to the memory region reserved for the shared memory bridge to TZ.
- maxItems: 1
- qcom,sdi-enabled:
- description:
- Indicates that the SDI (Secure Debug Image) has been enabled by TZ
- by default and it needs to be disabled.
- If not disabled WDT assertion or reboot will cause the board to hang
- in the debug mode.
- type: boolean
- qcom,dload-mode:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- items:
- - items:
- - description: phandle to TCSR hardware block
- - description: offset of the download mode control register
- description: TCSR hardware block
- allOf:
- # Clocks
- - if:
- properties:
- compatible:
- contains:
- enum:
- - qcom,scm-apq8064
- - qcom,scm-apq8084
- - qcom,scm-mdm9607
- - qcom,scm-msm8226
- - qcom,scm-msm8660
- - qcom,scm-msm8916
- - qcom,scm-msm8953
- - qcom,scm-msm8960
- - qcom,scm-msm8974
- - qcom,scm-msm8976
- - qcom,scm-qcm2290
- - qcom,scm-sm6375
- then:
- required:
- - clocks
- - clock-names
- else:
- properties:
- clock-names: false
- clocks: false
- - if:
- properties:
- compatible:
- contains:
- enum:
- - qcom,scm-apq8064
- - qcom,scm-msm8660
- - qcom,scm-msm8960
- - qcom,scm-qcm2290
- - qcom,scm-sm6375
- then:
- properties:
- clock-names:
- items:
- - const: core
- clocks:
- maxItems: 1
- - if:
- properties:
- compatible:
- contains:
- enum:
- - qcom,scm-apq8084
- - qcom,scm-mdm9607
- - qcom,scm-msm8226
- - qcom,scm-msm8916
- - qcom,scm-msm8953
- - qcom,scm-msm8974
- - qcom,scm-msm8976
- then:
- properties:
- clock-names:
- items:
- - const: core
- - const: bus
- - const: iface
- clocks:
- minItems: 3
- maxItems: 3
- # Interrupts
- - if:
- not:
- properties:
- compatible:
- contains:
- enum:
- - qcom,scm-sm8450
- - qcom,scm-sm8550
- - qcom,scm-sm8650
- then:
- properties:
- interrupts: false
- - if:
- not:
- properties:
- compatible:
- contains:
- enum:
- - qcom,scm-sa8775p
- then:
- properties:
- memory-region: false
- required:
- - compatible
- additionalProperties: false
- examples:
- - |
- #include <dt-bindings/clock/qcom,gcc-msm8916.h>
- firmware {
- scm {
- compatible = "qcom,scm-msm8916", "qcom,scm";
- clocks = <&gcc GCC_CRYPTO_CLK>,
- <&gcc GCC_CRYPTO_AXI_CLK>,
- <&gcc GCC_CRYPTO_AHB_CLK>;
- clock-names = "core", "bus", "iface";
- };
- };
|