Commit cd6366c0 authored by Lukas Wunner's avatar Lukas Wunner Committed by Rob Herring
Browse files

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
18b3670d ("tpm: ibmvtpm: Add support for TPM2").

Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/5c41e045dfe7cc3f27dd41c08c62ed8c4a90d8a4.1702806810.git.lukas@wunner.de


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent d3b8b085
Loading
Loading
Loading
Loading
+0 −41
Original line number Diff line number Diff line
* 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>;
                };
+104 −0
Original line number Diff line number Diff line
# 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>;
        };
    };