Files
linux/Documentation/devicetree/bindings/tpm/tcg,tpm-tis-i2c.yaml
Marek Vasut 1e78a43ec0 dt-bindings: tpm: Add st,st33tphf2ei2c
Add the ST chip st33tphf2ei2c to the supported compatible strings of the
TPM TIS I2C schema. The chip is compliant with the TCG PC Client TPM
Profile specification.

For reference, a databrief is available at:
https://www.st.com/resource/en/data_brief/st33tphf2ei2c.pdf

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2025-12-31 10:25:08 +08:00

93 lines
2.7 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/tpm/tcg,tpm-tis-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: I²C-attached Trusted Platform Module conforming to TCG TIS specification
maintainers:
- Lukas Wunner <lukas@wunner.de>
description: |
The Trusted Computing Group (TCG) has defined a multi-vendor standard
for accessing a TPM chip. It can be transported over various buses,
one of them being I²C. The standard is named:
TCG PC Client Specific TPM Interface Specification (TIS)
https://trustedcomputinggroup.org/resource/pc-client-work-group-pc-client-specific-tpm-interface-specification-tis/
The I²C interface was not originally part of the standard, but added
in 2017 with a separate document:
TCG PC Client Platform TPM Profile Specification for TPM 2.0 (PTP)
https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
Recent TPM 2.0 chips conform to this generic interface, others use a
vendor-specific I²C interface.
properties:
compatible:
oneOf:
- description: Generic TPM 2.0 chips conforming to TCG PTP interface
items:
- enum:
- infineon,slb9673
- nuvoton,npct75x
- st,st33ktpm2xi2c
- st,st33tphf2ei2c
- const: tcg,tpm-tis-i2c
- description: TPM 1.2 and 2.0 chips with vendor-specific I²C interface
items:
- enum:
- atmel,at97sc3204t # TPM 1.2
- infineon,slb9635tt # TPM 1.2 (maximum 100 kHz)
- infineon,slb9645tt # TPM 1.2 (maximum 400 kHz)
- infineon,tpm_i2c_infineon # TPM 1.2
- nuvoton,npct501 # TPM 1.2
- nuvoton,npct601 # TPM 2.0
- st,st33zp24-i2c # TPM 2.0
- winbond,wpct301 # TPM 1.2
reg:
description: address of TPM on the I²C bus
allOf:
- $ref: tpm-common.yaml#
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
tpm@57 {
label = "tpm";
compatible = "nuvoton,npct601";
reg = <0x57>;
linux,sml-base = <0x7f 0xfd450000>;
linux,sml-size = <0x10000>;
};
};
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
tpm@13 {
reg = <0x13>;
compatible = "st,st33zp24-i2c";
interrupt-parent = <&gpio5>;
interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
lpcpd-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
};
};