From f530f9b19417118804c3a0f02732ec8787393caf Mon Sep 17 00:00:00 2001 From: Stephen Warren Date: Tue, 17 Apr 2012 12:43:34 -0600 Subject: [PATCH] --- yaml --- r: 308471 b: refs/heads/master c: 0938643e533cc80ef0cdfdd2e260c4910d0f8bc7 h: refs/heads/master i: 308469: 7c4fd767506ef6fb2332f3e47040414be683311a 308467: 59838318f672985ad058e518f0cea80bf42e0524 308463: 3d33c91cc490b23e244cd883d52628de3d7a256c v: v3 --- [refs] | 2 +- trunk/drivers/of/of_i2c.c | 14 ++++++++++++++ trunk/include/linux/of_i2c.h | 4 ++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index bf911abfb209..0f2f2031dde5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 643dd09eb27b40ced671564edbe2640935fe37c2 +refs/heads/master: 0938643e533cc80ef0cdfdd2e260c4910d0f8bc7 diff --git a/trunk/drivers/of/of_i2c.c b/trunk/drivers/of/of_i2c.c index 068488717f69..1e173f357674 100644 --- a/trunk/drivers/of/of_i2c.c +++ b/trunk/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"); diff --git a/trunk/include/linux/of_i2c.h b/trunk/include/linux/of_i2c.h index 0efe8d465f55..1cb775f8e663 100644 --- a/trunk/include/linux/of_i2c.h +++ b/trunk/include/linux/of_i2c.h @@ -20,6 +20,10 @@ extern void of_i2c_register_devices(struct i2c_adapter *adap); /* must call put_device() when done with returned i2c_client device */ extern struct i2c_client *of_find_i2c_device_by_node(struct device_node *node); +/* must call put_device() when done with returned i2c_adapter device */ +extern struct i2c_adapter *of_find_i2c_adapter_by_node( + struct device_node *node); + #else static inline void of_i2c_register_devices(struct i2c_adapter *adap) {