On Mon, Apr 04, 2022 at 10:18:35AM +0200, Johannes Holland wrote:
> Add a YAML schema to support device tree bindings for the generic I2C
> physical layer. Refer to the TCG PC Client Platform TPM Profile (PTP)
> Specification for TPM 2.0 v1.04 Revision 14.
Bindings are for devices. A protocol layer does not make a device.
>
> Signed-off-by: Johannes Holland <[email protected]>
> ---
> .../bindings/security/tpm/tpm-tis-i2c.yaml | 48 +++++++++++++++++++
> 1 file changed, 48 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/security/tpm/tpm-tis-i2c.yaml
We already have a binding for I2C TPM. That one should be converted.
>
> diff --git a/Documentation/devicetree/bindings/security/tpm/tpm-tis-i2c.yaml b/Documentation/devicetree/bindings/security/tpm/tpm-tis-i2c.yaml
> new file mode 100644
> index 000000000000..7948867ff3f7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/security/tpm/tpm-tis-i2c.yaml
> @@ -0,0 +1,48 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/security/tpm/tpm-tis-i2c.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: I2C PTP based TPM Device Tree Bindings
> +
> +maintainers:
> + - Johannes Holland <[email protected]>
> +
> +description:
> + Device Tree Bindings for I2C based Trusted Platform Module (TPM).
> +
> +properties:
> + compatible:
> + items:
> + - enum:
> + # Infineon's Trusted Platform Module (TPM) (SLB9673)
> + - infineon,slb9673
> + # Nuvoton's Trusted Platform Module (TPM) (NPCT75x)
> + - nuvoton,npct75x
I see this is already used, but in general wildcards should not be used
in device compatibles.
> + - const: tcg,tpm-tis-i2c
Pretty sure I killed this off when originally reviewing the TPM I2C
binding.
> +
> + reg:
> + maxItems: 1
> +
> + interrupt:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + tpm@2e {
> + compatible = "infineon,slb9673", "nuvoton,npct75x", "tcg,tpm-tis-i2c";
> + reg = <0x2e>;
> + };
> + };
> +...
> --
> 2.31.1.windows.1
>
>
On 04.04.2022 18:18, Rob Herring wrote:
> On Mon, Apr 04, 2022 at 10:18:35AM +0200, Johannes Holland wrote:
>> Add a YAML schema to support device tree bindings for the generic I2C
>> physical layer. Refer to the TCG PC Client Platform TPM Profile (PTP)
>> Specification for TPM 2.0 v1.04 Revision 14.
>
> Bindings are for devices. A protocol layer does not make a device.
Agreed. I will change this in my next patch.
>
>>
>> Signed-off-by: Johannes Holland <[email protected]>
>> ---
>> .../bindings/security/tpm/tpm-tis-i2c.yaml | 48 +++++++++++++++++++
>> 1 file changed, 48 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/security/tpm/tpm-tis-i2c.yaml
>
> We already have a binding for I2C TPM. That one should be converted.
Will do. There are two required properties which are in fact not needed
by any I2C driver. If that is ok with you, I would like to turn them
optional.
- linux,sml-base
- linux,sml-size
>>>
>> diff --git a/Documentation/devicetree/bindings/security/tpm/tpm-tis-i2c.yaml b/Documentation/devicetree/bindings/security/tpm/tpm-tis-i2c.yaml
>> new file mode 100644
>> index 000000000000..7948867ff3f7
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/security/tpm/tpm-tis-i2c.yaml
>> @@ -0,0 +1,48 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/security/tpm/tpm-tis-i2c.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: I2C PTP based TPM Device Tree Bindings
>> +
>> +maintainers:
>> + - Johannes Holland <[email protected]>
>> +
>> +description:
>> + Device Tree Bindings for I2C based Trusted Platform Module (TPM).
>> +
>> +properties:
>> + compatible:
>> + items:
>> + - enum:
>> + # Infineon's Trusted Platform Module (TPM) (SLB9673)
>> + - infineon,slb9673
>> + # Nuvoton's Trusted Platform Module (TPM) (NPCT75x)
>> + - nuvoton,npct75x
>
> I see this is already used, but in general wildcards should not be used
> in device compatibles.
Ok, I took this over from a previous patch. Since I am not familiar with
Nuvoton products, so I am going to remove this for now.
>
>> + - const: tcg,tpm-tis-i2c
>
> Pretty sure I killed this off when originally reviewing the TPM I2C
> binding.
>
Sorry, I did not see any discussion related to this.
IMHO, the TPM is a open standard device. That should allow for plug
and play, regardless of the manufacturer. For SPI, we also have
tcg,tpm_tis-spi. However, if you want it removed, I can do that.
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + interrupt:
>> + maxItems: 1
>> +
>> +required:
>> + - compatible
>> + - reg
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + i2c {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + tpm@2e {
>> + compatible = "infineon,slb9673", "nuvoton,npct75x", "tcg,tpm-tis-i2c";
>> + reg = <0x2e>;
>> + };
>> + };
>> +...
>> --
>> 2.31.1.windows.1
>>
>>