On 2016-07-28 10:39, Wolfram Sang wrote: > >> 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. What I mean is that it is possible to have an i2c bus with some random i2c device at e.g. address 0x48, say some eeprom, and then register to be a slave device also at address 0x48, e.g. slave-24c02. If there is another master on the bus, it cannot sanely use any of these two devices at i2c address 0x48 since there is an address conflict. Or am I misunderstanding something? In my mind i2c slave support is the equivalent of usb gadget support, is it something else? Cheers, Peter -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html