1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/arm/firmware/linaro,optee-tz.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: OP-TEE Device Tree Bindings
8
9maintainers:
10  - Jens Wiklander <jens.wiklander@linaro.org>
11
12description: |
13  OP-TEE is a piece of software using hardware features to provide a Trusted
14  Execution Environment. The security can be provided with ARM TrustZone, but
15  also by virtualization or a separate chip.
16
17  We're using "linaro" as the first part of the compatible property for
18  the reference implementation maintained by Linaro.
19
20properties:
21  $nodename:
22    const: optee
23
24  compatible:
25    const: linaro,optee-tz
26
27  interrupts:
28    maxItems: 1
29    description: |
30      This interrupt which is used to signal an event by the secure world
31      software is expected to be edge-triggered.
32
33  method:
34    enum: [smc, hvc]
35    description: |
36      The method of calling the OP-TEE Trusted OS depending on smc or hvc
37      instruction usage.
38      SMC #0, register assignments
39      or
40      HVC #0, register assignments
41      register assignments are specified in drivers/tee/optee/optee_smc.h
42
43required:
44  - compatible
45  - method
46
47additionalProperties: false
48
49examples:
50  - |
51    #include <dt-bindings/interrupt-controller/arm-gic.h>
52    firmware  {
53        optee  {
54            compatible = "linaro,optee-tz";
55            method = "smc";
56            interrupts = <GIC_SPI 187 IRQ_TYPE_EDGE_RISING>;
57        };
58    };
59
60  - |
61    firmware  {
62        optee  {
63            compatible = "linaro,optee-tz";
64            method = "hvc";
65        };
66    };
67