summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Sverdlin <alexander.sverdlin@sysgo.com>2012-11-28 18:21:14 +0400
committerGrant Likely <grant.likely@secretlab.ca>2012-11-29 21:28:08 +0400
commit4447ca1280c39265c29475fb6940daa5b867466d (patch)
tree53d83fe1b522570377544b99a97843d2504d4e10
parent499b42c3e4ca08f0de27683f31d3b8d5afd2a720 (diff)
downloadlinux-4447ca1280c39265c29475fb6940daa5b867466d.tar.xz
of_i2c: Honour "status=disabled" property of device
Currently of_i2c_register_devices() function registers all i2c devices, independently from their status property in device tree. According to "ePAPR 1.1" spec, device should only be registered if there is no "status" property, or it has "ok" (or "okay") value (see of_device_is_available()). In case of "platform devices", of_platform_device_create_pdata() checks for "status" and ensures that disabled devices are not populated. But such check for i2c buses was missing until now. Fix it. Signed-off-by: Alexander Sverdlin <alexander.sverdlin@sysgo.com> Acked-by: Rob Herring <robherring2@gmail.com> Acked-by: Wolfram Sang <w.sang@pengutronix.de> Reviewed-by: Barry Song <Baohua.Song@csr.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
-rw-r--r--drivers/of/of_i2c.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/of/of_i2c.c b/drivers/of/of_i2c.c
index 3550f3bf4f92..b667264222cc 100644
--- a/drivers/of/of_i2c.c
+++ b/drivers/of/of_i2c.c
@@ -29,7 +29,7 @@ void of_i2c_register_devices(struct i2c_adapter *adap)
dev_dbg(&adap->dev, "of_i2c: walking child nodes\n");
- for_each_child_of_node(adap->dev.of_node, node) {
+ for_each_available_child_of_node(adap->dev.of_node, node) {
struct i2c_board_info info = {};
struct dev_archdata dev_ad = {};
const __be32 *addr;