i2c: Document i2c_new_device()
Document the new i2c_new_device(), i2c_new_probed_device() and i2c_unregister_device() functions. Signed-off-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
parent
12b5053ac5
commit
ce9e0794c2
|
@ -200,6 +200,44 @@ device typing support in the hardware. The driver and module name should
|
||||||
match, so hotplug/coldplug mechanisms will modprobe the driver.
|
match, so hotplug/coldplug mechanisms will modprobe the driver.
|
||||||
|
|
||||||
|
|
||||||
|
Device Creation (Standard driver model)
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
If you know for a fact that an I2C device is connected to a given I2C bus,
|
||||||
|
you can instantiate that device by simply filling an i2c_board_info
|
||||||
|
structure with the device address and driver name, and calling
|
||||||
|
i2c_new_device(). This will create the device, then the driver core will
|
||||||
|
take care of finding the right driver and will call its probe() method.
|
||||||
|
If a driver supports different device types, you can specify the type you
|
||||||
|
want using the type field. You can also specify an IRQ and platform data
|
||||||
|
if needed.
|
||||||
|
|
||||||
|
Sometimes you know that a device is connected to a given I2C bus, but you
|
||||||
|
don't know the exact address it uses. This happens on TV adapters for
|
||||||
|
example, where the same driver supports dozens of slightly different
|
||||||
|
models, and I2C device addresses change from one model to the next. In
|
||||||
|
that case, you can use the i2c_new_probed_device() variant, which is
|
||||||
|
similar to i2c_new_device(), except that it takes an additional list of
|
||||||
|
possible I2C addresses to probe. A device is created for the first
|
||||||
|
responsive address in the list. If you expect more than one device to be
|
||||||
|
present in the address range, simply call i2c_new_probed_device() that
|
||||||
|
many times.
|
||||||
|
|
||||||
|
The call to i2c_new_device() or i2c_new_probed_device() typically happens
|
||||||
|
in the I2C bus driver. You may want to save the returned i2c_client
|
||||||
|
reference for later use.
|
||||||
|
|
||||||
|
|
||||||
|
Device Deletion (Standard driver model)
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
Each I2C device which has been created using i2c_new_device() or
|
||||||
|
i2c_new_probed_device() can be unregistered by calling
|
||||||
|
i2c_unregister_device(). If you don't call it explicitly, it will be
|
||||||
|
called automatically before the underlying I2C bus itself is removed, as a
|
||||||
|
device can't survive its parent in the device driver model.
|
||||||
|
|
||||||
|
|
||||||
Legacy Driver Binding Model
|
Legacy Driver Binding Model
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue