[U-Boot] [PATCH 1/2] i2c: at91_i2c: Wait for TXRDY after sending the first byte
Yang, Wenyou
Wenyou.Yang at Microchip.com
Thu Nov 30 01:14:08 UTC 2017
On 2017/11/29 11:25, Alan Ott wrote:
> The driver must wait for TXRDY after each byte is pushed into
> the i2c FIFO before pushing the next byte. Previously this was
> not done for the first byte, causing a race condition with zeros
> sometimes being sent for the next byte (which is typically the
> first actual data byte).
>
> Signed-off-by: Alan Ott <alan at softiron.com>
> ---
Acked-by: Wenyou Yang <wenyou.yang at microchip.com>
Thank you for your patch.
> drivers/i2c/at91_i2c.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/i2c/at91_i2c.c b/drivers/i2c/at91_i2c.c
> index d394044..20d0929 100644
> --- a/drivers/i2c/at91_i2c.c
> +++ b/drivers/i2c/at91_i2c.c
> @@ -72,6 +72,8 @@ static int at91_i2c_xfer_msg(struct at91_i2c_bus *bus, struct i2c_msg *msg)
>
> } else {
> writel(msg->buf[0], ®->thr);
> + ret = at91_wait_for_xfer(bus, TWI_SR_TXRDY);
> +
> for (i = 1; !ret && (i < msg->len); i++) {
> writel(msg->buf[i], ®->thr);
> ret = at91_wait_for_xfer(bus, TWI_SR_TXRDY);
Best Regards,
Wenyou Yang
More information about the U-Boot
mailing list