[U-Boot] [PATCH 1/3] i2c: tegra: use repeated start for reads
Joakim Tjernlund
joakim.tjernlund at transmode.se
Thu Jun 26 10:11:36 CEST 2014
> From: Stephen Warren <swarren at wwwdotorg.org>
> To: u-boot at lists.denx.de, Heiko Schocher <hs at denx.de>,
> Cc: Stephen Warren <swarren at nvidia.com>, Tom Warren <twarren at nvidia.com>
> Date: 2014/06/25 19:05
> Subject: [U-Boot] [PATCH 1/3] i2c: tegra: use repeated start for reads
> Sent by: u-boot-bounces at lists.denx.de
>
> From: Stephen Warren <swarren at nvidia.com>
>
> I2C read transactions are typically implemented as follows:
>
> START(write) address REPEATED_START(read) data... STOP
>
> However, Tegra's I2C driver currently implements reads as follows:
>
> START(write) address STOP START(read) data... STOP
>
> This sequence confuses at least the AS3722 PMIC on the Jetson TK1 board,
> leading to corrupted read data in some cases. Fix the driver to chain
> the transactions together using repeated starts to solve this.
While I agree to use Repeated START I just wanted to share this:
A common reason for STOP START(read) sequence not working sometimes is
that
the driver initializes STOP but does not wait for the STOP to complete
before issuing a START.
Jocke
More information about the U-Boot
mailing list