Yesterday Simon Glass of Chromium has submitted a large (28-part) patch to U-Boot, adding a driver model for TPMs.
[PATCH v2 00/28] dm: Convert TPM drivers to driver model
This series adds driver model support for Trusted Platform Modules (TPMs). These have a very simple interface and are configured via the device tree.
Two bus types are supported at present: I2C and LPC (Intel Low-Pin-Count).
Most drivers and users are converted over to driver model. The exception is the Atmel TPM and its users.
The I2C driver has been cleaned up and simplified. It was ported from Linux and was pretty hard to follow. This series includes patches to unify the code, remove duplicated data structures and drop unnecessary indirection.
Also this series enables the TPM on all Chromebooks supported by upstream U-Boot (snow, spring, nyan-big, pit, pi, link, panther) since some did not have it fully enabled.
As before, the ‘tpm’ command can be used to implement TPM functionality. In addition a ‘tpmtest’ command provides some basic TPM tests taken from Chrome OS U-Boot. These are fairly rudimentary but are useful if you know what you are doing.
For more information, see the U-boot mailing list: