Skip to content
Snippets Groups Projects
Commit b697e0ff authored by Simon Glass's avatar Simon Glass
Browse files

dm: tpm: Convert I2C driver to driver model


Convert the tpm_tis_i2c driver to use driver model and update boards which
use it.

Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
Acked-by: default avatarChristophe <Ricard&lt;christophe-h.ricard@st.com>
Reviewed-by: default avatarHeiko Schocher <hs@denx.de>
parent 6e474eab
No related branches found
No related tags found
No related merge requests found
...@@ -13,6 +13,7 @@ CONFIG_CMD_CROS_EC=y ...@@ -13,6 +13,7 @@ CONFIG_CMD_CROS_EC=y
CONFIG_CROS_EC=y CONFIG_CROS_EC=y
CONFIG_CROS_EC_SPI=y CONFIG_CROS_EC_SPI=y
CONFIG_CROS_EC_KEYB=y CONFIG_CROS_EC_KEYB=y
CONFIG_DM_TPM=y
CONFIG_TPM_TIS_I2C=y CONFIG_TPM_TIS_I2C=y
CONFIG_DM_I2C=y CONFIG_DM_I2C=y
CONFIG_DM_I2C_COMPAT=y CONFIG_DM_I2C_COMPAT=y
......
...@@ -13,6 +13,7 @@ CONFIG_CMD_CROS_EC=y ...@@ -13,6 +13,7 @@ CONFIG_CMD_CROS_EC=y
CONFIG_CROS_EC=y CONFIG_CROS_EC=y
CONFIG_CROS_EC_SPI=y CONFIG_CROS_EC_SPI=y
CONFIG_CROS_EC_KEYB=y CONFIG_CROS_EC_KEYB=y
CONFIG_DM_TPM=y
CONFIG_TPM_TIS_I2C=y CONFIG_TPM_TIS_I2C=y
CONFIG_DM_I2C=y CONFIG_DM_I2C=y
CONFIG_DM_I2C_COMPAT=y CONFIG_DM_I2C_COMPAT=y
......
...@@ -18,6 +18,7 @@ CONFIG_DEBUG_UART=y ...@@ -18,6 +18,7 @@ CONFIG_DEBUG_UART=y
CONFIG_DEBUG_UART_S5P=y CONFIG_DEBUG_UART_S5P=y
CONFIG_DEBUG_UART_BASE=0x12c30000 CONFIG_DEBUG_UART_BASE=0x12c30000
CONFIG_DEBUG_UART_CLOCK=100000000 CONFIG_DEBUG_UART_CLOCK=100000000
CONFIG_DM_TPM=y
CONFIG_TPM_TIS_I2C=y CONFIG_TPM_TIS_I2C=y
CONFIG_DM_I2C=y CONFIG_DM_I2C=y
CONFIG_DM_I2C_COMPAT=y CONFIG_DM_I2C_COMPAT=y
......
...@@ -18,6 +18,7 @@ CONFIG_DEBUG_UART=y ...@@ -18,6 +18,7 @@ CONFIG_DEBUG_UART=y
CONFIG_DEBUG_UART_S5P=y CONFIG_DEBUG_UART_S5P=y
CONFIG_DEBUG_UART_BASE=0x12c30000 CONFIG_DEBUG_UART_BASE=0x12c30000
CONFIG_DEBUG_UART_CLOCK=100000000 CONFIG_DEBUG_UART_CLOCK=100000000
CONFIG_DM_TPM=y
CONFIG_TPM_TIS_I2C=y CONFIG_TPM_TIS_I2C=y
CONFIG_DM_I2C=y CONFIG_DM_I2C=y
CONFIG_DM_I2C_COMPAT=y CONFIG_DM_I2C_COMPAT=y
......
This diff is collapsed.
...@@ -37,9 +37,6 @@ enum tpm_timeout { ...@@ -37,9 +37,6 @@ enum tpm_timeout {
#define TPM_RSP_SIZE_BYTE 2 #define TPM_RSP_SIZE_BYTE 2
#define TPM_RSP_RC_BYTE 6 #define TPM_RSP_RC_BYTE 6
/* Max buffer size supported by our tpm */
#define TPM_DEV_BUFSIZE 1260
enum i2c_chip_type { enum i2c_chip_type {
SLB9635, SLB9635,
SLB9645, SLB9645,
...@@ -47,17 +44,10 @@ enum i2c_chip_type { ...@@ -47,17 +44,10 @@ enum i2c_chip_type {
}; };
struct tpm_chip { struct tpm_chip {
bool inited;
int is_open; int is_open;
u8 req_complete_mask;
u8 req_complete_val;
u8 req_canceled;
int irq;
int locality; int locality;
u32 vend_dev;
unsigned long timeout_a, timeout_b, timeout_c, timeout_d; /* msec */ unsigned long timeout_a, timeout_b, timeout_c, timeout_d; /* msec */
unsigned long duration[3]; /* msec */
struct udevice *dev;
u8 buf[TPM_DEV_BUFSIZE + sizeof(u8)]; /* Max buffer size + addr */
enum i2c_chip_type chip_type; enum i2c_chip_type chip_type;
}; };
...@@ -129,8 +119,6 @@ struct tpm_cmd_t { ...@@ -129,8 +119,6 @@ struct tpm_cmd_t {
*/ */
#define MAX_COUNT_LONG 50 #define MAX_COUNT_LONG 50
#define TPM_HEADER_SIZE 10
enum tis_access { enum tis_access {
TPM_ACCESS_VALID = 0x80, TPM_ACCESS_VALID = 0x80,
TPM_ACCESS_ACTIVE_LOCALITY = 0x20, TPM_ACCESS_ACTIVE_LOCALITY = 0x20,
...@@ -155,10 +143,4 @@ enum tis_status { ...@@ -155,10 +143,4 @@ enum tis_status {
#define TPM_DATA_FIFO(l) (0x0005 | ((l) << 4)) #define TPM_DATA_FIFO(l) (0x0005 | ((l) << 4))
#define TPM_DID_VID(l) (0x0006 | ((l) << 4)) #define TPM_DID_VID(l) (0x0006 | ((l) << 4))
/* Extended error numbers from linux (see errno.h) */
#define ECANCELED 125 /* Operation Canceled */
/* Timer frequency. Corresponds to msec timer resolution */
#define HZ 1000
#endif #endif
...@@ -154,8 +154,6 @@ enum fdt_compat_id { ...@@ -154,8 +154,6 @@ enum fdt_compat_id {
COMPAT_MAXIM_MAX77686_PMIC, /* MAX77686 PMIC */ COMPAT_MAXIM_MAX77686_PMIC, /* MAX77686 PMIC */
COMPAT_GENERIC_SPI_FLASH, /* Generic SPI Flash chip */ COMPAT_GENERIC_SPI_FLASH, /* Generic SPI Flash chip */
COMPAT_MAXIM_98095_CODEC, /* MAX98095 Codec */ COMPAT_MAXIM_98095_CODEC, /* MAX98095 Codec */
COMPAT_INFINEON_SLB9635_TPM, /* Infineon SLB9635 TPM */
COMPAT_INFINEON_SLB9645_TPM, /* Infineon SLB9645 TPM */
COMPAT_SAMSUNG_EXYNOS5_I2C, /* Exynos5 High Speed I2C Controller */ COMPAT_SAMSUNG_EXYNOS5_I2C, /* Exynos5 High Speed I2C Controller */
COMPAT_SANDBOX_LCD_SDL, /* Sandbox LCD emulation with SDL */ COMPAT_SANDBOX_LCD_SDL, /* Sandbox LCD emulation with SDL */
COMPAT_SAMSUNG_EXYNOS_SYSMMU, /* Exynos sysmmu */ COMPAT_SAMSUNG_EXYNOS_SYSMMU, /* Exynos sysmmu */
......
...@@ -58,8 +58,6 @@ static const char * const compat_names[COMPAT_COUNT] = { ...@@ -58,8 +58,6 @@ static const char * const compat_names[COMPAT_COUNT] = {
COMPAT(MAXIM_MAX77686_PMIC, "maxim,max77686"), COMPAT(MAXIM_MAX77686_PMIC, "maxim,max77686"),
COMPAT(GENERIC_SPI_FLASH, "spi-flash"), COMPAT(GENERIC_SPI_FLASH, "spi-flash"),
COMPAT(MAXIM_98095_CODEC, "maxim,max98095-codec"), COMPAT(MAXIM_98095_CODEC, "maxim,max98095-codec"),
COMPAT(INFINEON_SLB9635_TPM, "infineon,slb9635-tpm"),
COMPAT(INFINEON_SLB9645_TPM, "infineon,slb9645tt"),
COMPAT(SAMSUNG_EXYNOS5_I2C, "samsung,exynos5-hsi2c"), COMPAT(SAMSUNG_EXYNOS5_I2C, "samsung,exynos5-hsi2c"),
COMPAT(SANDBOX_LCD_SDL, "sandbox,lcd-sdl"), COMPAT(SANDBOX_LCD_SDL, "sandbox,lcd-sdl"),
COMPAT(SAMSUNG_EXYNOS_SYSMMU, "samsung,sysmmu-v3.3"), COMPAT(SAMSUNG_EXYNOS_SYSMMU, "samsung,sysmmu-v3.3"),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment