diff options
| -rw-r--r-- | drivers/of/of_i2c.c | 14 | ||||
| -rw-r--r-- | include/linux/of_i2c.h | 4 |
2 files changed, 18 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) | |||
| 94 | } | 94 | } |
| 95 | EXPORT_SYMBOL(of_find_i2c_device_by_node); | 95 | EXPORT_SYMBOL(of_find_i2c_device_by_node); |
| 96 | 96 | ||
| 97 | /* must call put_device() when done with returned i2c_adapter device */ | ||
| 98 | struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node) | ||
| 99 | { | ||
| 100 | struct device *dev; | ||
| 101 | |||
| 102 | dev = bus_find_device(&i2c_bus_type, NULL, node, | ||
| 103 | of_dev_node_match); | ||
| 104 | if (!dev) | ||
| 105 | return NULL; | ||
| 106 | |||
| 107 | return i2c_verify_adapter(dev); | ||
| 108 | } | ||
| 109 | EXPORT_SYMBOL(of_find_i2c_adapter_by_node); | ||
| 110 | |||
| 97 | MODULE_LICENSE("GPL"); | 111 | MODULE_LICENSE("GPL"); |
diff --git a/include/linux/of_i2c.h b/include/linux/of_i2c.h index 0efe8d465f55..1cb775f8e663 100644 --- a/include/linux/of_i2c.h +++ b/include/linux/of_i2c.h | |||
| @@ -20,6 +20,10 @@ extern void of_i2c_register_devices(struct i2c_adapter *adap); | |||
| 20 | /* must call put_device() when done with returned i2c_client device */ | 20 | /* must call put_device() when done with returned i2c_client device */ |
| 21 | extern struct i2c_client *of_find_i2c_device_by_node(struct device_node *node); | 21 | extern struct i2c_client *of_find_i2c_device_by_node(struct device_node *node); |
| 22 | 22 | ||
| 23 | /* must call put_device() when done with returned i2c_adapter device */ | ||
| 24 | extern struct i2c_adapter *of_find_i2c_adapter_by_node( | ||
| 25 | struct device_node *node); | ||
| 26 | |||
| 23 | #else | 27 | #else |
| 24 | static inline void of_i2c_register_devices(struct i2c_adapter *adap) | 28 | static inline void of_i2c_register_devices(struct i2c_adapter *adap) |
| 25 | { | 29 | { |
