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
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 either a per-cpu interrupt or an
32      edge-triggered peripheral interrupt.
33
34  method:
35    enum: [smc, hvc]
36    description: |
37      The method of calling the OP-TEE Trusted OS depending on smc or hvc
38      instruction usage.
39      SMC #0, register assignments
40      or
41      HVC #0, register assignments
42      register assignments are specified in drivers/tee/optee/optee_smc.h
43
44required:
45  - compatible
46  - method
47
48additionalProperties: false
49
50examples:
51  - |
52    #include <dt-bindings/interrupt-controller/arm-gic.h>
53    firmware  {
54        optee  {
55            compatible = "linaro,optee-tz";
56            method = "smc";
57            interrupts = <GIC_SPI 187 IRQ_TYPE_EDGE_RISING>;
58        };
59    };
60
61  - |
62    firmware  {
63        optee  {
64            compatible = "linaro,optee-tz";
65            method = "hvc";
66        };
67    };
68