Message ID | 20160718114745.16935-1-mario.six@gdsys.cc |
---|---|
State | Accepted |
Commit | 03dcd410d70b7251ac82f78088123e23170591d4 |
Delegated to: | Andreas Bießmann |
Headers | show |
On 18 July 2016 at 05:47, Mario Six <mario.six@gdsys.cc> wrote: > Commit 302c5db ("dm: tpm: Add Driver Model support for tpm_atmel_twi > driver") converted the Atmel TWI TPM driver itself to driver model, but > kept the legacy-style i2c_write/i2c_read calls. > > Commit 3e7d940 ("dm: tpm: Every TPM drivers should depends on DM_TPM") > then made DM_I2C a dependency of the driver, effectively forcing users > to turn on CONFIG_DM_I2C_COMPAT to get it to work. > > This patch adds the necessary dm_i2c_write/dm_i2c_read calls to make the > driver compatible with DM, but also keeps the legacy calls in ifdefs, so > that the driver is now compatible with both DM and non-DM setups. > > Signed-off-by: Mario Six <mario.six@gdsys.cc> > --- > drivers/tpm/Kconfig | 2 +- > drivers/tpm/tpm_atmel_twi.c | 15 ++++++++++++++- > 2 files changed, 15 insertions(+), 2 deletions(-) Reviewed-by: Simon Glass <sjg@chromium.org>
On 18.07.16 13:47, Mario Six wrote: > Commit 302c5db ("dm: tpm: Add Driver Model support for tpm_atmel_twi > driver") converted the Atmel TWI TPM driver itself to driver model, but > kept the legacy-style i2c_write/i2c_read calls. > > Commit 3e7d940 ("dm: tpm: Every TPM drivers should depends on DM_TPM") > then made DM_I2C a dependency of the driver, effectively forcing users > to turn on CONFIG_DM_I2C_COMPAT to get it to work. > > This patch adds the necessary dm_i2c_write/dm_i2c_read calls to make the > driver compatible with DM, but also keeps the legacy calls in ifdefs, so > that the driver is now compatible with both DM and non-DM setups. > > Signed-off-by: Mario Six <mario.six@gdsys.cc> Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
Dear , Mario Six <mario.six@gdsys.cc> writes: >Commit 302c5db ("dm: tpm: Add Driver Model support for tpm_atmel_twi >driver") converted the Atmel TWI TPM driver itself to driver model, but >kept the legacy-style i2c_write/i2c_read calls. > >Commit 3e7d940 ("dm: tpm: Every TPM drivers should depends on DM_TPM") >then made DM_I2C a dependency of the driver, effectively forcing users >to turn on CONFIG_DM_I2C_COMPAT to get it to work. > >This patch adds the necessary dm_i2c_write/dm_i2c_read calls to make the >driver compatible with DM, but also keeps the legacy calls in ifdefs, so >that the driver is now compatible with both DM and non-DM setups. > >Signed-off-by: Mario Six <mario.six@gdsys.cc> >Reviewed-by: Simon Glass <sjg@chromium.org> >Reviewed-by: Andreas Bießmann <andreas@biessmann.org> >--- > drivers/tpm/Kconfig | 2 +- > drivers/tpm/tpm_atmel_twi.c | 15 ++++++++++++++- > 2 files changed, 15 insertions(+), 2 deletions(-) applied to u-boot-atmel/master, thanks! Best regards, Andreas Bießmann
diff --git a/drivers/tpm/Kconfig b/drivers/tpm/Kconfig index 9a7b7f5..7ab34ce 100644 --- a/drivers/tpm/Kconfig +++ b/drivers/tpm/Kconfig @@ -15,7 +15,7 @@ config TPM_TIS_SANDBOX config TPM_ATMEL_TWI bool "Enable Atmel TWI TPM device driver" - depends on TPM && DM_I2C + depends on TPM help This driver supports an Atmel TPM device connected on the I2C bus. The usual tpm operations and the 'tpm' command can be used to talk diff --git a/drivers/tpm/tpm_atmel_twi.c b/drivers/tpm/tpm_atmel_twi.c index 2aa9381..eba654b 100644 --- a/drivers/tpm/tpm_atmel_twi.c +++ b/drivers/tpm/tpm_atmel_twi.c @@ -81,14 +81,23 @@ static int tpm_atmel_twi_xfer(struct udevice *dev, print_buffer(0, (void *)sendbuf, 1, send_size, 0); #endif +#ifndef CONFIG_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); - while ((res = i2c_read(0x29, 0, 0, recvbuf, 10))) { +#ifndef CONFIG_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) { puts("tpm timed out\n"); @@ -99,7 +108,11 @@ static int tpm_atmel_twi_xfer(struct udevice *dev, if (!res) { *recv_len = get_unaligned_be32(recvbuf + 2); if (*recv_len > 10) +#ifndef CONFIG_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);
Commit 302c5db ("dm: tpm: Add Driver Model support for tpm_atmel_twi driver") converted the Atmel TWI TPM driver itself to driver model, but kept the legacy-style i2c_write/i2c_read calls. Commit 3e7d940 ("dm: tpm: Every TPM drivers should depends on DM_TPM") then made DM_I2C a dependency of the driver, effectively forcing users to turn on CONFIG_DM_I2C_COMPAT to get it to work. This patch adds the necessary dm_i2c_write/dm_i2c_read calls to make the driver compatible with DM, but also keeps the legacy calls in ifdefs, so that the driver is now compatible with both DM and non-DM setups. Signed-off-by: Mario Six <mario.six@gdsys.cc> --- drivers/tpm/Kconfig | 2 +- drivers/tpm/tpm_atmel_twi.c | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-)