Re: [PATCH v7 6/7] tpm: Add YAML schema for TPM TIS I2C options

From: Rob Herring
Date: Wed May 06 2020 - 15:03:13 EST


On Wed, May 6, 2020 at 10:20 AM Amir Mizinski <amirmizi6@xxxxxxxxx> wrote:
>
>
> On 2020-05-05 16:12, Rob Herring wrote:
> > On Mon, Apr 27, 2020 at 03:49:30PM +0300, amirmizi6@xxxxxxxxx wrote:
> >> From: Amir Mizinski <amirmizi6@xxxxxxxxx>
> >>
> >> Added a YAML schema to support tpm tis i2c related dt-bindings for the I2c
> >> PTP based physical layer.
> >>
> >> This patch adds the documentation for corresponding device tree bindings of
> >> I2C based Physical TPM.
> >> Refer to the 'I2C Interface Definition' section in
> >> 'TCG PC Client PlatformTPMProfile(PTP) Specification' publication
> >> for specification.
> >
> > Again, DT bindings describe h/w devices, not just a protocol. A device
> > is more than just a protocol interface. There's clocks, power rails,
> > resets, interrupts, firmware, etc.
> >
> > Unless there's something special about TPM chips that makes none of this
> > applicable and no chip will ever have any quirks (or extensions) in
> > their protocol to work-around, then you need compatible string(s) that
> > are specific to the TPM chip. You can have tcg,tpm-tis-i2c as a
> > fallback, but you need specific compatible to handle any quirks.
> >
> > Rob
>
> Hello Rob, currently yes. All TPM chip are implemented according to the TGC specs and should use the same properties for this I2C driver.
> I can't say for sure that it will be the case in the future.

Exactly. That's the issue. If you have just "tcg,tpm-tis-i2c" and need
to handle some difference in the future, then you can't without
updating the DT. You must be able to handle future issues without
updating the DT.

> Shouldn't we use the standard "tcg,tpm-tis-i2c" compatible, and if a specific TPM chip will deviate from the specs, the vendor should add an additional compatible string for it?

Name something where multiple vendors have implemented a spec and
there's no deviation. It simply doesn't exist. How would you know?

Does the TPM spec define all the things I listed above outside of just
the I2C protocol?

Also, what version of the spec is "tcg,tpm-tis-i2c"? Few specs have
only 1 version.

Rob