0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/arm/firmware/linaro,optee-tz.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: OP-TEE Device Tree Bindings
0008
0009 maintainers:
0010 - Jens Wiklander <jens.wiklander@linaro.org>
0011
0012 description: |
0013 OP-TEE is a piece of software using hardware features to provide a Trusted
0014 Execution Environment. The security can be provided with ARM TrustZone, but
0015 also by virtualization or a separate chip.
0016
0017 We're using "linaro" as the first part of the compatible property for
0018 the reference implementation maintained by Linaro.
0019
0020 properties:
0021 $nodename:
0022 const: optee
0023
0024 compatible:
0025 const: linaro,optee-tz
0026
0027 interrupts:
0028 maxItems: 1
0029 description: |
0030 This interrupt which is used to signal an event by the secure world
0031 software is expected to be edge-triggered.
0032
0033 method:
0034 enum: [smc, hvc]
0035 description: |
0036 The method of calling the OP-TEE Trusted OS depending on smc or hvc
0037 instruction usage.
0038 SMC #0, register assignments
0039 or
0040 HVC #0, register assignments
0041 register assignments are specified in drivers/tee/optee/optee_smc.h
0042
0043 required:
0044 - compatible
0045 - method
0046
0047 additionalProperties: false
0048
0049 examples:
0050 - |
0051 #include <dt-bindings/interrupt-controller/arm-gic.h>
0052 firmware {
0053 optee {
0054 compatible = "linaro,optee-tz";
0055 method = "smc";
0056 interrupts = <GIC_SPI 187 IRQ_TYPE_EDGE_RISING>;
0057 };
0058 };
0059
0060 - |
0061 firmware {
0062 optee {
0063 compatible = "linaro,optee-tz";
0064 method = "hvc";
0065 };
0066 };