diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-01-22 10:03:02 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-01-22 10:03:02 +0100 |
commit | 6552ebae25ffd57574c6e72d17fce67fea08b918 (patch) | |
tree | cde6cc932c7e47d818154b011dfd8a6997d5c18e /drivers/of/of_i2c.c | |
parent | 749a440b2218e9937dca8c68e23e51ca4d8d37fe (diff) | |
parent | 336f6c322d87806ef93afad6308ac65083a865e5 (diff) |
Merge branch 'core/debugobjects' into core/urgent
Diffstat (limited to 'drivers/of/of_i2c.c')
-rw-r--r-- | drivers/of/of_i2c.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/of/of_i2c.c b/drivers/of/of_i2c.c index e1b0ad6e918..fa65a2b2ae2 100644 --- a/drivers/of/of_i2c.c +++ b/drivers/of/of_i2c.c @@ -66,4 +66,23 @@ void of_register_i2c_devices(struct i2c_adapter *adap, } EXPORT_SYMBOL(of_register_i2c_devices); +static int of_dev_node_match(struct device *dev, void *data) +{ + return dev_archdata_get_node(&dev->archdata) == data; +} + +/* must call put_device() when done with returned i2c_client device */ +struct i2c_client *of_find_i2c_device_by_node(struct device_node *node) +{ + struct device *dev; + + dev = bus_find_device(&i2c_bus_type, NULL, node, + of_dev_node_match); + if (!dev) + return NULL; + + return to_i2c_client(dev); +} +EXPORT_SYMBOL(of_find_i2c_device_by_node); + MODULE_LICENSE("GPL"); |