On Fri, Sep 30, 2022 at 12:03 PM Alexander Steffen <Alexander.Steffen@xxxxxxxxxxxx> wrote: > > Most TPM devices are very similar and only need a few common properties > to describe them. However, they may use more properties than other > trivial I2C or SPI devices, e.g. powered-while-suspended. Therefore, > move them to their own trivial-tpms.yaml. > > Signed-off-by: Alexander Steffen <Alexander.Steffen@xxxxxxxxxxxx> > --- > .../bindings/security/tpm/trivial-tpms.yaml | 54 +++++++++++++++++++ > .../devicetree/bindings/trivial-devices.yaml | 16 ------ > 2 files changed, 54 insertions(+), 16 deletions(-) > create mode 100644 Documentation/devicetree/bindings/security/tpm/trivial-tpms.yaml > > diff --git a/Documentation/devicetree/bindings/security/tpm/trivial-tpms.yaml b/Documentation/devicetree/bindings/security/tpm/trivial-tpms.yaml > new file mode 100644 > index 000000000000..fadd4ca96554 > --- /dev/null > +++ b/Documentation/devicetree/bindings/security/tpm/trivial-tpms.yaml > @@ -0,0 +1,54 @@ > +# SPDX-License-Identifier: GPL-2.0 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/security/tpm/trivial-tpms.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Trivial TPM devices that have simple device tree bindings > + > +maintainers: > + - linux-integrity@xxxxxxxxxxxxxxx > + > +description: | > + This is a list of trivial TPM devices that share the same properties and > + therefore have simple device tree bindings. > + > + If a device needs more specific bindings, such as properties to > + describe some aspect of it, there needs to be a specific binding > + document for it just like any other devices. > + > +properties: > + reg: > + maxItems: 1 blank line > + interrupts: > + maxItems: 1 > + > + spi-max-frequency: true The SPI based devices need to reference spi-peripheral-props.yaml. So I think these are going to need to be split up by bus some. > + > + compatible: compatible goes first by convention. > + contains: 'contains' can not be used here. That allows any other compatible strings to be present. It's got to be exact lists of what are valid combinations. > + enum: > + # i2c trusted platform module (TPM) > + - atmel,at97sc3204t > + # Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz) > + - infineon,slb9635tt > + # Infineon SLB9645 I2C TPM (new protocol, max 400khz) > + - infineon,slb9645tt > + # Infineon SLB9673 I2C TPM 2.0 > + - infineon,slb9673 > + # i2c trusted platform module (TPM) > + - nuvoton,npct501 > + # i2c trusted platform module (TPM2) > + - nuvoton,npct601 > + # Socionext SynQuacer TPM MMIO module > + - socionext,synquacer-tpm-mmio > + # i2c trusted platform module (TPM) > + - winbond,wpct301 > + > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +... > diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml > index 61746755c107..1cc7f82c0822 100644 > --- a/Documentation/devicetree/bindings/trivial-devices.yaml > +++ b/Documentation/devicetree/bindings/trivial-devices.yaml > @@ -47,8 +47,6 @@ properties: > - ams,iaq-core > # i2c serial eeprom (24cxx) > - at,24c08 > - # i2c trusted platform module (TPM) > - - atmel,at97sc3204t > # ATSHA204 - i2c h/w symmetric crypto module > - atmel,atsha204 > # ATSHA204A - i2c h/w symmetric crypto module > @@ -135,12 +133,6 @@ properties: > - infineon,ir38164 > # Infineon IR38263 Voltage Regulator > - infineon,ir38263 > - # Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz) > - - infineon,slb9635tt > - # Infineon SLB9645 I2C TPM (new protocol, max 400khz) > - - infineon,slb9645tt > - # Infineon SLB9673 I2C TPM 2.0 > - - infineon,slb9673 > # Infineon TLV493D-A1B6 I2C 3D Magnetic Sensor > - infineon,tlv493d-a1b6 > # Infineon Multi-phase Digital VR Controller xdpe11280 > @@ -289,10 +281,6 @@ properties: > - national,lm85 > # I2C ±0.33°C Accurate, 12-Bit + Sign Temperature Sensor and Thermal Window Comparator > - national,lm92 > - # i2c trusted platform module (TPM) > - - nuvoton,npct501 > - # i2c trusted platform module (TPM2) > - - nuvoton,npct601 > # Nuvoton Temperature Sensor > - nuvoton,w83773g > # OKI ML86V7667 video decoder > @@ -327,8 +315,6 @@ properties: > - silabs,si7020 > # Skyworks SKY81452: Six-Channel White LED Driver with Touch Panel Bias Supply > - skyworks,sky81452 > - # Socionext SynQuacer TPM MMIO module > - - socionext,synquacer-tpm-mmio > # SparkFun Qwiic Joystick (COM-15168) with i2c interface > - sparkfun,qwiic-joystick > # i2c serial eeprom (24cxx) > @@ -383,8 +369,6 @@ properties: > - winbond,w83793 > # Vicor Corporation Digital Supervisor > - vicor,pli1209bc > - # i2c trusted platform module (TPM) > - - winbond,wpct301 > > required: > - compatible > -- > 2.25.1 >