Files
linux/Documentation/devicetree/bindings/tpm/tpm-common.yaml
Lukas Wunner 26c9d152eb dt-bindings: tpm: Consolidate TCG TIS bindings
A significant number of Trusted Platform Modules conform to the "TIS"
specification published by the Trusted Computing Group ("TCG PC Client
Specific TPM Interface Specification").  These chips typically use an
SPI, I²C or LPC bus as transport (via MMIO in the latter case).  Some
of them even support multiple of those buses (selectable through a
config strap) or the same chip is available in multiple SKUs, each with
a different bus interface.

The devicetree bindings for these TPMs have not been converted to DT
schema yet and are spread out across 3 generic files and 2 chip-specific
files.  A few TPM compatible strings were added to trivial-devices.yaml
even though additional properties are documented in the plaintext
bindings.

Consolidate the devicetree bindings into 3 yaml files, one per bus.

Move common properties to a separate tpm-common.yaml.

Document compatible strings which are supported by the TPM TIS driver
but were neglected to be added to the devicetree bindings.

Document the memory-region property recently introduced by commit
1e2714bb83 ("tpm: Add reserved memory event log").

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/953fd4c7519030db88e5b5e12ab6307414ebdd21.1702806810.git.lukas@wunner.de
Signed-off-by: Rob Herring <robh@kernel.org>
2024-01-09 10:56:18 -06:00

88 lines
2.2 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/tpm/tpm-common.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Trusted Platform Module common properties
maintainers:
- Lukas Wunner <lukas@wunner.de>
properties:
$nodename:
pattern: '^tpm(@[0-9a-f]+)?$'
interrupts:
description: indicates command completion
maxItems: 1
label:
description: human readable string describing the device, e.g. "tpm"
linux,sml-base:
description:
base address of reserved memory allocated for firmware event log
$ref: /schemas/types.yaml#/definitions/uint64
linux,sml-size:
description:
size of reserved memory allocated for firmware event log
$ref: /schemas/types.yaml#/definitions/uint32
memory-region:
description: reserved memory allocated for firmware event log
maxItems: 1
powered-while-suspended:
description:
present when the TPM is left powered on between suspend and resume
(makes the suspend/resume callbacks do nothing)
type: boolean
resets:
description: Reset controller to reset the TPM
$ref: /schemas/types.yaml#/definitions/phandle
reset-gpios:
description: Output GPIO pin to reset the TPM
maxItems: 1
# must always have both linux,sml-base and linux,sml-size
dependentRequired:
linux,sml-base: ['linux,sml-size']
linux,sml-size: ['linux,sml-base']
# must only have either memory-region or linux,sml-base
# as well as either resets or reset-gpios
dependentSchemas:
memory-region:
properties:
linux,sml-base: false
linux,sml-base:
properties:
memory-region: false
resets:
properties:
reset-gpios: false
reset-gpios:
properties:
resets: false
allOf:
- if:
properties:
compatible:
contains:
pattern: '^st,st33zp24'
then:
properties:
lpcpd-gpios:
description:
Output GPIO pin used for ST33ZP24 power management of D1/D2 state.
If set, power must be present when the platform is going into
sleep/hibernate mode.
maxItems: 1
additionalProperties: true