[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