On Sun, 15 Mar 2009, Jean Delvare wrote: > On Sun, 15 Mar 2009 13:44:01 +0100, Hans Verkuil wrote: > This is the typical multifunction device problem. It isn't specifically > related to I2C, the exact same problem happens for other devices, for > example a PCI south bridge including hardware monitoring and SMBus, or > a Super-I/O chip including hardware monitoring, parallel port, > infrared, watchdog, etc. Linux currently only allows one driver to bind > to a given device, so it becomes very difficult to make per-function > drivers for such devices. > > For very specific devices, it isn't necessarily a big problem. You can > simply make an all-in-one driver for that specific device. The real > problem is when the device in question is fully compatible with other > devices which only implement functionality A _and_ fully compatible with > other devices which only implement functionality B. You don't really > want to support functions A and B in the same driver if most devices > out there have either function but not both. You can also split the "device" into multiple devices. Most SoCs have one register block where all kinds of devices, from i2c controllers to network adapters, exist. This is shown to linux as many devices, rather than one massive multifunction device. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html