> In proximity to this, I find it odd that you are allowed to register > a slave device with the same address as a client device on an adapter > (one has I2C_CLIENT_FLAG set, which sets I2C_ADDR_OFFSET_SLAVE before > the address comparisons). Why is that possible? Yes, the two devices > can probably talk each other, both being aware of who is master at > the moment, but what about other masters on the bus? Just a quick answer to this first: The Tegra community wanted to have loopback support. According to documentation, their hardware can indeed read from their own slave device. So, we needed this distinction to instantiate the slave backend driver and the regular driver. I don't understand the multi-master question: The I2C slave device should react to any bus master anyhow. And for competing bus masters, there is the arbitration mechanism.
Attachment:
signature.asc
Description: PGP signature