Hello Greg, I've implemented the idea of an additional i2c adapter flag in order to be able to keep i2c drivers away from certain i2c adapters. Here is what I did: First of all I was surprised that "struct i2c_adapter" already contained a "flags" field. It doesn't seem to be used anywhere, though -- please correct me if I'm wrong. I added one flag named "I2C_ADAP_FLAG_CLASS_MATCH" which adapters can set if they want the type of the i2c driver match the type of the i2c adapter. Next I added a "class" member to "struct i2c_driver". I decided to use the same flags as for the "struct i2c_adapter" here, although the are all named I2C_ADAP_CLASS_* and are a bit misleading now when used for in the i2c driver. There are two places in i2c-core where drivers are informed of new adapters. At both places, the flags field is checked against the newly introduced flags I2C_ADAP_FLAG_CLASS_MATCH. If this flag is set and the adapter class and the driver class don't match, the driver is not probed on the bus. All "old" drivers don't have this flag set, so everything works just like before this change. "i2c-mxb.diff" is an example of what needs to be done to "port" drivers to this new scheme. The MXB driver is based on the saa7146 driver which provides the necessary i2c adapter. The adapter is exported with the new flag mentionened above and all slave i2c drivers (tea6420, tea6415c, tuner, tda9840, saa7111) have the class type set accordingly. Now it's only possible to load these 5 i2c drivers against the MXB saa7146 i2c bus -- all other i2c drivers don't get the chance to probe, which is exactly what I wanted. Todo list: - check if "flags" member in "struct i2c_adapter" is really unused -- can any of the i2c experts commment on this? - Should the I2C_ADAP_CLASS_* be renamed to I2C_CLASS_*, so they can be used by both i2c adapters and i2c drivers? Comments welcome. CU Michael.