Mention branches and keyring.
[releases.git] / bindings / tpm / tcg,tpm-tis-i2c.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-i2c.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: I²C-attached Trusted Platform Module conforming to TCG TIS specification
8
9 maintainers:
10   - Lukas Wunner <lukas@wunner.de>
11
12 description: |
13   The Trusted Computing Group (TCG) has defined a multi-vendor standard
14   for accessing a TPM chip.  It can be transported over various buses,
15   one of them being I²C.  The standard is named:
16   TCG PC Client Specific TPM Interface Specification (TIS)
17   https://trustedcomputinggroup.org/resource/pc-client-work-group-pc-client-specific-tpm-interface-specification-tis/
18
19   The I²C interface was not originally part of the standard, but added
20   in 2017 with a separate document:
21   TCG PC Client Platform TPM Profile Specification for TPM 2.0 (PTP)
22   https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
23
24   Recent TPM 2.0 chips conform to this generic interface, others use a
25   vendor-specific I²C interface.
26
27 properties:
28   compatible:
29     oneOf:
30       - description: Generic TPM 2.0 chips conforming to TCG PTP interface
31         items:
32           - enum:
33               - infineon,slb9673
34               - nuvoton,npct75x
35           - const: tcg,tpm-tis-i2c
36
37       - description: TPM 1.2 and 2.0 chips with vendor-specific I²C interface
38         items:
39           - enum:
40               - atmel,at97sc3204t # TPM 1.2
41               - infineon,slb9635tt # TPM 1.2 (maximum 100 kHz)
42               - infineon,slb9645tt # TPM 1.2 (maximum 400 kHz)
43               - infineon,tpm_i2c_infineon # TPM 1.2
44               - nuvoton,npct501 # TPM 1.2
45               - nuvoton,npct601 # TPM 2.0
46               - st,st33zp24-i2c # TPM 2.0
47               - winbond,wpct301 # TPM 1.2
48
49   reg:
50     description: address of TPM on the I²C bus
51
52 allOf:
53   - $ref: tpm-common.yaml#
54
55 required:
56   - compatible
57   - reg
58
59 unevaluatedProperties: false
60
61 examples:
62   - |
63     i2c {
64         #address-cells = <1>;
65         #size-cells = <0>;
66
67         tpm@57 {
68             label = "tpm";
69             compatible = "nuvoton,npct601";
70             reg = <0x57>;
71             linux,sml-base = <0x7f 0xfd450000>;
72             linux,sml-size = <0x10000>;
73         };
74     };
75
76   - |
77     #include <dt-bindings/gpio/gpio.h>
78     #include <dt-bindings/interrupt-controller/irq.h>
79     i2c {
80         #address-cells = <1>;
81         #size-cells = <0>;
82
83         tpm@13 {
84             reg = <0x13>;
85             compatible = "st,st33zp24-i2c";
86             interrupt-parent = <&gpio5>;
87             interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
88             lpcpd-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
89         };
90     };