docs: i2c: reference simple probes

Instead of documenting old-style probes, reference "simple probes" and
document the i2c_match_id function. This might help reduce the use of
two-argument probes in new code.

Signed-off-by: Stephen Kitt <steve@sk2.org>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
This commit is contained in:
Stephen Kitt 2022-03-25 17:19:10 +01:00 committed by Wolfram Sang
parent 43bf42ff47
commit 32d4536133
1 changed files with 8 additions and 5 deletions

View File

@ -46,7 +46,7 @@ driver model device node, and its I2C address.
},
.id_table = foo_idtable,
.probe = foo_probe,
.probe_new = foo_probe,
.remove = foo_remove,
/* if device autodetection is needed: */
.class = I2C_CLASS_SOMETHING,
@ -155,8 +155,7 @@ those devices, and a remove() method to unbind.
::
static int foo_probe(struct i2c_client *client,
const struct i2c_device_id *id);
static int foo_probe(struct i2c_client *client);
static int foo_remove(struct i2c_client *client);
Remember that the i2c_driver does not create those client handles. The
@ -165,8 +164,12 @@ handle may be used during foo_probe(). If foo_probe() reports success
foo_remove() returns. That binding model is used by most Linux drivers.
The probe function is called when an entry in the id_table name field
matches the device's name. It is passed the entry that was matched so
the driver knows which one in the table matched.
matches the device's name. If the probe function needs that entry, it
can retrieve it using
::
const struct i2c_device_id *id = i2c_match_id(foo_idtable, client);
Device Creation