brintos

brintos / linux-shallow public Read only

0
0
Text · 2.7 KiB · af7720d Raw
92 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-i2c.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: I²C-attached Trusted Platform Module conforming to TCG TIS specification8 9maintainers:10  - Lukas Wunner <lukas@wunner.de>11 12description: |13  The Trusted Computing Group (TCG) has defined a multi-vendor standard14  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 added20  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 a25  vendor-specific I²C interface.26 27properties:28  compatible:29    oneOf:30      - description: Generic TPM 2.0 chips conforming to TCG PTP interface31        items:32          - enum:33              - infineon,slb967334              - nuvoton,npct75x35              - st,st33ktpm2xi2c36          - const: tcg,tpm-tis-i2c37 38      - description: TPM 1.2 and 2.0 chips with vendor-specific I²C interface39        items:40          - enum:41              - atmel,at97sc3204t # TPM 1.242              - infineon,slb9635tt # TPM 1.2 (maximum 100 kHz)43              - infineon,slb9645tt # TPM 1.2 (maximum 400 kHz)44              - infineon,tpm_i2c_infineon # TPM 1.245              - nuvoton,npct501 # TPM 1.246              - nuvoton,npct601 # TPM 2.047              - st,st33zp24-i2c # TPM 2.048              - winbond,wpct301 # TPM 1.249 50  reg:51    description: address of TPM on the I²C bus52 53allOf:54  - $ref: tpm-common.yaml#55 56required:57  - compatible58  - reg59 60unevaluatedProperties: false61 62examples:63  - |64    i2c {65        #address-cells = <1>;66        #size-cells = <0>;67 68        tpm@57 {69            label = "tpm";70            compatible = "nuvoton,npct601";71            reg = <0x57>;72            linux,sml-base = <0x7f 0xfd450000>;73            linux,sml-size = <0x10000>;74        };75    };76 77  - |78    #include <dt-bindings/gpio/gpio.h>79    #include <dt-bindings/interrupt-controller/irq.h>80    i2c {81        #address-cells = <1>;82        #size-cells = <0>;83 84        tpm@13 {85            reg = <0x13>;86            compatible = "st,st33zp24-i2c";87            interrupt-parent = <&gpio5>;88            interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;89            lpcpd-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;90        };91    };92