On 04.07.2019 10:43, Jarkko Sakkinen wrote:
Check out tpm_tis_core.c and tpm_tis_spi.c. TPM TIS driver implements that spec so you should only implement a new physical layer.
I had the same thought. Unfortunately, the I2C-TIS specification introduces two relevant changes compared to tpm_tis/tpm_tis_spi:
1. Locality is not encoded into register addresses anymore, but stored in a separate register. 2. Several register addresses have changed (but still contain compatible contents).
I'd still prefer not to duplicate all the high-level logic from tpm_tis_core. But this will probably mean to introduce some new interfaces between tpm_tis_core and the physical layers.
Also, shouldn't the new driver be called tpm_tis_i2c, to group it with all the other (TIS) drivers, that implement a vendor-independent protocol? With tpm_i2c_ptp users might assume that ptp is just another vendor.
Alexander