Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / arm / firmware / linaro,optee-tz.yaml
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
7 title: OP-TEE
8
9 maintainers:
10   - Jens Wiklander <jens.wiklander@linaro.org>
11
12 description: |
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
20 properties:
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
44 required:
45   - compatible
46   - method
47
48 additionalProperties: false
49
50 examples:
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     };