> -----Original Message----- > From: devicetree-discuss > [mailto:devicetree-discuss-bounces+bs14=csr.com@xxxxxxxxxxxxxxxx] On Behalf > Of Alexander Sverdlin > Sent: Wednesday, November 28, 2012 10:21 PM > To: Jochen Friedrich; Jon Smirl; linux-i2c@xxxxxxxxxxxxxxx; > devicetree-discuss@xxxxxxxxxxxxxxxx; Rob Herring; Grant Likely > Cc: alexander sverdlin > Subject: [PATCH] of_i2c: Honour "status=disabled" property of device > > From: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> > > 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@xxxxxxxxx> > --- Reviewed-by: Barry Song <Baohua.Song@xxxxxxx> > --- linux.orig/drivers/of/of_i2c.c > +++ linux/drivers/of/of_i2c.c > @@ -29,7 +29,7 @@ void of_i2c_register_devices(struct i2c_ > > 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; Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom More information can be found at www.csr.com. Follow CSR on Twitter at http://twitter.com/CSR_PLC and read our blog at www.csr.com/blog ��.n��������+%������w��{.n�����{��-��)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥