summaryrefslogtreecommitdiff
path: root/drivers/tpm/tpm_atmel_twi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/tpm/tpm_atmel_twi.c')
-rw-r--r--drivers/tpm/tpm_atmel_twi.c22
1 files changed, 7 insertions, 15 deletions
diff --git a/drivers/tpm/tpm_atmel_twi.c b/drivers/tpm/tpm_atmel_twi.c
index 2dcc2af67f..fa4fbec6bb 100644
--- a/drivers/tpm/tpm_atmel_twi.c
+++ b/drivers/tpm/tpm_atmel_twi.c
@@ -52,7 +52,10 @@ static int tpm_atmel_twi_close(struct udevice *dev)
*/
static int tpm_atmel_twi_get_desc(struct udevice *dev, char *buf, int size)
{
- return 0;
+ if (size < 50)
+ return -ENOSPC;
+
+ return snprintf(buf, size, "Atmel AT97SC3204T I2C 1.2 TPM (%s)", dev->name);
}
/*
@@ -81,22 +84,15 @@ static int tpm_atmel_twi_xfer(struct udevice *dev,
print_buffer(0, (void *)sendbuf, 1, send_size, 0);
#endif
-#if !CONFIG_IS_ENABLED(DM_I2C)
- res = i2c_write(0x29, 0, 0, (uchar *)sendbuf, send_size);
-#else
res = dm_i2c_write(dev, 0, sendbuf, send_size);
-#endif
if (res) {
printf("i2c_write returned %d\n", res);
return -1;
}
start = get_timer(0);
-#if !CONFIG_IS_ENABLED(DM_I2C)
- while ((res = i2c_read(0x29, 0, 0, recvbuf, 10)))
-#else
+
while ((res = dm_i2c_read(dev, 0, recvbuf, 10)))
-#endif
{
/* TODO Use TIS_TIMEOUT from tpm_tis_infineon.h */
if (get_timer(start) > ATMEL_TPM_TIMEOUT_MS) {
@@ -116,16 +112,11 @@ static int tpm_atmel_twi_xfer(struct udevice *dev,
return -1;
} else {
*recv_len = hdr_recv_len;
-#if !CONFIG_IS_ENABLED(DM_I2C)
- res = i2c_read(0x29, 0, 0, recvbuf, *recv_len);
-#else
res = dm_i2c_read(dev, 0, recvbuf, *recv_len);
-#endif
-
}
}
if (res) {
- printf("i2c_read returned %d (rlen=%d)\n", res, *recv_len);
+ printf("i2c_read returned %d (rlen=%zu)\n", res, *recv_len);
#ifdef DEBUG
print_buffer(0, recvbuf, 1, *recv_len, 0);
#endif
@@ -143,6 +134,7 @@ static int tpm_atmel_twi_xfer(struct udevice *dev,
static int tpm_atmel_twi_probe(struct udevice *dev)
{
+ i2c_set_chip_offset_len(dev, 0);
return 0;
}