From 1ca196841ac4db46d8d9c3c55004c3e9ee3c8844 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Wed, 7 Sep 2016 10:52:12 -0700 Subject: drivers/i2c/tpm: Fix early TPM probe The early TPM probe was done directly in tis.c ignoring the lower layer that provides appropriate access to the chip. Move this into a tpm_vendor_probe() function so it can use iic_tpm_read() with all of the built-in delays and semantics instead of calling i2c_readb() directly from the wrong layer. This fixes early init failures that were seen with the cr50 i2c tpm on the reef mainboard. Change-Id: I9bb3b820d10f6e2ea24c57b90cf0edc813cdc7e0 Signed-off-by: Duncan Laurie Reviewed-on: https://review.coreboot.org/16527 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Furquan Shaikh Reviewed-by: Paul Menzel --- src/drivers/i2c/tpm/tpm.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/drivers/i2c/tpm/tpm.h') diff --git a/src/drivers/i2c/tpm/tpm.h b/src/drivers/i2c/tpm/tpm.h index 7dfd59481d..ddf12a9e98 100644 --- a/src/drivers/i2c/tpm/tpm.h +++ b/src/drivers/i2c/tpm/tpm.h @@ -121,6 +121,8 @@ struct tpm_cmd_t { /* ---------- Interface for TPM vendor ------------ */ +int tpm_vendor_probe(unsigned bus, uint32_t addr); + int tpm_vendor_init(struct tpm_chip *chip, unsigned bus, uint32_t dev_addr); void tpm_vendor_cleanup(struct tpm_chip *chip); -- cgit v1.2.3