2019-11-10 16:34:27

by Amir Mizinski

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

From: Amir Mizinski <[email protected]>

this file aim at documenting TPM TIS I2C related dt-bindings for the I2C PTP based Physical TPM.

Signed-off-by: Amir Mizinski <[email protected]>
---
.../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

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"
+- reg : Address on the bus
+- tpm-pirq : Input gpio pin, used for host 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


2019-11-14 19:14:34

by Rob Herring (Arm)

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

On Sun, Nov 10, 2019 at 06:21:36PM +0200, [email protected] wrote:
> From: Amir Mizinski <[email protected]>
>
> this file aim at documenting TPM TIS I2C related dt-bindings for the I2C PTP based Physical TPM.
>
> Signed-off-by: Amir Mizinski <[email protected]>
> ---
> .../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
>

2019-11-24 18:03:45

by Amir Mizinski

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

On Thu, Nov 14, 2019 at 9:10 PM Rob Herring <[email protected]> wrote:
>
> On Sun, Nov 10, 2019 at 06:21:36PM +0200, [email protected] wrote:
> > From: Amir Mizinski <[email protected]>
> >
> > this file aim at documenting TPM TIS I2C related dt-bindings for the I2C PTP based Physical TPM.
> >
> > Signed-off-by: Amir Mizinski <[email protected]>
> > ---
> > .../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.
>

I wrote this Respectively with the tpm_tis-spi driver.
https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/security/tpm/tpm_tis_spi.txt
Should i change it anyway or keep the format?
Also the '-i2c' is added since its not the only protocol used over
tis, and it is handled differently from spi.

> 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'.
>

My mistake, i didn't implemented interrupts yet so ill clear this for
now. thank you.

> > +
> > +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
> >

Apologies for the late response, had a personal issue that needed my attention
I'm working on making this a schema for next version. This is new for
me, if you have additional sources regarding how to write it, i'll
appreciate if you send me.
Thank you.

Amir Mizinski