[PATCH v2 2/2] i2c: amlogic: Add Amlogic A9 I2C controller driver

Xianwei Zhao xianwei.zhao at amlogic.com
Mon Oct 26 20:18:43 PDT 2026


Hi Markus,
    Thanks for your review.

On 2026/10/27 01:28, Markus Elfring wrote:
> …
>> +++ b/drivers/i2c/busses/i2c-amlogic-a9.c
>> @@ -0,0 +1,469 @@
> …
> 
> How do you think about to avoid a bit of duplicate source code?
> 
This one has a different IP from the existing controller. They only 
share some similarities in register access, and most other logics are 
incompatible. Therefore, it is not considered for the time being.
>  > …
>> +static void aml_i2c_prepare_xfer(struct aml_i2c *i2c, enum fifo_fill_mode mode)
>> +{
> …
>> +     if (mode == A9_FIFO_FILL_FULL)
>> +             i2c->count = min(i2c->msg->len - i2c->pos, A9_I2C_FIFO_DEPTH);
>> +     else
>> +             i2c->count = min(i2c->msg->len - i2c->pos, A9_I2C_HALF_FIFO);
> …
> 
> +       i2c->count = min(i2c->msg->len - i2c->pos,
> +                        (mode == A9_FIFO_FILL_FULL ? A9_I2C_FIFO_DEPTH : A9_I2C_HALF_FIFO));
> 
> 

Will do.

> …
>> +static int aml_i2c_xfer_msg(struct aml_i2c *i2c, struct i2c_msg *msg, bool last)
>> +{
> …
>> +     if (last)
>> +             aml_i2c_set_mask(i2c, REG_CFG_BUS, BUS_NO_STOP, 0);
>> +     else
>> +             aml_i2c_set_mask(i2c, REG_CFG_BUS, BUS_NO_STOP, BUS_NO_STOP);
> …
> 
> +       aml_i2c_set_mask(i2c, REG_CFG_BUS, BUS_NO_STOP, (last ? 0 : BUS_NO_STOP));
> 

Will do.

> 
> Regards,
> Markus



More information about the linux-amlogic mailing list