diff options
author | Stephen Warren <swarren@nvidia.com> | 2012-04-17 22:43:34 +0400 |
---|---|---|
committer | Wolfram Sang <w.sang@pengutronix.de> | 2012-05-12 16:28:17 +0400 |
commit | 0938643e533cc80ef0cdfdd2e260c4910d0f8bc7 (patch) | |
tree | 7c31d3251861eed8e799b73712e9bc006a9e6804 /drivers | |
parent | 643dd09eb27b40ced671564edbe2640935fe37c2 (diff) | |
download | linux-0938643e533cc80ef0cdfdd2e260c4910d0f8bc7.tar.xz |
of/i2c: implement of_find_i2c_adapter_by_node
This finds the struct i2c_adapter * for a given device tree node. Just
like of_find_i2c_device_by_node.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/of/of_i2c.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/of/of_i2c.c b/drivers/of/of_i2c.c index 068488717f69..1e173f357674 100644 --- a/drivers/of/of_i2c.c +++ b/drivers/of/of_i2c.c @@ -94,4 +94,18 @@ struct i2c_client *of_find_i2c_device_by_node(struct device_node *node) } EXPORT_SYMBOL(of_find_i2c_device_by_node); +/* must call put_device() when done with returned i2c_adapter device */ +struct i2c_adapter *of_find_i2c_adapter_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 i2c_verify_adapter(dev); +} +EXPORT_SYMBOL(of_find_i2c_adapter_by_node); + MODULE_LICENSE("GPL"); |