drivers/spi/tpm: Clean up SPI TPM driver

1. Move common TIS macros to include/tpm.h.
2. Use common TIS macros while referring to status and access registers.
3. Add a new function claim_locality to properly check for required
access bits and claim locality 0.

BUG=b:36873582

Change-Id: I11bf3e8b6e1f50b7868c9fe4394a858488367287
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://review.coreboot.org/19213
Tested-by: build bot (Jenkins)
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
This commit is contained in:
Furquan Shaikh
2017-04-07 13:26:01 -07:00
committed by Furquan Shaikh
parent bf6dfaefc2
commit 260b297a89
5 changed files with 85 additions and 80 deletions

View File

@ -39,6 +39,7 @@
#include <device/i2c.h>
#include <endian.h>
#include <timer.h>
#include <tpm.h>
#include "tpm.h"
#if IS_ENABLED(CONFIG_ARCH_X86)

View File

@ -38,6 +38,7 @@
#include <device/i2c.h>
#include <endian.h>
#include <timer.h>
#include <tpm.h>
#include "tpm.h"
/* max. number of iterations after I2C NAK */

View File

@ -47,21 +47,6 @@ enum tpm_timeout {
#define TPM_RSP_SIZE_BYTE 2
#define TPM_RSP_RC_BYTE 6
enum tis_access {
TPM_ACCESS_VALID = 0x80,
TPM_ACCESS_ACTIVE_LOCALITY = 0x20,
TPM_ACCESS_REQUEST_PENDING = 0x04,
TPM_ACCESS_REQUEST_USE = 0x02,
};
enum tis_status {
TPM_STS_VALID = 0x80,
TPM_STS_COMMAND_READY = 0x40,
TPM_STS_GO = 0x20,
TPM_STS_DATA_AVAIL = 0x10,
TPM_STS_DATA_EXPECT = 0x08,
};
#define TPM_ACCESS(l) (0x0000 | ((l) << 4))
#define TPM_STS(l) (0x0001 | ((l) << 4))
#define TPM_DATA_FIFO(l) (0x0005 | ((l) << 4))