dt-bindings: tpm: Convert IBM vTPM bindings to DT schema

Convert the devicetree bindings for the IBM Virtual Trusted Platform
Module to DT schema.  Drop properties which are already documented in
tpm-common.yaml.

Document the "IBM,vtpm20" compatible string introduced by commit
18b3670d79ae ("tpm: ibmvtpm: Add support for TPM2").

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/5c41e045dfe7cc3f27dd41c08c62ed8c4a90d8a4.1702806810.git.lukas@wunner.de
Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
Lukas Wunner 2023-12-17 11:13:33 +01:00 committed by Rob Herring
parent d3b8b0855a
commit cd6366c0c9
2 changed files with 104 additions and 41 deletions

View File

@ -1,41 +0,0 @@
* Device Tree Bindings for IBM Virtual Trusted Platform Module(vtpm)
Required properties:
- compatible : property name that conveys the platform architecture
identifiers, as 'IBM,vtpm'
- device_type : specifies type of virtual device
- interrupts : property specifying the interrupt source number and
sense code associated with this virtual I/O Adapters
- ibm,my-drc-index : integer index for the connector between the device
and its parent - present only if Dynamic
Reconfiguration(DR) Connector is enabled
- ibm,#dma-address-cells: specifies the number of cells that are used to
encode the physical address field of dma-window
properties
- ibm,#dma-size-cells : specifies the number of cells that are used to
encode the size field of dma-window properties
- ibm,my-dma-window : specifies DMA window associated with this virtual
IOA
- ibm,loc-code : specifies the unique and persistent location code
associated with this virtual I/O Adapters
- linux,sml-base : 64-bit base address of the reserved memory allocated
for the firmware event log
- linux,sml-size : size of the memory allocated for the firmware event log
Example (IBM Virtual Trusted Platform Module)
---------------------------------------------
vtpm@30000003 {
ibm,#dma-size-cells = <0x2>;
compatible = "IBM,vtpm";
device_type = "IBM,vtpm";
ibm,my-drc-index = <0x30000003>;
ibm,#dma-address-cells = <0x2>;
linux,sml-base = <0xc60e 0x0>;
interrupts = <0xa0003 0x0>;
ibm,my-dma-window = <0x10000003 0x0 0x0 0x0 0x10000000>;
ibm,loc-code = "U8286.41A.10082DV-V3-C3";
reg = <0x30000003>;
linux,sml-size = <0xbce10200>;
};

View File

@ -0,0 +1,104 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/tpm/ibm,vtpm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: IBM Virtual Trusted Platform Module (vTPM)
maintainers:
- Nayna Jain <nayna@linux.ibm.com>
description: |
Virtual TPM is used on IBM POWER7+ and POWER8 systems running POWERVM.
It is supported through the adjunct partition with firmware release 740
or higher. With vTPM support, each lpar is able to have its own vTPM
without the physical TPM hardware. The TPM functionality is provided by
communicating with the vTPM adjunct partition through Hypervisor calls
(Hcalls) and Command/Response Queue (CRQ) commands.
properties:
compatible:
enum:
- IBM,vtpm
- IBM,vtpm20
device_type:
description:
type of virtual device
enum:
- IBM,vtpm
- IBM,vtpm20
reg:
maxItems: 1
'ibm,#dma-address-cells':
description:
number of cells that are used to encode the physical address field of
dma-window properties
$ref: /schemas/types.yaml#/definitions/uint32-array
'ibm,#dma-size-cells':
description:
number of cells that are used to encode the size field of
dma-window properties
$ref: /schemas/types.yaml#/definitions/uint32-array
ibm,my-dma-window:
description:
DMA window associated with this virtual I/O Adapter
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 5
maxItems: 5
ibm,my-drc-index:
description:
integer index for the connector between the device and its parent;
present only if Dynamic Reconfiguration (DR) Connector is enabled
$ref: /schemas/types.yaml#/definitions/uint32
ibm,loc-code:
description:
unique and persistent location code associated with this virtual
I/O Adapter
$ref: /schemas/types.yaml#/definitions/string
required:
- compatible
- device_type
- reg
- interrupts
- ibm,#dma-address-cells
- ibm,#dma-size-cells
- ibm,my-dma-window
- ibm,my-drc-index
- ibm,loc-code
- linux,sml-base
- linux,sml-size
allOf:
- $ref: tpm-common.yaml#
unevaluatedProperties: false
examples:
- |
soc {
#address-cells = <1>;
#size-cells = <0>;
tpm@30000003 {
compatible = "IBM,vtpm";
device_type = "IBM,vtpm";
reg = <0x30000003>;
interrupts = <0xa0003 0x0>;
ibm,#dma-address-cells = <0x2>;
ibm,#dma-size-cells = <0x2>;
ibm,my-dma-window = <0x10000003 0x0 0x0 0x0 0x10000000>;
ibm,my-drc-index = <0x30000003>;
ibm,loc-code = "U8286.41A.10082DV-V3-C3";
linux,sml-base = <0xc60e 0x0>;
linux,sml-size = <0xbce10200>;
};
};