summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-03-13 09:15:56 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2014-03-28 08:45:11 +0100
commit57eb30b265e1879b0cf3b0507066fb3b67a4195b (patch)
tree3360dd3cb9c6ecbd56819c022cf86f42a463d96c
parentc9b67dc0f3b3d1127674c30cfbae52b4166d71d6 (diff)
downloadbarebox-57eb30b265e1879b0cf3b0507066fb3b67a4195b.tar.gz
barebox-57eb30b265e1879b0cf3b0507066fb3b67a4195b.tar.xz
i2c: implement of_find_i2c_adapter_by_node
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/i2c/i2c.c11
-rw-r--r--include/i2c/i2c.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/i2c/i2c.c b/drivers/i2c/i2c.c
index e289a3569b..9873957015 100644
--- a/drivers/i2c/i2c.c
+++ b/drivers/i2c/i2c.c
@@ -405,6 +405,17 @@ struct i2c_adapter *i2c_get_adapter(int busnum)
return NULL;
}
+struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node)
+{
+ struct i2c_adapter *adap;
+
+ list_for_each_entry(adap, &adapter_list, list)
+ if (adap->dev.device_node == node)
+ return adap;
+
+ return NULL;
+}
+
/**
* i2c_add_numbered_adapter - declare i2c adapter, use static bus number
* @adapter: the adapter to register (with adap->nr initialized)
diff --git a/include/i2c/i2c.h b/include/i2c/i2c.h
index 81e5daa200..f89fefbb27 100644
--- a/include/i2c/i2c.h
+++ b/include/i2c/i2c.h
@@ -133,6 +133,7 @@ static inline int i2c_register_board_info(int busnum,
#endif
extern int i2c_add_numbered_adapter(struct i2c_adapter *adapter);
struct i2c_adapter *i2c_get_adapter(int busnum);
+struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node);
/* For devices that use several addresses, use i2c_new_dummy() to make
* client handles for the extra addresses.