Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Stephen Warren and committed by
Wolfram Sang
0938643e 643dd09e

+18
+14
drivers/of/of_i2c.c
··· 94 94 } 95 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 111 MODULE_LICENSE("GPL");
+4
include/linux/of_i2c.h
··· 20 20 /* must call put_device() when done with returned i2c_client device */ 21 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 27 #else 24 28 static inline void of_i2c_register_devices(struct i2c_adapter *adap) 25 29 {