Loading drivers/of/of_i2c.c +14 −0 Original line number Original line Diff line number Diff line Loading @@ -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); 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"); MODULE_LICENSE("GPL"); include/linux/of_i2c.h +4 −0 Original line number Original line Diff line number Diff line Loading @@ -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 */ /* 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); 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 #else static inline void of_i2c_register_devices(struct i2c_adapter *adap) static inline void of_i2c_register_devices(struct i2c_adapter *adap) { { Loading Loading
drivers/of/of_i2c.c +14 −0 Original line number Original line Diff line number Diff line Loading @@ -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); 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"); MODULE_LICENSE("GPL");
include/linux/of_i2c.h +4 −0 Original line number Original line Diff line number Diff line Loading @@ -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 */ /* 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); 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 #else static inline void of_i2c_register_devices(struct i2c_adapter *adap) static inline void of_i2c_register_devices(struct i2c_adapter *adap) { { Loading