Hi Luca, > + * Topology: > + * > + * Slave X @ 0x10 > + * .-----. | > + * .-----. | |---+---- B > + * | CPU |--A--| ATR | > + * `-----' | |---+---- C > + * `-----' | > + * Slave Y @ 0x10 > + * > + * Alias table: > + * > + * Client Alias > + * ------------- > + * X 0x20 > + * Y 0x30 Great that you already provided docs for this driver! One huge drawback for me is the attach/detach callbacks. One year ago, I removed a similar callback from the I2C core ("[PATCH 0/2] i2c: remove deprecated attach_adapter callback") because some drivers did a lot of crazy things there. It took years to remove all that. What I could imagine here: the adapter (B and C each in the picture above) gets a flag like NEEDS_ATR before registering to the core. The flag means all clients on that bus will have their address translated. The core will figure out a free alias when a device is registered. We can then have an ATR specific callback with the original and translated address as arguments, so one can setup the HW as needed. Do you think that would work? Jacopo, does that meet GMSL as well? Regards, Wolfram