Skip to content

Commit

Permalink
of/i2c: implement of_find_i2c_adapter_by_node
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Stephen Warren authored and Wolfram Sang committed May 12, 2012
1 parent 643dd09 commit 0938643
Showing 2 changed files with 18 additions and 0 deletions.
14 changes: 14 additions & 0 deletions drivers/of/of_i2c.c
Original file line number Diff line number Diff line change
@@ -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");
4 changes: 4 additions & 0 deletions include/linux/of_i2c.h
Original file line number Diff line number Diff line change
@@ -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)
{

0 comments on commit 0938643

Please sign in to comment.