|
@@ -25,12 +25,23 @@ routines, and should be zero-initialized except for fields with data you
|
|
provide. A client structure holds device-specific information like the
|
|
provide. A client structure holds device-specific information like the
|
|
driver model device node, and its I2C address.
|
|
driver model device node, and its I2C address.
|
|
|
|
|
|
|
|
+/* iff driver uses driver model ("new style") binding model: */
|
|
|
|
+
|
|
|
|
+static struct i2c_device_id foo_idtable[] = {
|
|
|
|
+ { "foo", my_id_for_foo },
|
|
|
|
+ { "bar", my_id_for_bar },
|
|
|
|
+ { }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+MODULE_DEVICE_TABLE(i2c, foo_idtable);
|
|
|
|
+
|
|
static struct i2c_driver foo_driver = {
|
|
static struct i2c_driver foo_driver = {
|
|
.driver = {
|
|
.driver = {
|
|
.name = "foo",
|
|
.name = "foo",
|
|
},
|
|
},
|
|
|
|
|
|
/* iff driver uses driver model ("new style") binding model: */
|
|
/* iff driver uses driver model ("new style") binding model: */
|
|
|
|
+ .id_table = foo_ids,
|
|
.probe = foo_probe,
|
|
.probe = foo_probe,
|
|
.remove = foo_remove,
|
|
.remove = foo_remove,
|
|
|
|
|
|
@@ -173,10 +184,9 @@ handle may be used during foo_probe(). If foo_probe() reports success
|
|
(zero not a negative status code) it may save the handle and use it until
|
|
(zero not a negative status code) it may save the handle and use it until
|
|
foo_remove() returns. That binding model is used by most Linux drivers.
|
|
foo_remove() returns. That binding model is used by most Linux drivers.
|
|
|
|
|
|
-Drivers match devices when i2c_client.driver_name and the driver name are
|
|
|
|
-the same; this approach is used in several other busses that don't have
|
|
|
|
-device typing support in the hardware. The driver and module name should
|
|
|
|
-match, so hotplug/coldplug mechanisms will modprobe the driver.
|
|
|
|
|
|
+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.
|
|
|
|
|
|
|
|
|
|
Device Creation (Standard driver model)
|
|
Device Creation (Standard driver model)
|