On Mon, Nov 05, 2012 at 04:19:20PM +0100, Jean Delvare wrote: > On Mon, 5 Nov 2012 16:53:15 +0200, Mika Westerberg wrote: > > On Mon, Nov 05, 2012 at 03:19:58PM +0100, Rafael J. Wysocki wrote: > > > > > > In the ACPI namespace we have device nodes and serial interfaces below them. > > > In the above case we see that a single device node supports two different > > > interfaces and in that case we probably should create two different > > > struct i2c_adapter objects for the same ACPI device node. > > > > > > Mika, what do you think? > > > > I agree. > > > > Only problem I see is that then we have two I2C adapter devices with the > > same ACPI ID (and hence the same i2c_client->name). I wonder what the I2C > > core thinks about that. > > I2C core fears that you're mixing up everything ;) I2C adapter devices > are struct i2c_adapter aka i2c-0, i2c-1 etc. i2c_client is for slave > devices. There's nothing wrong with i2c_clients sharing ->name, that's > even how device driver matching is achieved. The uniqueness of > i2c_clients is on their bus_id which is the combination of i2c adapter > number and slave address (e.g. 0-0050) Yeah, I mixed I2C adapter and client. Thanks for correcting. So if we create one I2C adapter from the platform bus code as we do now and then for each I2CSerialBus connector we create one I2C client (well, the one that is created when i2c_new_device() is called), everything should work, right? Then I suggest that we have a list of serial bus resources in the struct acpi_device and create the I2C clients based on that. > i2c_adapter->name should, OTOH, be unique. In i2c bus drivers we > usually append the base I/O address at the end of the name to guarantee > that. ACPI will have to come up with something similar. It should already be unique in case of ACPI. We use ACPI _HID and _UID to achieve that. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html