Re: [PATCH v1 4/5] dt-bindings: tpm: Add the TPM TIS I2C device tree binding documentaion

From: Rob Herring
Date: Thu Nov 14 2019 - 14:10:58 EST


On Sun, Nov 10, 2019 at 06:21:36PM +0200, amirmizi6@xxxxxxxxx wrote:
> From: Amir Mizinski <amirmizi6@xxxxxxxxx>
>
> this file aim at documenting TPM TIS I2C related dt-bindings for the I2C PTP based Physical TPM.
>
> Signed-off-by: Amir Mizinski <amirmizi6@xxxxxxxxx>
> ---
> .../bindings/security/tpm/tpm_tis_i2c.txt | 24 ++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/security/tpm/tpm_tis_i2c.txt

Please make this a schema. See
Documentation/devicetree/writing-schema.rst.

>
> diff --git a/Documentation/devicetree/bindings/security/tpm/tpm_tis_i2c.txt b/Documentation/devicetree/bindings/security/tpm/tpm_tis_i2c.txt
> new file mode 100644
> index 0000000..7d5a69e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/security/tpm/tpm_tis_i2c.txt
> @@ -0,0 +1,24 @@
> +* Device Tree Bindings for I2C PTP based Trusted Platform Module(TPM)
> +
> +The TCG defines hardware protocol, registers and interface (based
> +on the TPM Interface Specification) for accessing TPM devices
> +implemented with an I2C interface.
> +
> +Refer to the 'I2C Interface Definition' section in 'TCG PC Client
> +PlatformTPMProfile(PTP) Specification' publication for specification.
> +
> +Required properties:
> +
> +- compatible : Should be "tcg,tpm_tis-i2c"

s/_/-/

As this has to be under an I2C controller node, the '-i2c' part is
redundant.

There's a bigger issue that the h/w here is more than just an I2C
protocol. The chip may have multiple power supplies, clocks, reset
lines, etc. HID over I2C seems like a similar case. Does the spec define
*all* of that? If not, you need chip specific compatibles. You can keep
this as a fallback though.

> +- reg : Address on the bus
> +- tpm-pirq : Input gpio pin, used for host interrupts

GPIO connections are properties ending in '-gpios'. However, if the only
use is an interrupt, then you should use 'interrupts'.

> +
> +Example (for Raspberry Pie 3 Board with Nuvoton's NPCT75X (2.0)
> +-------------------------------------------------------------------
> +
> +tpm_tis-i2c: tpm_tis-i2c@2e {
> +
> + compatible = "tcg,tpm_tis-i2c";
> + reg = <0x2e>;
> + tpm-pirq = <&gpio 24 GPIO_ACTIVE_HIGH>;
> +};
> --
> 2.7.4
>