On Thu, 2019-07-04 at 13:29 +0200, Alexander Steffen wrote: > 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: I doubt that there was any comparison made. > 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. Agreed. Some plumbing needs to be done in tpm_tis_core to make it work for this. We definitely do not want to duplicate code that has been field tested for years. > 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. Yes, absolutely. I guess the driver has been done without looking at what already exist in the TPM kernel stack. /Jarkko