mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-23 08:35:19 -05:00
45121fcbe7
Add the ST chip st33ktpm2xi2c 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 datasheet is available at: https://www.st.com/resource/en/data_brief/st33ktpm2xi2c.pdf Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com> Signed-off-by: Michael Haener <michael.haener@siemens.com> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
91 lines
2.7 KiB
YAML
91 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
|
|
- 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>;
|
|
};
|
|
};
|