[PATCH 2/3] rockchip: i2c: move ACK comment where it applies
Kever Yang
kever.yang at rock-chips.com
Tue Nov 11 15:07:14 CET 2025
On 2025/11/7 19:39, Quentin Schulz wrote:
> From: Quentin Schulz <quentin.schulz at cherry.de>
>
> The I2C_CON_LASTACK is kind of a misnomer as setting it means sending a
> NACK as last byte acknowledge when the controller is in receive mode. It
> should therefore be used only when there's no more data to transfer
> after this.
>
> Move the comment in the proper if block.
>
> Sync the comment with the Linux kernel's while at it so it's more
> explicit.
>
> Fixes: 5deaa530280f ("rockchip: i2c: fix >32 byte reads")
> Signed-off-by: Quentin Schulz <quentin.schulz at cherry.de>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>
Thanks,
- Kever
> ---
> drivers/i2c/rk_i2c.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/i2c/rk_i2c.c b/drivers/i2c/rk_i2c.c
> index fe09e75d3fb..3c44d0e65f5 100644
> --- a/drivers/i2c/rk_i2c.c
> +++ b/drivers/i2c/rk_i2c.c
> @@ -195,13 +195,14 @@ static int rk_i2c_read(struct rk_i2c *i2c, uchar chip, uint reg, uint r_len,
>
> while (bytes_remain_len) {
> if (bytes_remain_len > RK_I2C_FIFO_SIZE) {
> + /*
> + * The hw can read up to 32 bytes at a time. If we need
> + * more than one chunk, send an ACK after the last byte
> + * of the current chunk.
> + */
> con = I2C_CON_EN;
> bytes_xferred = 32;
> } else {
> - /*
> - * The hw can read up to 32 bytes at a time. If we need
> - * more than one chunk, send an ACK after the last byte.
> - */
> con = I2C_CON_EN | I2C_CON_LASTACK;
> bytes_xferred = bytes_remain_len;
> }
>
More information about the U-Boot
mailing list