tpm: i2c: When probing the TPM, write a 0 into the TPM access register.

Not doing so makes it fail when run at high frequency.

Change-Id: I1cfb69c55f03cb90f66f437289803d897a1aad5c
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: https://chromium-review.googlesource.com/191812
Reviewed-by: Tom Warren <twarren@nvidia.com>
Reviewed-by: Jimmy Zhang <jimmzhang@nvidia.com>
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Tested-by: Tom Warren <twarren@nvidia.com>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
(cherry picked from commit 04452441d2bfe2cacd3e0b6990c0e9261b5350d1)
Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com>
Reviewed-on: http://review.coreboot.org/7007
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marc.jones@se-eng.com>
This commit is contained in:
Gabe Black 2014-03-26 21:51:41 -07:00 committed by Marc Jones
parent 1b969f672e
commit 3f5644593d
1 changed files with 3 additions and 3 deletions

View File

@ -79,10 +79,10 @@ int tis_init(void)
* Probe TPM twice; the first probing might fail because TPM is asleep, * Probe TPM twice; the first probing might fail because TPM is asleep,
* and the probing can wake up TPM. * and the probing can wake up TPM.
*/ */
uint8_t tmp; uint8_t tmp = 0;
if (i2c_read(bus, chip, 0, 0, &tmp, sizeof(tmp)) && if (i2c_write(bus, chip, 0, 1, &tmp, sizeof(tmp)) &&
i2c_read(bus, chip, 0, 0, &tmp, sizeof(tmp))) i2c_write(bus, chip, 0, 1, &tmp, sizeof(tmp)))
return -1; return -1;
return 0; return 0;