Re: [PATCH v4 2/8] i2c: add I2C Address Translator (ATR) support

Luca Ceresoli
2022-11-07T11:41:26Z

On Fri, 4 Nov 2022 13:59:06 +0200
Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> wrote:

> Hi Andy,
>
> On 01/11/2022 16:30, Andy Shevchenko wrote:
> > On Tue, Nov 01, 2022 at 03:20:26PM +0200, Tomi Valkeinen wrote:
> >> From: Luca Ceresoli <luca@lucaceresoli.net>
> >>
> >> An ATR is a device that looks similar to an i2c-mux: it has an I2C
> >> slave "upstream" port and N master "downstream" ports, and forwards
> >> transactions from upstream to the appropriate downstream port. But is
> >> is different in that the forwarded transaction has a different slave
> >> address. The address used on the upstream bus is called the "alias"
> >> and is (potentially) different from the physical slave address of the
> >> downstream chip.
> >>
> >> Add a helper file (just like i2c-mux.c for a mux or switch) to allow
> >> implementing ATR features in a device driver. The helper takes care or
> >> adapter creation/destruction and translates addresses at each transaction.

First of all, thank you for bringing this work on!

> > ...
> >
> >> +I2C ADDRESS TRANSLATOR (ATR)
> >> +M: Luca Ceresoli <luca@lucaceresoli.net>
> >
> > Hmm... Are you going to maintain this? Or Review? Why not?
>
> We haven't discussed with Luca if he wants to maintain this (this is
> mostly his code). But, indeed, I should add my name there.

I think at this point you are probably in a better position to be the
maintainer, but I'm OK with being listed here as reviewer (R:).

Ah, would you please use my bootlin dot com address here?

> I'm not arguing against any of the comments you've made, I think they
> are all valid, but I want to point out that many of them are in a code
> copied from i2c-mux.
>
> Whether there's any value in keeping i2c-mux and i2c-atr similar in
> design/style... Maybe not.

Tomi is right, when I wrote this initially I tried to keep it as
similar as possible to i2c-mux.c. No problem in deviating from that
wherever it makes sense.

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering